Make UI more reactive
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 29 Dec 2017 13:23:12 +0000 (14:23 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 29 Dec 2017 13:23:12 +0000 (14:23 +0100)
org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/editors/ProcessEditor.java
org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java
org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrProcessListView.java

index 1e9788e3965cdffcd959cb644e38b5187d5d9853..e0ff7858950ac85fa3537639444dbfff9bad87fa 100644 (file)
@@ -37,6 +37,7 @@ import org.argeo.slc.execution.ExecutionModulesManager;
 import org.argeo.slc.execution.ExecutionProcess;
 import org.argeo.slc.jcr.SlcJcrUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.rap.rwt.service.ServerPushSession;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IWorkbenchPage;
@@ -54,6 +55,7 @@ public class ProcessEditor extends FormEditor implements SlcTypes, SlcNames {
        private Session session;
        private Node processNode;
        private ProcessController processController;
+       private ServerPushSession pushSession;
 
        private ProcessBuilderPage builderPage;
 
@@ -63,6 +65,8 @@ public class ProcessEditor extends FormEditor implements SlcTypes, SlcNames {
        public void init(IEditorSite site, IEditorInput input)
                        throws PartInitException {
                super.init(site, input);
+               pushSession = new ServerPushSession();
+               pushSession.start();
                try {
                        session = repository.login();
                } catch (RepositoryException e1) {
@@ -119,6 +123,8 @@ public class ProcessEditor extends FormEditor implements SlcTypes, SlcNames {
        @Override
        public void dispose() {
                JcrUtils.logoutQuietly(session);
+               if (pushSession != null)
+                       pushSession.stop();
                super.dispose();
        }
 
index b92a125d3ea8484367d51bb40d81c4085c655019..2e0a5cf424e5453c626cae5e774125f5a7009aeb 100644 (file)
@@ -56,6 +56,7 @@ 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;
@@ -77,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) {
@@ -409,6 +415,8 @@ public class JcrExecutionModulesView extends ViewPart implements SlcTypes, SlcNa
 
        public void dispose() {
                JcrUtils.logoutQuietly(session);
+               if (pushSession != null)
+                       pushSession.stop();
                super.dispose();
        }
 
index 18f8a5aee55d5763bd0b8c78640a9cab7acdd886..4e2cf8015b37c3d42c81be47dbc06bff66118571 100644 (file)
@@ -50,6 +50,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.rap.rwt.service.ServerPushSession;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Composite;
@@ -64,6 +65,7 @@ public class JcrProcessListView extends ViewPart {
        public static final String ID = ClientUiPlugin.ID + ".jcrProcessListView";
 
        private TableViewer viewer;
+       private ServerPushSession pushSession;
 
        private Repository repository;
        private Session session;
@@ -75,6 +77,8 @@ public class JcrProcessListView extends ViewPart {
        private Integer queryLimit = 2000;
 
        public void createPartControl(Composite parent) {
+               pushSession = new ServerPushSession();
+               pushSession.start();
                try {
                        session = repository.login();
                } catch (RepositoryException re) {
@@ -251,6 +255,8 @@ public class JcrProcessListView extends ViewPart {
        public void dispose() {
                JcrUtils.unregisterQuietly(session.getWorkspace(), processesObserver);
                JcrUtils.logoutQuietly(session);
+               if (pushSession != null)
+                       pushSession.stop();
                super.dispose();
        }