下面列出了怎么用org.eclipse.jface.text.hyperlink.IHyperlinkPresenter的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer) {
IHyperlinkPresenter base = super.getHyperlinkPresenter(sourceViewer);
try {
SingleHoverShowingHyperlinkPresenter wrapper = new SingleHoverShowingHyperlinkPresenter((MultipleHyperlinkPresenter) base);
Set<Class<?>> interfaces = Sets.newHashSet();
Class<?> c = base.getClass();
while(c != null) {
Collections.addAll(interfaces, c.getInterfaces());
c = c.getSuperclass();
}
IHyperlinkPresenter result = (IHyperlinkPresenter) Proxy.newProxyInstance(getClass().getClassLoader(), interfaces.toArray(new Class[0]), wrapper);
return result;
} catch(Exception e) {
return base;
}
}
@Override
public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer) {
/* When using default implementation, the following exception appears:
java.lang.IllegalStateException
at org.eclipse.jface.text.TextViewer.setHyperlinkPresenter(TextViewer.java:5712)
at org.eclipse.jface.text.source.SourceViewer.configure(SourceViewer.java:491)
at CalcitePane.createPartControl(CalcitePane.java:84)
at org.eclipse.mat.ui.editor.MultiPaneEditor.addPage(MultiPaneEditor.java:585)
at org.eclipse.mat.ui.editor.MultiPaneEditor.addPage(MultiPaneEditor.java:574)
at org.eclipse.mat.ui.editor.MultiPaneEditor.doAddNewPage(MultiPaneEditor.java:552)
at org.eclipse.mat.ui.editor.MultiPaneEditor.addNewPage(MultiPaneEditor.java:535)
at org.eclipse.mat.ui.editor.MultiPaneEditor.addNewPage(MultiPaneEditor.java:489)
at OpenCalciteAction.run(OpenCalciteAction.java:22)
*/
return null;
}
public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer)
{
RGB rgb = getCurrentTheme().getForegroundAsRGB("hyperlink"); //$NON-NLS-1$
return new MultipleHyperlinkPresenter(rgb);
}
public void setHyperlinkPresenter(IHyperlinkPresenter hyperlinkPresenter) throws IllegalStateException {
viewer.setHyperlinkPresenter(hyperlinkPresenter);
}