X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.ui%2Fsrc%2Forg%2Fsimantics%2Fui%2Fcontribution%2FOpenWithMenuContribution.java;h=c8a88f27dff64315f7d67ae52a6f34daba3fbf91;hb=acf5a3bf93ecfc3561d515c88fc652f5b904e959;hp=f09dd23ce286ec0a4ae1eb6d97f8aefb9b843099;hpb=a864222d40e7ad77dc2aa7d6ab008535e7bea99c;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.ui/src/org/simantics/ui/contribution/OpenWithMenuContribution.java b/bundles/org.simantics.ui/src/org/simantics/ui/contribution/OpenWithMenuContribution.java index f09dd23ce..c8a88f27d 100644 --- a/bundles/org.simantics.ui/src/org/simantics/ui/contribution/OpenWithMenuContribution.java +++ b/bundles/org.simantics.ui/src/org/simantics/ui/contribution/OpenWithMenuContribution.java @@ -49,7 +49,7 @@ public class OpenWithMenuContribution extends DynamicMenuContribution implements private static final boolean DEBUG_ADAPTERS = false; - private ResourceManager resourceManager; + protected ResourceManager resourceManager; private String editorId = null; public OpenWithMenuContribution() { @@ -73,6 +73,10 @@ public class OpenWithMenuContribution extends DynamicMenuContribution implements } } + public String getEditorId() { + return editorId; + } + public void setEditorId(String editorId) { this.editorId = editorId; } @@ -123,18 +127,7 @@ public class OpenWithMenuContribution extends DynamicMenuContribution implements if (editorAdapters.length > 0) { // Sort the open with actions in descending priority order. - Adapter[] adapters = new Adapter[editorAdapters.length]; - for (int i = 0; i < editorAdapters.length; i++) - adapters[i] = new Adapter(editorAdapters[i], r, true); - Arrays.sort(adapters, new Comparator() { - @Override - public int compare(Adapter o1, Adapter o2) { - int delta = o2.getPriority() - o1.getPriority(); - if (delta != 0) - return delta; - return AlphanumComparator.CASE_INSENSITIVE_COMPARATOR.compare(o1.getText(), o2.getText()); - } - }); + Adapter[] adapters = toAdapters(editorAdapters, r); for (Adapter a : adapters) addMenuItem(subMenu, a, r); @@ -144,6 +137,22 @@ public class OpenWithMenuContribution extends DynamicMenuContribution implements }; } + protected Adapter[] toAdapters(EditorAdapter[] editorAdapters, Object r) { + Adapter[] adapters = new Adapter[editorAdapters.length]; + for (int i = 0; i < editorAdapters.length; i++) + adapters[i] = new Adapter(editorAdapters[i], r, true); + Arrays.sort(adapters, new Comparator() { + @Override + public int compare(Adapter o1, Adapter o2) { + int delta = o2.getPriority() - o1.getPriority(); + if (delta != 0) + return delta; + return AlphanumComparator.CASE_INSENSITIVE_COMPARATOR.compare(o1.getText(), o2.getText()); + } + }); + return adapters; + } + protected EditorAdapter[] filter(EditorAdapter[] adapters, String id) { if (id == null) return adapters; @@ -170,7 +179,7 @@ public class OpenWithMenuContribution extends DynamicMenuContribution implements item.addSelectionListener(adapter); } - static class Adapter extends ResourceEditorAdapterAction implements SelectionListener { + protected static class Adapter extends ResourceEditorAdapterAction implements SelectionListener { boolean remember; public Adapter(EditorAdapter adapter, Object r, boolean remember) {