diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java')
-rw-r--r-- | plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java | 152 |
1 files changed, 76 insertions, 76 deletions
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java index a06afed64..9faf83bda 100644 --- a/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java +++ b/plugins/org.eclipse.etrice.core.room.ui/src/org/eclipse/etrice/core/ui/linking/ImportAwareHyperlinkHelper.java @@ -1,76 +1,76 @@ -/*******************************************************************************
- * Copyright (c) 2012 protos software gmbh (http://www.protos.de).
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * CONTRIBUTORS:
- * Henrik Rentz-Reichert (initial contribution)
- *
- *******************************************************************************/
-
-package org.eclipse.etrice.core.ui.linking;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.etrice.core.scoping.PlatformRelativeUriResolver;
-import org.eclipse.jface.text.Region;
-import org.eclipse.xtext.AbstractRule;
-import org.eclipse.xtext.RuleCall;
-import org.eclipse.xtext.nodemodel.ILeafNode;
-import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
-import org.eclipse.xtext.parser.IParseResult;
-import org.eclipse.xtext.resource.XtextResource;
-import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper;
-import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor;
-import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink;
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-/**
- * @author Henrik Rentz-Reichert (initial contribution)
- *
- */
-public class ImportAwareHyperlinkHelper extends HyperlinkHelper {
-
- @Inject
- protected Provider<XtextHyperlink> hyperlinkProvider;
-
- @Inject
- protected PlatformRelativeUriResolver uriResolver;
-
- public ImportAwareHyperlinkHelper() {
- super();
- }
- /* (non-Javadoc)
- * @see org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper#createHyperlinksByOffset(org.eclipse.xtext.resource.XtextResource, int, org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor)
- */
- @Override
- public void createHyperlinksByOffset(XtextResource resource, int offset, IHyperlinkAcceptor acceptor) {
-
- IParseResult parseResult = resource.getParseResult();
- if (parseResult != null && parseResult.getRootNode() != null) {
- ILeafNode leaf = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), offset);
- EObject grammarElement = leaf.getParent().getGrammarElement();
- if (grammarElement instanceof RuleCall) {
- RuleCall rc = (RuleCall) grammarElement;
- AbstractRule rule = rc.getRule();
- if (rule.getName().equals("Import")) {
- String text = leaf.getText().substring(1, leaf.getText().length()-1);
-
- XtextHyperlink result = hyperlinkProvider.get();
- result.setHyperlinkRegion(new Region(leaf.getOffset()+1, leaf.getLength()-2)); // omit ""
- String uritext = uriResolver.resolve(text, resource.getURI());
- URI uri = URI.createURI(uritext);
- result.setURI(uri);
- result.setHyperlinkText(text);
- acceptor.accept(result);
- }
- }
- }
-
- super.createHyperlinksByOffset(resource, offset, acceptor);
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.core.ui.linking; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.etrice.core.scoping.PlatformRelativeUriResolver; +import org.eclipse.jface.text.Region; +import org.eclipse.xtext.AbstractRule; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.ILeafNode; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.eclipse.xtext.parser.IParseResult; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper; +import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor; +import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink; + +import com.google.inject.Inject; +import com.google.inject.Provider; + +/** + * @author Henrik Rentz-Reichert (initial contribution) + * + */ +public class ImportAwareHyperlinkHelper extends HyperlinkHelper { + + @Inject + protected Provider<XtextHyperlink> hyperlinkProvider; + + @Inject + protected PlatformRelativeUriResolver uriResolver; + + public ImportAwareHyperlinkHelper() { + super(); + } + /* (non-Javadoc) + * @see org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper#createHyperlinksByOffset(org.eclipse.xtext.resource.XtextResource, int, org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor) + */ + @Override + public void createHyperlinksByOffset(XtextResource resource, int offset, IHyperlinkAcceptor acceptor) { + + IParseResult parseResult = resource.getParseResult(); + if (parseResult != null && parseResult.getRootNode() != null) { + ILeafNode leaf = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), offset); + EObject grammarElement = leaf.getParent().getGrammarElement(); + if (grammarElement instanceof RuleCall) { + RuleCall rc = (RuleCall) grammarElement; + AbstractRule rule = rc.getRule(); + if (rule.getName().equals("Import")) { + String text = leaf.getText().substring(1, leaf.getText().length()-1); + + XtextHyperlink result = hyperlinkProvider.get(); + result.setHyperlinkRegion(new Region(leaf.getOffset()+1, leaf.getLength()-2)); // omit "" + String uritext = uriResolver.resolve(text, resource.getURI()); + URI uri = URI.createURI(uritext); + result.setURI(uri); + result.setHyperlinkText(text); + acceptor.accept(result); + } + } + } + + super.createHyperlinksByOffset(resource, offset, acceptor); + } +} |