]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.ui/src/org/simantics/ui/contribution/OpenWithMenuContribution.java
Allow overriding Open With menu's name
[simantics/platform.git] / bundles / org.simantics.ui / src / org / simantics / ui / contribution / OpenWithMenuContribution.java
index 55128b89e29fba7fd3461c401c7376d89115b8b7..2f46ddb5fe3125bbf3005e3e137b2d31b5c70d1d 100644 (file)
@@ -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);