]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultListView.java
Remove SLC GIS
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / views / JcrResultListView.java
index a886e050cd45a62bed707649a82f74dce3fff319..11eb02fd07c9722dadbdff89b0ca5175a40af313 100644 (file)
@@ -26,6 +26,7 @@ import org.argeo.slc.jcr.SlcNames;
 import org.argeo.slc.jcr.SlcTypes;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -53,17 +54,21 @@ public class JcrResultListView extends ViewPart implements SlcNames {
 
        private DateFormat dateFormat = new SimpleDateFormat(
                        "EEE, dd MMM yyyy HH:mm:ss");
-       private Integer queryLimit = 100;
+       private Integer queryLimit = 2000;
 
        public void createPartControl(Composite parent) {
+
                Table table = createTable(parent);
                viewer = new TableViewer(table);
-               viewer.setLabelProvider(new LabelProvider());
-               viewer.setContentProvider(new ContentProvider());
+               viewer.setLabelProvider(createLabelProvider());
+               viewer.setContentProvider(new ViewContentProvider());
                viewer.setInput(getViewSite());
                viewer.addDoubleClickListener(new ViewDoubleClickListener());
 
-               resultsObserver = new AsyncUiEventListener() {
+               getViewSite().setSelectionProvider(viewer);
+
+               resultsObserver = new AsyncUiEventListener(viewer.getTable()
+                               .getDisplay()) {
                        protected void onEventInUiThread(EventIterator events) {
                                // TODO optimize by updating only the changed result
                                viewer.refresh();
@@ -75,8 +80,7 @@ public class JcrResultListView extends ViewPart implements SlcNames {
                        observationManager.addEventListener(resultsObserver,
                                        Event.NODE_ADDED | Event.NODE_REMOVED
                                                        | Event.PROPERTY_CHANGED,
-                                       SlcJcrConstants.RESULTS_BASE_PATH, true, null, null,
-                                       false);
+                                       SlcJcrConstants.RESULTS_BASE_PATH, true, null, null, false);
                } catch (RepositoryException e) {
                        throw new SlcException("Cannot register listeners", e);
                }
@@ -84,9 +88,9 @@ public class JcrResultListView extends ViewPart implements SlcNames {
        }
 
        protected Table createTable(Composite parent) {
-               int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
-                               | SWT.FULL_SELECTION;
-               // does not function with RAP, commented for the time being
+               int style = SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
+                               | SWT.FULL_SELECTION | SWT.MULTI;
+               // does not work with RAP, commented for the time being
                // | SWT.HIDE_SELECTION;
 
                Table table = new Table(parent, style);
@@ -105,6 +109,36 @@ public class JcrResultListView extends ViewPart implements SlcNames {
                return table;
        }
 
+       // public void refresh() {
+       // viewer.refresh();
+       // }
+
+       /*
+        * METHODS TO BE OVERRIDDEN
+        */
+       protected IBaseLabelProvider createLabelProvider() {
+               return new ViewLabelProvider();
+       }
+
+       protected void processDoubleClick(DoubleClickEvent evt) {
+               Object obj = ((IStructuredSelection) evt.getSelection())
+                               .getFirstElement();
+               try {
+                       if (obj instanceof Node) {
+                               Node node = (Node) obj;
+                               if (node.isNodeType(SlcTypes.SLC_PROCESS)) {
+                                       IWorkbenchPage activePage = PlatformUI.getWorkbench()
+                                                       .getActiveWorkbenchWindow().getActivePage();
+                                       activePage.openEditor(
+                                                       new ProcessEditorInput(node.getPath()),
+                                                       ProcessEditor.ID);
+                               }
+                       }
+               } catch (Exception e) {
+                       throw new SlcException("Cannot open " + obj, e);
+               }
+       }
+
        public void setFocus() {
                viewer.getControl().setFocus();
        }
@@ -115,7 +149,7 @@ public class JcrResultListView extends ViewPart implements SlcNames {
                super.dispose();
        }
 
-       class ContentProvider implements IStructuredContentProvider {
+       class ViewContentProvider implements IStructuredContentProvider {
 
                public Object[] getElements(Object inputElement) {
                        try {
@@ -144,7 +178,7 @@ public class JcrResultListView extends ViewPart implements SlcNames {
 
        }
 
-       class LabelProvider extends ColumnLabelProvider implements
+       class ViewLabelProvider extends ColumnLabelProvider implements
                        ITableLabelProvider {
 
                public Image getColumnImage(Object obj, int columnIndex) {
@@ -152,7 +186,7 @@ public class JcrResultListView extends ViewPart implements SlcNames {
                                return null;
                        try {
                                Node node = (Node) obj;
-                               if(node.hasProperty(SLC_COMPLETED)){
+                               if (node.hasProperty(SLC_COMPLETED)) {
                                        // TODO
                                }
                                return null;
@@ -183,22 +217,7 @@ public class JcrResultListView extends ViewPart implements SlcNames {
 
        class ViewDoubleClickListener implements IDoubleClickListener {
                public void doubleClick(DoubleClickEvent evt) {
-                       Object obj = ((IStructuredSelection) evt.getSelection())
-                                       .getFirstElement();
-                       try {
-                               if (obj instanceof Node) {
-                                       Node node = (Node) obj;
-                                       if (node.isNodeType(SlcTypes.SLC_PROCESS)) {
-                                               IWorkbenchPage activePage = PlatformUI.getWorkbench()
-                                                               .getActiveWorkbenchWindow().getActivePage();
-                                               activePage.openEditor(
-                                                               new ProcessEditorInput(node.getPath()),
-                                                               ProcessEditor.ID);
-                                       }
-                               }
-                       } catch (Exception e) {
-                               throw new SlcException("Cannot open " + obj, e);
-                       }
+                       processDoubleClick(evt);
                }
 
        }