From: Mathieu Baudier Date: Fri, 29 Dec 2017 13:23:12 +0000 (+0100) Subject: Make UI more reactive X-Git-Tag: argeo-slc-2.1.11~15 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=b911d584b6a193fd2aa0171a32a759810d205e5a;p=gpl%2Fargeo-slc.git Make UI more reactive --- diff --git a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/editors/ProcessEditor.java b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/editors/ProcessEditor.java index 1e9788e39..e0ff78589 100644 --- a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/editors/ProcessEditor.java +++ b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/editors/ProcessEditor.java @@ -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(); } diff --git a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java index b92a125d3..2e0a5cf42 100644 --- a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java +++ b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrExecutionModulesView.java @@ -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(); } diff --git a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrProcessListView.java b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrProcessListView.java index 18f8a5aee..4e2cf8015 100644 --- a/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrProcessListView.java +++ b/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/JcrProcessListView.java @@ -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(); }