]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java
Desactivate file download by double click in the Jcr Explorer browser: RAP 2.x APIS...
[lgpl/argeo-commons.git] / server / plugins / org.argeo.jcr.ui.explorer / src / main / java / org / argeo / jcr / ui / explorer / views / GenericJcrBrowser.java
index f000ba385fa0f4964611657dac8325bcf4c04634..f401ae8fe3a352967e0a1b979d2b6abaa8d88e72 100644 (file)
@@ -67,7 +67,7 @@ import org.eclipse.swt.widgets.Menu;
  */
 public class GenericJcrBrowser extends AbstractJcrBrowser {
        public final static String ID = JcrExplorerPlugin.ID + ".browserView";
-       private boolean sortChildNodes = false;
+       private boolean sortChildNodes = true;
 
        /* DEPENDENCY INJECTION */
        private Keyring keyring;
@@ -129,6 +129,21 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                nodesViewer.setComparer(new NodeViewerComparer());
        }
 
+       @Override
+       public void refresh(Object obj) {
+               // Enable full refresh from a command when no element of the tree is
+               // selected
+               if (obj == null) {
+                       Object[] elements = nodeContentProvider.getElements(null);
+                       for (Object el : elements) {
+                               if (el instanceof TreeParent)
+                                       JcrUiUtils.forceRefreshIfNeeded((TreeParent) el);
+                               getNodeViewer().refresh(el);
+                       }
+               }
+               super.refresh(obj);
+       }
+
        /**
         * To be overridden to adapt size of form and result frames.
         */
@@ -256,6 +271,20 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                return nodesViewer;
        }
 
+       /**
+        * Resets the tree content provider
+        * 
+        * @param sortChildNodes
+        *            if true the content provider will use a comparer to sort nodes
+        *            that might slow down the display
+        * */
+       public void setSortChildNodes(boolean sortChildNodes) {
+               this.sortChildNodes = sortChildNodes;
+               ((NodeContentProvider) nodesViewer.getContentProvider())
+                               .setSortChildren(sortChildNodes);
+               nodesViewer.setInput(getViewSite());
+       }
+
        /** Notifies the current view that a node has been added */
        public void nodeAdded(TreeParent parentNode) {
                // insure that Ui objects have been correctly created:
@@ -264,7 +293,7 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                getNodeViewer().expandToLevel(parentNode, 1);
        }
 
-       /** Notifies the current view that a node has been added */
+       /** Notifies the current view that a node has been removed */
        public void nodeRemoved(TreeParent parentNode) {
                IStructuredSelection newSel = new StructuredSelection(parentNode);
                getNodeViewer().setSelection(newSel, true);
@@ -304,10 +333,6 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
 
        }
 
-       public void setSortChildNodes(boolean sortChildNodes) {
-               this.sortChildNodes = sortChildNodes;
-       }
-
        public boolean getSortChildNodes() {
                return sortChildNodes;
        }