]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java
Improve workbench layer
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.workbench / src / org / argeo / eclipse / ui / workbench / jcr / DefaultNodeEditor.java
index 93d4c62656461c866a44fa2802c9f883ee06bb2d..e103bf61f5975751c47adc91d2daa27b582c005d 100644 (file)
@@ -24,13 +24,14 @@ import javax.jcr.nodetype.NodeType;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.ChildNodesPage;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.GenericNodeEditorInput;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.GenericPropertyPage;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.NodeRightsManagementPage;
-import org.argeo.eclipse.ui.workbench.jcr.internal.parts.NodeVersionHistoryPage;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.ChildNodesPage;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.GenericNodeEditorInput;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.GenericNodePage;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.GenericPropertyPage;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.NodePrivilegesPage;
+import org.argeo.eclipse.ui.workbench.internal.jcr.parts.NodeVersionHistoryPage;
 import org.argeo.jcr.JcrUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IEditorInput;
@@ -48,9 +49,10 @@ public class DefaultNodeEditor extends FormEditor {
 
        private Node currentNode;
 
+       private GenericNodePage genericNodePage;
        private GenericPropertyPage genericPropertyPage;
        private ChildNodesPage childNodesPage;
-       private NodeRightsManagementPage nodeRightsManagementPage;
+       private NodePrivilegesPage nodeRightsManagementPage;
        private NodeVersionHistoryPage nodeVersionHistoryPage;
 
        public void init(IEditorSite site, IEditorInput input)
@@ -64,11 +66,6 @@ public class DefaultNodeEditor extends FormEditor {
        @Override
        protected void addPages() {
                try {
-                       // genericNodePage = new GenericNodePage(this,
-                       // JcrExplorerPlugin.getMessage("genericNodePageTitle"),
-                       // currentNode);
-                       // addPage(genericNodePage);
-
                        genericPropertyPage = new GenericPropertyPage(this,
                                        WorkbenchUiPlugin.getMessage("genericNodePageTitle"),
                                        currentNode);
@@ -86,7 +83,7 @@ public class DefaultNodeEditor extends FormEditor {
                                        .privilegeFromName(Privilege.JCR_READ_ACCESS_CONTROL));
                        if (accessControlManager.hasPrivileges(currentNode.getPath(),
                                        privileges.toArray(new Privilege[0]))) {
-                               nodeRightsManagementPage = new NodeRightsManagementPage(this,
+                               nodeRightsManagementPage = new NodePrivilegesPage(this,
                                                WorkbenchUiPlugin
                                                                .getMessage("nodeRightsManagementPageTitle"),
                                                currentNode);
@@ -100,11 +97,22 @@ public class DefaultNodeEditor extends FormEditor {
                                addPage(nodeVersionHistoryPage);
                        }
 
+                       privileges = new ArrayList<Privilege>();
+                       privileges.add(accessControlManager
+                                       .privilegeFromName(Privilege.JCR_ALL));
+                       if (accessControlManager.hasPrivileges(currentNode.getPath(),
+                                       privileges.toArray(new Privilege[0]))) {
+                               genericNodePage = new GenericNodePage(this,
+                                               WorkbenchUiPlugin.getMessage("propertyEditorPageTitle"),
+                                               currentNode);
+                               addPage(genericNodePage);
+                       }
+
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get node info for " + currentNode,
+                       throw new EclipseUiException("Cannot get node info for " + currentNode,
                                        e);
                } catch (PartInitException e) {
-                       throw new ArgeoException("Cannot add page " + "on node editor for "
+                       throw new EclipseUiException("Cannot add page " + "on node editor for "
                                        + currentNode, e);
                }
        }
@@ -121,7 +129,7 @@ public class DefaultNodeEditor extends FormEditor {
                        commitPages(true);
                        firePropertyChange(PROP_DIRTY);
                } catch (Exception e) {
-                       throw new ArgeoException("Error while saving node", e);
+                       throw new EclipseUiException("Error while saving node", e);
                }
 
        }