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=2f46ddb5fe3125bbf3005e3e137b2d31b5c70d1d;hb=1ca7c5aad9e845ca9969ea37c7d4bef54e94b9e2;hp=55128b89e29fba7fd3461c401c7376d89115b8b7;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;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 55128b89e..2f46ddb5f 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 @@ -28,7 +28,7 @@ import org.eclipse.swt.widgets.MenuItem; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; -import org.simantics.ui.utils.ResourceAdaptionUtils; +import org.simantics.ui.selection.WorkbenchSelectionUtils; import org.simantics.ui.workbench.action.ResourceEditorAdapterAction; import org.simantics.ui.workbench.editor.EditorAdapter; import org.simantics.ui.workbench.editor.EditorRegistry; @@ -58,19 +58,24 @@ public class OpenWithMenuContribution extends DynamicMenuContribution { } protected Object extractResource(ReadGraph graph, Object object) throws DatabaseException { - Resource resource = ResourceAdaptionUtils.adaptToResource(graph, object); - if(resource != null) return resource; - else return object; + Resource resource = WorkbenchSelectionUtils.getPossibleResourceFromSelection(graph, object); + return resource != null ? resource : object; } - + @Override protected boolean preAcceptSelection(Object[] selection) { return selection.length == 1; } + protected String getText() { + return "Open With"; + } + @Override protected IContributionItem[] getContributionItems(ReadGraph graph, Object[] selection) throws DatabaseException { final Object r = extractResource(graph, selection[0]); + if (r == null) + return NONE; final EditorAdapter[] editorAdapters = EditorRegistry.getInstance().getAdaptersFor(graph, r); if (editorAdapters.length == 0) return NONE; @@ -80,7 +85,7 @@ public class OpenWithMenuContribution extends DynamicMenuContribution { @Override public void fill(Menu menu, int index) { MenuItem openWith = new MenuItem(menu, SWT.CASCADE, index); - openWith.setText("Open With"); + openWith.setText(getText()); openWith.setEnabled(editorAdapters.length > 0); Menu subMenu = new Menu(menu); openWith.setMenu(subMenu);