From: Mathieu Baudier Date: Thu, 9 Feb 2012 09:43:19 +0000 (+0000) Subject: Use canonical JCR sort by default X-Git-Tag: argeo-commons-2.1.30~1032 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=249e40b2bfa97e7c8b97537472b5630ad8da2718;p=lgpl%2Fargeo-commons.git Use canonical JCR sort by default git-svn-id: https://svn.argeo.org/commons/trunk@5027 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java index 99a169e6d..205874285 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java @@ -29,19 +29,20 @@ public class NodeContentProvider implements ITreeContentProvider { private final static Log log = LogFactory.getLog(NodeContentProvider.class); // Business Objects - private RepositoryRegister repositoryRegister; - private Session userSession; - private JcrKeyring jcrKeyring; + final private RepositoryRegister repositoryRegister; + final private Session userSession; + final private JcrKeyring jcrKeyring; + final private boolean sortChildren; // Utils - private boolean sortChildren = true; private TreeObjectsComparator itemComparator = new TreeObjectsComparator(); public NodeContentProvider(JcrKeyring jcrKeyring, - RepositoryRegister repositoryRegister) { + RepositoryRegister repositoryRegister, Boolean sortChildren) { this.userSession = jcrKeyring != null ? jcrKeyring.getSession() : null; this.jcrKeyring = jcrKeyring; this.repositoryRegister = repositoryRegister; + this.sortChildren = sortChildren; } /** 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 292fc816e..b84214c74 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 @@ -106,7 +106,7 @@ public class GenericJcrBrowser extends AbstractJcrBrowser { top.setLayout(gl); nodeContentProvider = new NodeContentProvider(jcrKeyring, - repositoryRegister); + repositoryRegister, sortChildNodes); // nodes viewer nodesViewer = createNodeViewer(top, nodeContentProvider); @@ -124,7 +124,66 @@ public class GenericJcrBrowser extends AbstractJcrBrowser { // Create the property viewer on the bottom Composite bottom = new Composite(sashForm, SWT.NONE); bottom.setLayout(new GridLayout(1, false)); - propertiesViewer = new TableViewer(bottom); + propertiesViewer = createPropertiesViewer(bottom); + + sashForm.setWeights(getWeights()); + nodesViewer.setComparer(new NodeViewerComparer()); + } + + /** + * To be overridden to adapt size of form and result frames. + */ + protected int[] getWeights() { + return new int[] { 70, 30 }; + } + + protected TreeViewer createNodeViewer(Composite parent, + final ITreeContentProvider nodeContentProvider) { + + final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI); + + tmpNodeViewer.getTree().setLayoutData( + new GridData(SWT.FILL, SWT.FILL, true, true)); + + tmpNodeViewer.setContentProvider(nodeContentProvider); + tmpNodeViewer.setLabelProvider(new NodeLabelProvider()); + tmpNodeViewer + .addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + if (!event.getSelection().isEmpty()) { + IStructuredSelection sel = (IStructuredSelection) event + .getSelection(); + Object firstItem = sel.getFirstElement(); + if (firstItem instanceof SingleJcrNode) + propertiesViewer + .setInput(((SingleJcrNode) firstItem) + .getNode()); + } else { + propertiesViewer.setInput(getViewSite()); + } + } + }); + + resultsObserver = new TreeObserver(tmpNodeViewer.getTree().getDisplay()); + if (jcrKeyring != null) + try { + ObservationManager observationManager = jcrKeyring.getSession() + .getWorkspace().getObservationManager(); + observationManager.addEventListener(resultsObserver, + Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/", + true, null, null, false); + } catch (RepositoryException e) { + throw new ArgeoException("Cannot register listeners", e); + } + + tmpNodeViewer + .addDoubleClickListener(new GenericNodeDoubleClickListener( + tmpNodeViewer)); + return tmpNodeViewer; + } + + protected TableViewer createPropertiesViewer(Composite parent) { + propertiesViewer = new TableViewer(parent); propertiesViewer.getTable().setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, true)); propertiesViewer.getTable().setHeaderVisible(true); @@ -185,61 +244,7 @@ public class GenericJcrBrowser extends AbstractJcrBrowser { } }); propertiesViewer.setInput(getViewSite()); - - sashForm.setWeights(getWeights()); - nodesViewer.setComparer(new NodeViewerComparer()); - } - - /** - * To be overridden to adapt size of form and result frames. - */ - protected int[] getWeights() { - return new int[] { 70, 30 }; - } - - protected TreeViewer createNodeViewer(Composite parent, - final ITreeContentProvider nodeContentProvider) { - - final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI); - - tmpNodeViewer.getTree().setLayoutData( - new GridData(SWT.FILL, SWT.FILL, true, true)); - - tmpNodeViewer.setContentProvider(nodeContentProvider); - tmpNodeViewer.setLabelProvider(new NodeLabelProvider()); - tmpNodeViewer - .addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - if (!event.getSelection().isEmpty()) { - IStructuredSelection sel = (IStructuredSelection) event - .getSelection(); - Object firstItem = sel.getFirstElement(); - if (firstItem instanceof SingleJcrNode) - propertiesViewer - .setInput(((SingleJcrNode) firstItem) - .getNode()); - } else { - propertiesViewer.setInput(getViewSite()); - } - } - }); - - resultsObserver = new TreeObserver(tmpNodeViewer.getTree().getDisplay()); - if (jcrKeyring != null) - try { - ObservationManager observationManager = jcrKeyring.getSession() - .getWorkspace().getObservationManager(); - observationManager.addEventListener(resultsObserver, - Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/", - true, null, null, false); - } catch (RepositoryException e) { - throw new ArgeoException("Cannot register listeners", e); - } - - tmpNodeViewer - .addDoubleClickListener(new GenericNodeDoubleClickListener( - tmpNodeViewer)); - return tmpNodeViewer; + return propertiesViewer; } @Override