]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java
Split CMS and CMS UI
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.workbench / src / org / argeo / eclipse / ui / workbench / jcr / DefaultNodeEditor.java
index 2b60048dc72ff323fc1a7dff885f7a093d25d701..e103bf61f5975751c47adc91d2daa27b582c005d 100644 (file)
@@ -24,10 +24,11 @@ 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.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;
@@ -48,6 +49,7 @@ public class DefaultNodeEditor extends FormEditor {
 
        private Node currentNode;
 
+       private GenericNodePage genericNodePage;
        private GenericPropertyPage genericPropertyPage;
        private ChildNodesPage childNodesPage;
        private NodePrivilegesPage nodeRightsManagementPage;
@@ -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);
@@ -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);
                }
 
        }