import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.argeo.ArgeoException;
import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;
import org.argeo.jcr.JcrUtils;
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;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
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;
/** Definition of the process. */
public class ProcessBuilderPage extends FormPage implements SlcNames {
+ private final static Log log = LogFactory.getLog(ProcessBuilderPage.class);
+
public final static String ID = "processBuilderPage";
/** To be displayed in empty lists */
flowsViewer.addDropSupport(operations, tt, new FlowsDropListener(
flowsViewer));
+ // Context menu
+ addContextMenu();
+
flowsViewer.setInput(getEditorSite());
flowsViewer.setInput(processNode);
}
}
+ 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;
+ }
+
+ 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");
+ }
+ }
+ }
+ });
+ // menuMgr.setRemoveAllWhenShown(true);
+ getSite().registerContextMenu(menuMgr, flowsViewer);
+ flowsViewer.getTree().setMenu(menu);
+ }
+
/** Manages drop event. */
class FlowsDropListener extends ViewerDropAdapter {
event.data = buf.toString();
log.debug("data set to : " + buf.toString());
}
- // if (selection.getFirstElement() instanceof Node) {
- // Node node = (Node) selection.getFirstElement();
- // if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
- // try {
- // event.data = node.getPath();
- // } catch (RepositoryException e) {
- // throw new SlcException("Cannot read node", e);
- // }
- // }
- // }
}
}
+ // DEPENDENCY INJECTION
public void setSession(Session session) {
this.session = session;
}
public void setModulesManager(ExecutionModulesManager modulesManager) {
this.modulesManager = modulesManager;
}
-
}
\ No newline at end of file
private final static String[] observedNodeTypesUnderAllResults = {\r
SlcTypes.SLC_TEST_RESULT, NodeType.NT_UNSTRUCTURED };\r
\r
- // FIXME cache to ease D&D\r
- // private boolean isActionUnderMyResult = false;\r
- // private ResultParent lastSelectedTargetElement;\r
- // private ResultParent lastSelectedSourceElement;\r
- // private ResultParent lastSelectedSourceElementParent;\r
private boolean isResultFolder = false;\r
\r
- // FIXME we cache the fact that we are moving a node to avoid exception\r
- // triggered by the "Add Node" event while moving\r
- // boolean isMoveInProgress = false;\r
-\r
/**\r
* To be overridden to adapt size of form and result frames.\r
*/\r
\r
// Override default behaviour to insure that 2 distincts results that\r
// have the same name will be correctly and distincly returned by\r
- // corresponding\r
- // TreeViewer.getSelection() method.\r
+ // corresponding TreeViewer.getSelection() method.\r
viewer.setComparer(new ResultItemsComparer());\r
\r
// viewer.setLabelProvider(rtLblProvider);\r