X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2FAsyncUiEventListener.java;h=88119b8abbe663e2c33303e3e8a4666e1a288c2e;hb=c811008ac91053f068c26f48427617de9bb7b79c;hp=5d5a06f587b1b96132046bb3f2b904032f9a39b7;hpb=e299bf6123fb27d14176d2a164a85971be40fa2a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java index 5d5a06f58..88119b8ab 100644 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java +++ b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java @@ -28,10 +28,12 @@ import org.apache.commons.logging.LogFactory; import org.argeo.eclipse.ui.EclipseUiException; import org.eclipse.swt.widgets.Display; -/** {@link EventListener} which simplifies running actions within the UI thread. */ +/** + * {@link EventListener} which simplifies running actions within the UI thread. + */ public abstract class AsyncUiEventListener implements EventListener { -// private final static Log logSuper = LogFactory -// .getLog(AsyncUiEventListener.class); + // private final static Log logSuper = LogFactory + // .getLog(AsyncUiEventListener.class); private final Log logThis = LogFactory.getLog(getClass()); private final Display display; @@ -42,15 +44,13 @@ public abstract class AsyncUiEventListener implements EventListener { } /** Called asynchronously in the UI thread. */ - protected abstract void onEventInUiThread(List events) - throws RepositoryException; + protected abstract void onEventInUiThread(List events) throws RepositoryException; /** * Whether these events should be processed in the UI or skipped with no UI * job created. */ - protected Boolean willProcessInUiThread(List events) - throws RepositoryException { + protected Boolean willProcessInUiThread(List events) throws RepositoryException { return true; } @@ -73,27 +73,27 @@ public abstract class AsyncUiEventListener implements EventListener { throw new EclipseUiException("Cannot test skip events " + events, e); } -// Job job = new Job("JCR Events") { -// protected IStatus run(IProgressMonitor monitor) { -// if (display.isDisposed()) { -// logSuper.warn("Display is disposed cannot update UI"); -// return Status.CANCEL_STATUS; -// } + // Job job = new Job("JCR Events") { + // protected IStatus run(IProgressMonitor monitor) { + // if (display.isDisposed()) { + // logSuper.warn("Display is disposed cannot update UI"); + // return Status.CANCEL_STATUS; + // } - display.asyncExec(new Runnable() { - public void run() { - try { - onEventInUiThread(events); - } catch (RepositoryException e) { - throw new EclipseUiException("Cannot process events " - + events, e); - } + if (!display.isDisposed()) + display.asyncExec(new Runnable() { + public void run() { + try { + onEventInUiThread(events); + } catch (RepositoryException e) { + throw new EclipseUiException("Cannot process events " + events, e); } - }); + } + }); -// return Status.OK_STATUS; -// } -// }; -// job.schedule(); + // return Status.OK_STATUS; + // } + // }; + // job.schedule(); } }