]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java
1 package org
.argeo
.eclipse
.ui
.jcr
;
3 import javax
.jcr
.observation
.EventIterator
;
4 import javax
.jcr
.observation
.EventListener
;
6 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
7 import org
.eclipse
.core
.runtime
.IStatus
;
8 import org
.eclipse
.core
.runtime
.Status
;
9 import org
.eclipse
.core
.runtime
.jobs
.Job
;
10 import org
.eclipse
.swt
.widgets
.Display
;
12 /** {@link EventListener} which simplifies running actions within the UI thread. */
13 public abstract class AsyncUiEventListener
implements EventListener
{
14 private final Display display
;
16 public AsyncUiEventListener(Display display
) {
18 this.display
= display
;
21 /** Called asynchronously in the UI thread. */
22 protected abstract void onEventInUiThread(EventIterator events
);
24 public void onEvent(final EventIterator events
) {
25 Job job
= new Job("JCR Events") {
26 protected IStatus
run(IProgressMonitor monitor
) {
27 //Display display = Display.getCurrent();
28 //Display display = PlatformUI.getWorkbench().getDisplay();
30 display
.asyncExec(new Runnable() {
32 onEventInUiThread(events
);
35 return Status
.OK_STATUS
;
40 // PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
41 // public void run() {
42 // onEventInUiThread(events);