X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fviews%2FJcrExecutionModulesView.java;h=a3b7537edea7d45a0b60f84fd7e4331173eaff2a;hb=3e80111b0cbcc1d531107c6b2daca835af4dbe46;hp=1db61bd3e20b223d78ccefe81cee12199a5b4373;hpb=6867e7eef2de759cf14fabe575fcba0bea29d6fc;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java index 1db61bd3e..a3b7537ed 100644 --- a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java +++ b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java @@ -50,6 +50,10 @@ import org.argeo.slc.execution.ExecutionModulesManager; import org.argeo.slc.jcr.SlcJcrConstants; import org.argeo.slc.jcr.SlcNames; import org.argeo.slc.jcr.SlcTypes; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.IStructuredSelection; @@ -64,6 +68,7 @@ import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; @@ -79,14 +84,13 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, private TreeViewer viewer; + /* DEPENDENCY INJECTION */ private Session session; - private ExecutionModulesManager modulesManager; public void createPartControl(Composite parent) { viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); EclipseUiSpecificUtils.enableToolTipSupport(viewer); - ViewContentProvider contentProvider = new ViewContentProvider(session); viewer.setContentProvider(contentProvider); viewer.setComparer(new NodeElementComparer()); @@ -94,6 +98,9 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, viewer.setLabelProvider(viewLabelProvider); viewer.setInput(getViewSite()); viewer.addDoubleClickListener(new ViewDoubleClickListener()); + // context menu + addContextMenu(viewer); + getViewSite().setSelectionProvider(viewer); Transfer[] tt = new Transfer[] { TextTransfer.getInstance() }; @@ -129,6 +136,7 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, viewer.setInput(getViewSite()); } + // Controllers class ViewContentProvider extends SimpleNodeContentProvider { public ViewContentProvider(Session session) { @@ -211,6 +219,25 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, } + private void addContextMenu(TreeViewer flowsViewer) { + + final MenuManager menuMgr = new MenuManager(); + menuMgr.setRemoveAllWhenShown(true); + menuMgr.addMenuListener(new IMenuListener() { + + public void menuAboutToShow(IMenuManager manager) { + menuMgr.add(new Action("Test") { + public void run() { + log.debug("do something"); + } + }); + } + }); + Menu menu = menuMgr.createContextMenu(flowsViewer.getControl()); + flowsViewer.getTree().setMenu(menu); + getSite().registerContextMenu(menuMgr, flowsViewer); + } + class VmAgentObserver extends AsyncUiEventListener { public VmAgentObserver(Display display) {