Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java')
-rw-r--r--org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java39
1 files changed, 11 insertions, 28 deletions
diff --git a/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java b/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java
index e9400c59c..7b14c1c06 100644
--- a/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java
+++ b/org.eclipse.emf.ecore.xcore.ui/src/org/eclipse/emf/ecore/xcore/ui/hyperlinking/XcoreHyperLinkHelper.java
@@ -1,45 +1,28 @@
package org.eclipse.emf.ecore.xcore.ui.hyperlinking;
-import org.eclipse.emf.codegen.ecore.genmodel.GenBase;
-import org.eclipse.emf.ecore.EModelElement;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.xcore.util.XcoreEcoreBuilder;
+import org.eclipse.emf.ecore.xcore.XNamedElement;
+import org.eclipse.emf.ecore.xcore.mappings.XcoreMapper;
import org.eclipse.jface.text.Region;
-import org.eclipse.xtext.common.types.JvmIdentifiableElement;
import org.eclipse.xtext.common.types.xtext.ui.TypeAwareHyperlinkHelper;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor;
+import com.google.inject.Inject;
+
public class XcoreHyperLinkHelper extends TypeAwareHyperlinkHelper
{
+ @Inject
+ private XcoreMapper mapper;
+
@Override
public void createHyperlinksTo(XtextResource from, Region region, EObject to, IHyperlinkAcceptor acceptor)
{
- if (to instanceof JvmIdentifiableElement)
- {
- GenBase genBase = XcoreEcoreBuilder.getGen(to);
- if (genBase != null)
- {
- EModelElement eModelElement = genBase.getEcoreModelElement();
- if (eModelElement != null)
- {
- super.createHyperlinksTo(from, region, XcoreEcoreBuilder.get(eModelElement), acceptor);
- }
- }
- }
- else if (to instanceof GenBase)
+ XNamedElement element = mapper.getToXcoreMapping(to).getXcoreElement();
+ if (element != null)
{
- EModelElement eModelElement = ((GenBase)to).getEcoreModelElement();
- if (eModelElement != null)
- {
- super.createHyperlinksTo(from, region, XcoreEcoreBuilder.get(eModelElement), acceptor);
- }
- }
- else if (to instanceof EModelElement)
- {
- super.createHyperlinksTo(from, region, XcoreEcoreBuilder.get(to), acceptor);
- }
- else
+ super.createHyperlinksTo(from, region, element, acceptor);
+ } else
{
super.createHyperlinksTo(from, region, to, acceptor);
}

Back to the top