+ class ResultObserver extends AsyncUiEventListener {
+
+ public ResultObserver(Display display) {
+ super(display);
+ }
+
+ @Override
+ protected Boolean willProcessInUiThread(List<Event> events)
+ throws RepositoryException {
+ for (Event event : events) {
+ // getLog().debug("Received event " + event);
+ int eventType = event.getType();
+ if (eventType == Event.NODE_REMOVED)
+ return true;
+ String path = event.getPath();
+ int index = path.lastIndexOf('/');
+ String propertyName = path.substring(index + 1);
+ if (propertyName.equals(SLC_COMPLETED)
+ || propertyName.equals(SLC_UUID)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected void onEventInUiThread(List<Event> events)
+ throws RepositoryException {
+ if (getLog().isTraceEnabled())
+ getLog().trace("Refresh result list");
+ viewer.refresh();
+ }
+
+ }
+