X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fviews%2FGenericJcrBrowser.java;h=f401ae8fe3a352967e0a1b979d2b6abaa8d88e72;hb=3a3d316af102ba410d1d9e6de349d0c8f7ac044f;hp=5557d810914f1c0d73af4ca48e3dfaa558915518;hpb=9884b3225a86b831917b10376925eebcbf99e513;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java index 5557d8109..f401ae8fe 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; import org.argeo.jcr.ui.explorer.browser.NodeContentProvider; import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider; import org.argeo.jcr.ui.explorer.browser.PropertiesContentProvider; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; import org.argeo.jcr.ui.explorer.utils.GenericNodeDoubleClickListener; import org.argeo.jcr.ui.explorer.utils.JcrUiUtils; import org.argeo.util.security.Keyring; @@ -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. */ @@ -153,9 +168,9 @@ public class GenericJcrBrowser extends AbstractJcrBrowser { IStructuredSelection sel = (IStructuredSelection) event .getSelection(); Object firstItem = sel.getFirstElement(); - if (firstItem instanceof SingleJcrNode) + if (firstItem instanceof SingleJcrNodeElem) propertiesViewer - .setInput(((SingleJcrNode) firstItem) + .setInput(((SingleJcrNodeElem) firstItem) .getNode()); } else { propertiesViewer.setInput(getViewSite()); @@ -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; }