Reactivate experimental page to edit String properties.
authorBruno Sinou <bsinou@argeo.org>
Thu, 3 Mar 2016 17:08:41 +0000 (17:08 +0000)
committerBruno Sinou <bsinou@argeo.org>
Thu, 3 Mar 2016 17:08:41 +0000 (17:08 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8822 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/messages.properties

index 2b19a95d00fa3a3d5fd77295c77ab04a6675d0eb..cc7352b6f342d0f4695f49346510addb1669a565 100644 (file)
@@ -31,6 +31,7 @@ import javax.jcr.RepositoryException;
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
 import org.argeo.jcr.JcrUtils;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.layout.GridData;
@@ -106,6 +107,8 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
                                                        // thus it is still possible to save after a tab
                                                        // change.
                                                        super.commit(onSave);
+                                                       if (currentNode.getSession().hasPendingChanges())
+                                                               currentNode.getSession().save();
                                                }
                                        } catch (RepositoryException re) {
                                                throw new ArgeoException(
@@ -169,8 +172,9 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
                        AbstractFormPart part, Property prop) {
                GridData gd;
                try {
-                       if (prop.getType() == PropertyType.STRING) {
-                               Text txt = tk.createText(parent, prop.getString());
+                       if (prop.getType() == PropertyType.STRING && !prop.isMultiple()) {
+                               Text txt = tk.createText(parent, prop.getString(), SWT.WRAP
+                                               | SWT.MULTI);
                                gd = new GridData(GridData.FILL_HORIZONTAL);
                                txt.setLayoutData(gd);
                                txt.addModifyListener(new ModifiedFieldListener(part));
index 2b60048dc72ff323fc1a7dff885f7a093d25d701..89c812d17f963e4ed42b412c466ecb83ec0ac383 100644 (file)
@@ -28,6 +28,7 @@ import org.argeo.ArgeoException;
 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,6 +97,17 @@ 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,
                                        e);
index 2eb9a012dff31898ed48503c5401402de62c7f86..9994a5a1e5098c41972caf13d913fbc905d3c07f 100644 (file)
@@ -19,6 +19,7 @@ genericNodePageTitle=Properties
 childNodesPageTitle=Children
 nodeRightsManagementPageTitle=Effective privileges
 nodeVersionHistoryPageTitle=History
+propertyEditorPageTitle=Properties Editor (Experimental)
 
 # History 
 versionTreeSectionTitle=Version list