use of org.eclipse.ui.texteditor.HyperlinkDetectorRegistry in project linuxtools by eclipse.
the class SpecfileConfiguration method getHyperlinkDetectors.
@Override
public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
if (sourceViewer == null) {
return null;
}
Map<String, IAdaptable> targets = getHyperlinkDetectorTargets(sourceViewer);
HyperlinkDetectorRegistry hlDetectorRegistry = EditorsUI.getHyperlinkDetectorRegistry();
HyperlinkDetectorDescriptor[] hlDetectorDescriptor = hlDetectorRegistry.getHyperlinkDetectorDescriptors();
List<IHyperlinkDetector> tempHDList = new ArrayList<>();
for (Map.Entry<String, IAdaptable> entry : targets.entrySet()) {
for (HyperlinkDetectorDescriptor hdd : hlDetectorDescriptor) {
try {
AbstractHyperlinkDetector ahld = (AbstractHyperlinkDetector) hdd.createHyperlinkDetectorImplementation();
// however, allow URLHyperlinkWithMacroDetector
if (hdd.getTargetId().equals(entry.getKey()) && (!(ahld instanceof URLHyperlinkDetector) || ahld instanceof URLHyperlinkWithMacroDetector)) {
ahld.setContext(entry.getValue());
tempHDList.add(ahld);
}
} catch (CoreException e) {
SpecfileLog.logError(e);
}
}
}
if (!tempHDList.isEmpty()) {
return tempHDList.toArray(new IHyperlinkDetector[tempHDList.size()]);
} else {
return null;
}
}
use of org.eclipse.ui.texteditor.HyperlinkDetectorRegistry in project eclipse.platform.text by eclipse.
the class TextSourceViewerConfiguration method getRegisteredHyperlinkDetectors.
/**
* Returns the registered hyperlink detectors which are used to detect
* hyperlinks in the given source viewer.
*
* @param sourceViewer the source viewer to be configured by this configuration
* @return an array with hyperlink detectors or <code>null</code> if no hyperlink detectors are registered
* @since 3.3
*/
protected final IHyperlinkDetector[] getRegisteredHyperlinkDetectors(ISourceViewer sourceViewer) {
HyperlinkDetectorRegistry registry = EditorsUI.getHyperlinkDetectorRegistry();
Map<String, IAdaptable> targets = getHyperlinkDetectorTargets(sourceViewer);
Assert.isNotNull(targets);
IHyperlinkDetector[] result = null;
Iterator<Entry<String, IAdaptable>> iter = targets.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, IAdaptable> target = iter.next();
String targetId = target.getKey();
IAdaptable context = target.getValue();
result = merge(result, registry.createHyperlinkDetectors(targetId, context));
}
return result;
}
Aggregations