X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fworkbench%2Fjcr%2FJcrBrowserView.java;h=f84950b91ccb4c9061e1e256af6e467a4c900d96;hb=5b444174cd13680f99944026877f6cac2e1faba1;hp=e25512dd7a3c36554ba8d2d6a2a35b9ff55a4034;hpb=c149774fa220fe69f430f7b230ac4c442ea6d0fe;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/jcr/JcrBrowserView.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/jcr/JcrBrowserView.java index e25512dd7..f84950b91 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/jcr/JcrBrowserView.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/jcr/JcrBrowserView.java @@ -28,18 +28,19 @@ import javax.jcr.observation.Event; import javax.jcr.observation.EventListener; import javax.jcr.observation.ObservationManager; +import org.argeo.cms.ui.jcr.DefaultRepositoryRegister; +import org.argeo.cms.ui.jcr.JcrBrowserUtils; +import org.argeo.cms.ui.jcr.JcrDClickListener; +import org.argeo.cms.ui.jcr.NodeContentProvider; +import org.argeo.cms.ui.jcr.NodeLabelProvider; +import org.argeo.cms.ui.jcr.PropertiesContentProvider; +import org.argeo.cms.ui.jcr.RepositoryRegister; +import org.argeo.cms.ui.jcr.model.SingleJcrNodeElem; import org.argeo.cms.ui.workbench.WorkbenchUiPlugin; -import org.argeo.cms.ui.workbench.internal.jcr.JcrDClickListener; -import org.argeo.cms.ui.workbench.internal.jcr.JcrBrowserUtils; -import org.argeo.cms.ui.workbench.internal.jcr.NodeContentProvider; -import org.argeo.cms.ui.workbench.internal.jcr.NodeLabelProvider; -import org.argeo.cms.ui.workbench.internal.jcr.PropertiesContentProvider; -import org.argeo.cms.ui.workbench.internal.jcr.model.SingleJcrNodeElem; import org.argeo.eclipse.ui.EclipseUiException; import org.argeo.eclipse.ui.TreeParent; import org.argeo.eclipse.ui.jcr.AsyncUiEventListener; import org.argeo.eclipse.ui.jcr.utils.NodeViewerComparer; -import org.argeo.jcr.RepositoryRegister; import org.argeo.node.security.Keyring; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ColumnLabelProvider; @@ -66,13 +67,12 @@ import org.eclipse.ui.part.ViewPart; * repository environment */ public class JcrBrowserView extends ViewPart { - public final static String ID = WorkbenchUiPlugin.PLUGIN_ID - + ".jcrBrowserView"; + public final static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".jcrBrowserView"; private boolean sortChildNodes = true; /* DEPENDENCY INJECTION */ private Keyring keyring; - private RepositoryRegister repositoryRegister; + private RepositoryRegister repositoryRegister = new DefaultRepositoryRegister(); private RepositoryFactory repositoryFactory; private Repository nodeRepository; @@ -103,8 +103,8 @@ public class JcrBrowserView extends ViewPart { throw new EclipseUiException("Cannot open user session", e); } - nodeContentProvider = new NodeContentProvider(userSession, keyring, - repositoryRegister, repositoryFactory, sortChildNodes); + nodeContentProvider = new NodeContentProvider(userSession, keyring, repositoryRegister, repositoryFactory, + sortChildNodes); // nodes viewer nodesViewer = createNodeViewer(top, nodeContentProvider); @@ -149,59 +149,47 @@ public class JcrBrowserView extends ViewPart { return new int[] { 70, 30 }; } - protected TreeViewer createNodeViewer(Composite parent, - final ITreeContentProvider nodeContentProvider) { + 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.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 SingleJcrNodeElem) - propertiesViewer - .setInput(((SingleJcrNodeElem) firstItem) - .getNode()); - } else { - propertiesViewer.setInput(getViewSite()); - } - } - }); + 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 SingleJcrNodeElem) + propertiesViewer.setInput(((SingleJcrNodeElem) firstItem).getNode()); + } else { + propertiesViewer.setInput(getViewSite()); + } + } + }); resultsObserver = new TreeObserver(tmpNodeViewer.getTree().getDisplay()); if (keyring != null) try { - ObservationManager observationManager = userSession - .getWorkspace().getObservationManager(); - observationManager.addEventListener(resultsObserver, - Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/", + ObservationManager observationManager = userSession.getWorkspace().getObservationManager(); + observationManager.addEventListener(resultsObserver, Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/", true, null, null, false); } catch (RepositoryException e) { throw new EclipseUiException("Cannot register listeners", e); } - tmpNodeViewer - .addDoubleClickListener(new JcrDClickListener( - tmpNodeViewer)); + tmpNodeViewer.addDoubleClickListener(new JcrDClickListener(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().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); propertiesViewer.getTable().setHeaderVisible(true); propertiesViewer.setContentProvider(new PropertiesContentProvider()); - TableViewerColumn col = new TableViewerColumn(propertiesViewer, - SWT.NONE); + TableViewerColumn col = new TableViewerColumn(propertiesViewer, SWT.NONE); col.getColumn().setText("Name"); col.getColumn().setWidth(200); col.setLabelProvider(new ColumnLabelProvider() { @@ -211,8 +199,7 @@ public class JcrBrowserView extends ViewPart { try { return ((Property) element).getName(); } catch (RepositoryException e) { - throw new EclipseUiException( - "Unexpected exception in label provider", e); + throw new EclipseUiException("Unexpected exception in label provider", e); } } }); @@ -240,8 +227,7 @@ public class JcrBrowserView extends ViewPart { } else return property.getValue().getString(); } catch (RepositoryException e) { - throw new EclipseUiException( - "Unexpected exception in label provider", e); + throw new EclipseUiException("Unexpected exception in label provider", e); } } }); @@ -252,13 +238,7 @@ public class JcrBrowserView extends ViewPart { private static final long serialVersionUID = -6009599998150286070L; public String getText(Object element) { - try { - return PropertyType.nameFromValue(((Property) element) - .getType()); - } catch (RepositoryException e) { - throw new EclipseUiException( - "Unexpected exception in label provider", e); - } + return JcrBrowserUtils.getPropertyTypeAsString((Property) element); } }); propertiesViewer.setInput(getViewSite()); @@ -280,11 +260,10 @@ public class JcrBrowserView extends ViewPart { * @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); + ((NodeContentProvider) nodesViewer.getContentProvider()).setSortChildren(sortChildNodes); nodesViewer.setInput(getViewSite()); } @@ -301,8 +280,7 @@ public class JcrBrowserView extends ViewPart { IStructuredSelection newSel = new StructuredSelection(parentNode); getNodeViewer().setSelection(newSel, true); // Force refresh - IStructuredSelection tmpSel = (IStructuredSelection) getNodeViewer() - .getSelection(); + IStructuredSelection tmpSel = (IStructuredSelection) getNodeViewer().getSelection(); getNodeViewer().refresh(tmpSel.getFirstElement()); } @@ -313,8 +291,7 @@ public class JcrBrowserView extends ViewPart { } @Override - protected Boolean willProcessInUiThread(List events) - throws RepositoryException { + protected Boolean willProcessInUiThread(List events) throws RepositoryException { for (Event event : events) { if (getLog().isTraceEnabled()) getLog().debug("Received event " + event); @@ -327,8 +304,7 @@ public class JcrBrowserView extends ViewPart { return false; } - protected void onEventInUiThread(List events) - throws RepositoryException { + protected void onEventInUiThread(List events) throws RepositoryException { if (getLog().isTraceEnabled()) getLog().trace("Refresh result list"); nodesViewer.refresh();