ImportHyperlink is created by Guice now.
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
index 77d7f2c..51d6277 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
@@ -8,13 +8,18 @@
  */
 package com.google.eclipse.protobuf.ui.editor.hyperlinking;
 
+import static org.eclipse.emf.common.util.URI.createURI;
+
 import org.apache.log4j.Logger;
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.*;
 import org.eclipse.jface.text.hyperlink.IHyperlink;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.xtext.nodemodel.INode;
 
+import com.google.eclipse.protobuf.protobuf.Import;
 import com.google.eclipse.protobuf.ui.editor.FileOpener;
+import com.google.inject.Inject;
 
 /**
  * A hyperlink for imported .proto files.
@@ -24,14 +29,14 @@
 class ImportHyperlink implements IHyperlink {
   private static Logger logger = Logger.getLogger(ImportHyperlink.class);
 
-  private final URI importUri;
-  private final IRegion region;
-  private final FileOpener fileOpener;
+  @Inject private FileOpener fileOpener;
 
-  ImportHyperlink(URI importUri, IRegion region, FileOpener fileOpener) {
-    this.importUri = importUri;
-    this.region = region;
-    this.fileOpener = fileOpener;
+  private URI importUri;
+  private IRegion region;
+
+  void update(Import anImport, INode importUriNode) {
+    importUri = createURI(anImport.getImportURI());
+    region = new Region(importUriNode.getOffset(), importUriNode.getLength());
   }
 
   @Override public void open() {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
index db92a2e..3347629 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
@@ -9,7 +9,6 @@
 package com.google.eclipse.protobuf.ui.editor.hyperlinking;
 
 import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.IMPORT__IMPORT_URI;
-import static org.eclipse.emf.common.util.URI.createURI;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.*;
@@ -23,8 +22,7 @@
 
 import com.google.eclipse.protobuf.model.util.*;
 import com.google.eclipse.protobuf.protobuf.Import;
-import com.google.eclipse.protobuf.ui.editor.FileOpener;
-import com.google.inject.Inject;
+import com.google.inject.*;
 
 /**
  * Represents an implementation of interface <code>{@link IHyperlinkDetector}</code> to find and convert
@@ -37,8 +35,8 @@
 
   @Inject private INodes nodes;
   @Inject private EObjectAtOffsetHelper eObjectAtOffsetHelper;
-  @Inject private FileOpener fileOpener;
   @Inject private Imports imports;
+  @Inject private Provider<ImportHyperlink> importHyperlinkProvider;
 
   @Override public IHyperlink[] detectHyperlinks(ITextViewer textViewer, final IRegion region,
       final boolean canShowMultipleHyperlinks) {
@@ -66,12 +64,11 @@
           return NO_HYPERLINKS;
         }
         INode importUriNode = nodes.firstNodeForFeature(anImport, IMPORT__IMPORT_URI);
-        int importUriLength = importUriNode.getLength();
-        if (importUriLength == 0) {
+        if (importUriNode.getLength() == 0) {
           return NO_HYPERLINKS;
         }
-        IRegion importUriRegion = new Region(importUriNode.getOffset(), importUriLength);
-        IHyperlink hyperlink = new ImportHyperlink(createURI(anImport.getImportURI()), importUriRegion, fileOpener);
+        ImportHyperlink hyperlink = importHyperlinkProvider.get();
+        hyperlink.update(anImport, importUriNode);
         return new IHyperlink[] { hyperlink };
       }
     });