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;
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;
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());
viewer.setLabelProvider(viewLabelProvider);
viewer.setInput(getViewSite());
viewer.addDoubleClickListener(new ViewDoubleClickListener());
+ // context menu
+ addContextMenu(viewer);
+
getViewSite().setSelectionProvider(viewer);
Transfer[] tt = new Transfer[] { TextTransfer.getInstance() };
viewer.setInput(getViewSite());
}
+ // Controllers
class ViewContentProvider extends SimpleNodeContentProvider {
public ViewContentProvider(Session session) {
}
+ 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) {