]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java
Migrate SLC modules
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / views / JcrExecutionModulesView.java
index dca7fc79988fa4bb003b3547befca357344c6916..71f291e8ac56b48e2757b7529fbb175870a62f1f 100644 (file)
@@ -26,6 +26,7 @@ import java.util.TreeSet;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.Property;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
@@ -41,6 +42,7 @@ import org.argeo.eclipse.ui.jcr.DefaultNodeLabelProvider;
 import org.argeo.eclipse.ui.jcr.NodeElementComparer;
 import org.argeo.eclipse.ui.jcr.SimpleNodeContentProvider;
 import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils;
+import org.argeo.jcr.JcrUtils;
 import org.argeo.slc.SlcException;
 import org.argeo.slc.client.ui.ClientUiPlugin;
 import org.argeo.slc.client.ui.SlcImages;
@@ -79,14 +81,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 +95,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 +133,7 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes,
                viewer.setInput(getViewSite());
        }
 
+       // Controllers
        class ViewContentProvider extends SimpleNodeContentProvider {
 
                public ViewContentProvider(Session session) {
@@ -211,6 +216,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) {
@@ -402,25 +426,31 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes,
                                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);
-                       // }
-                       // }
-                       // }
                }
        }
 
-       public void setSession(Session session) {
-               this.session = session;
+       public void dispose() {
+               JcrUtils.logoutQuietly(session);
+               super.dispose();
        }
 
+       // DEPENDENCY INJECTION
+
        public void setModulesManager(ExecutionModulesManager modulesManager) {
                this.modulesManager = modulesManager;
        }
 
+       @Deprecated
+       public void setSession(Session session) {
+               this.session = session;
+       }
+
+       public void setRepository(Repository repository) {
+               try {
+                       session = repository.login();
+               } catch (RepositoryException re) {
+                       throw new SlcException("Unable to log in Repository " + repository,
+                                       re);
+               }
+       }
 }
\ No newline at end of file