Hyperlinking [message #853768] |
Mon, 23 April 2012 06:05  |
Eclipse User |
|
|
|
Hi all,
I'm trying to create an hyperlink from an EObject to another in the same file. I bind the DefaultHyperlinkDetector and then set MyHyperlinkHelper, I override the createHyperlinksByOffset method and in it I add the XtextHyperlink, but can it link to an EObject in the file?
|
|
|
|
Re: Hyperlinking [message #854214 is a reply to message #854140] |
Mon, 23 April 2012 15:31   |
Eclipse User |
|
|
|
I'm trying to have CTRL click on a VariableName to a VariableDeclaration. I bind the DefaultHyperlinkDetector
public Class<? extends DefaultHyperlinkDetector> bindDefaultHyperlinkDetector() { return MyLinkerService.class; }
this is MyLinkerService:
public class MyLinkerService extends DefaultHyperlinkDetector {
@Override
public IHyperlink[] detectHyperlinks(ITextViewer textViewer,
IRegion region, boolean canShowMultipleHyperlinks) {
this.setHelper(new MyHyperlink());
return super.detectHyperlinks(textViewer, region, canShowMultipleHyperlinks);
}
}
in MyLinkerService i set the helper to MyHyperlinkHelper:
public class MyHyperlinkHelper extends HyperlinkHelper {
@Override
public void createHyperlinksByOffset(XtextResource resource, int offset,
IHyperlinkAcceptor acceptor) {
super.createHyperlinksByOffset(resource, offset, acceptor);
TextLocation loc = new TextLocation();
EObject eObject = EObjectAtOffsetHelper.resolveElementAt(resource, offset, loc);
if (eObject instanceof VariableName) {
VariableName varName = (VariableName) eObject;
CompositeNode adapter = NodeUtil.getNode(varName);
XtextHyperlink hyperlink = new XtextHyperlink();
hyperlink.setHyperlinkText("Variable");
hyperlink.setHyperlinkRegion(new Region(adapter.getOffset(), adapter.getLength()));
acceptor.accept(hyperlink);
}
}
}
XtextHyperlink have a setURI() method but I want a link to the VariableDeclaration in the same file, how can I have this?
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.05341 seconds