Map existing remove and remove all buttons to a context menu
authorBruno Sinou <bsinou@argeo.org>
Mon, 25 Mar 2013 16:42:05 +0000 (16:42 +0000)
committerBruno Sinou <bsinou@argeo.org>
Mon, 25 Mar 2013 16:42:05 +0000 (16:42 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@6215 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/editors/ProcessBuilderPage.java

index f1caa542439b69bd7699e586435c7727aa7ee035..a64055c1386e53417c9ab94881091c7d3c8bc603 100644 (file)
@@ -45,10 +45,6 @@ import org.argeo.slc.execution.ExecutionProcess;
 import org.argeo.slc.jcr.SlcJcrUtils;
 import org.argeo.slc.jcr.SlcNames;
 import org.argeo.slc.jcr.SlcTypes;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.ColumnViewer;
@@ -86,7 +82,6 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.forms.AbstractFormPart;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormPage;
@@ -620,44 +615,36 @@ public class ProcessBuilderPage extends FormPage implements SlcNames {
                }
        }
 
+       /**
+        * Add a context menu that call private methods. It only relies on selected
+        * item(s) not on parameter that are passed in the menuAboutToShow method
+        **/
        private void addContextMenu() {
-               // Create the popup menu
-               final MenuManager menuMgr = new MenuManager();
-               final Menu menu = menuMgr.createContextMenu(flowsViewer.getTree());
-               menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-               menuMgr.addMenuListener(new IMenuListener() {
-
-                       public void menuAboutToShow(IMenuManager manager) {
-                               if (flowsViewer.getSelection().isEmpty()) {
-                                       log.debug("empty selection");
-                                       return;
-                               }
+               Menu menu = new Menu(flowsViewer.getControl());
 
-                               if (flowsViewer.getSelection() instanceof IStructuredSelection) {
-                                       IStructuredSelection selection = (IStructuredSelection) flowsViewer
-                                                       .getSelection();
-                                       log.debug("got a selection");
-                                       Node currNode = (Node) selection.getFirstElement();
-                                       if (true) {
-                                               MenuItem renameItem = new MenuItem(menu, SWT.PUSH);
-                                               renameItem
-                                                               .addSelectionListener(new SelectionListener() {
-
-                                                                       public void widgetSelected(SelectionEvent e) {
-                                                                               removeSelectedFlows();
-                                                                       }
-
-                                                                       public void widgetDefaultSelected(
-                                                                                       SelectionEvent e) {
-                                                                       }
-                                                               });
-                                               renameItem.setText("Remove selected");
-                                       }
-                               }
+               MenuItem removeItems = new MenuItem(menu, SWT.PUSH);
+               removeItems.addSelectionListener(new SelectionListener() {
+
+                       public void widgetSelected(SelectionEvent e) {
+                               removeSelectedFlows();
+                       }
+
+                       public void widgetDefaultSelected(SelectionEvent e) {
+                       }
+               });
+               removeItems.setText("Remove selected flow(s)");
+
+               MenuItem removeAllItems = new MenuItem(menu, SWT.PUSH);
+               removeAllItems.addSelectionListener(new SelectionListener() {
+
+                       public void widgetSelected(SelectionEvent e) {
+                               removeAllFlows();
+                       }
+
+                       public void widgetDefaultSelected(SelectionEvent e) {
                        }
                });
-               // menuMgr.setRemoveAllWhenShown(true);
-               getSite().registerContextMenu(menuMgr, flowsViewer);
+               removeAllItems.setText("Remove all flows");
                flowsViewer.getTree().setMenu(menu);
        }