]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java
Make UI more reactive
[gpl/argeo-slc.git] / org.argeo.slc.client.ui / src / org / argeo / slc / client / ui / views / JcrExecutionModulesView.java
index 4340f93f2f83807aeba8fbdc18fee2421c80ea11..2e0a5cf424e5453c626cae5e774125f5a7009aeb 100644 (file)
@@ -36,7 +36,6 @@ 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.eclipse.ui.jcr.DefaultNodeLabelProvider;
 import org.argeo.eclipse.ui.jcr.NodeElementComparer;
@@ -44,19 +43,20 @@ 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.SlcNames;
+import org.argeo.slc.SlcTypes;
 import org.argeo.slc.client.ui.ClientUiPlugin;
 import org.argeo.slc.client.ui.SlcImages;
 import org.argeo.slc.client.ui.editors.ProcessEditor;
 import org.argeo.slc.client.ui.editors.ProcessEditorInput;
 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.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.rap.rwt.service.ServerPushSession;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DragSourceAdapter;
@@ -78,12 +78,17 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, SlcNa
 
        private TreeViewer viewer;
 
+       private ServerPushSession pushSession;
+
        /* DEPENDENCY INJECTION */
        private Repository repository;
        private Session session;
        private ExecutionModulesManager modulesManager;
 
        public void createPartControl(Composite parent) {
+               pushSession = new ServerPushSession();
+               pushSession.start();
+
                try {
                        session = repository.login();
                } catch (RepositoryException e1) {
@@ -202,7 +207,7 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, SlcNa
                                        }
                                }
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot compare " + o1 + " and " + o2, e);
+                               throw new SlcException("Cannot compare " + o1 + " and " + o2, e);
                        }
                        return 0;
                }
@@ -410,6 +415,8 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, SlcNa
 
        public void dispose() {
                JcrUtils.logoutQuietly(session);
+               if (pushSession != null)
+                       pushSession.stop();
                super.dispose();
        }