use of org.eclipse.ui.texteditor.HyperlinkDetectorDescriptor in project eclipse.platform.text by eclipse.
the class HyperlinkDetectorsConfigurationBlock method createListModel.
private ListItem[] createListModel() {
ArrayList<ListItem> listModelItems = new ArrayList<>();
for (int i = 0; i < fHyperlinkDetectorDescriptors.length; i++) {
HyperlinkDetectorDescriptor desc = fHyperlinkDetectorDescriptors[i];
HyperlinkDetectorTargetDescriptor target = desc.getTarget();
int stateMask = fStore.getInt(desc.getId() + HyperlinkDetectorDescriptor.STATE_MASK_POSTFIX);
String modifierKeys = getModifierString(stateMask);
listModelItems.add(new ListItem(desc.getId(), desc.getName(), target.getName(), modifierKeys));
}
Comparator<ListItem> comparator = new Comparator<ListItem>() {
@Override
public int compare(ListItem o1, ListItem o2) {
String label1 = o1.name;
String label2 = o2.name;
return Collator.getInstance().compare(label1, label2);
}
};
Collections.sort(listModelItems, comparator);
ListItem[] items = new ListItem[listModelItems.size()];
listModelItems.toArray(items);
return items;
}
use of org.eclipse.ui.texteditor.HyperlinkDetectorDescriptor 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;
}
}
Aggregations