Search in sources :

Example 1 with AbstractHyperlinkDetector

use of org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector 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;
    }
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) IHyperlinkDetector(org.eclipse.jface.text.hyperlink.IHyperlinkDetector) ArrayList(java.util.ArrayList) URLHyperlinkWithMacroDetector(org.eclipse.linuxtools.internal.rpm.ui.editor.hyperlink.URLHyperlinkWithMacroDetector) HyperlinkDetectorRegistry(org.eclipse.ui.texteditor.HyperlinkDetectorRegistry) URLHyperlinkDetector(org.eclipse.jface.text.hyperlink.URLHyperlinkDetector) HyperlinkDetectorDescriptor(org.eclipse.ui.texteditor.HyperlinkDetectorDescriptor) AbstractHyperlinkDetector(org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector) CoreException(org.eclipse.core.runtime.CoreException) Map(java.util.Map)

Aggregations

ArrayList (java.util.ArrayList)1 Map (java.util.Map)1 CoreException (org.eclipse.core.runtime.CoreException)1 IAdaptable (org.eclipse.core.runtime.IAdaptable)1 AbstractHyperlinkDetector (org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector)1 IHyperlinkDetector (org.eclipse.jface.text.hyperlink.IHyperlinkDetector)1 URLHyperlinkDetector (org.eclipse.jface.text.hyperlink.URLHyperlinkDetector)1 URLHyperlinkWithMacroDetector (org.eclipse.linuxtools.internal.rpm.ui.editor.hyperlink.URLHyperlinkWithMacroDetector)1 HyperlinkDetectorDescriptor (org.eclipse.ui.texteditor.HyperlinkDetectorDescriptor)1 HyperlinkDetectorRegistry (org.eclipse.ui.texteditor.HyperlinkDetectorRegistry)1