From: Bruno Sinou Date: Thu, 3 Mar 2016 17:08:41 +0000 (+0000) Subject: Reactivate experimental page to edit String properties. X-Git-Tag: argeo-commons-2.1.34~5 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=7b4196e7a114e1e9c98e3d1fcae6adeec65f621a;p=lgpl%2Fargeo-commons.git Reactivate experimental page to edit String properties. git-svn-id: https://svn.argeo.org/commons/trunk@8822 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java index 2b19a95d0..cc7352b6f 100644 --- a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java +++ b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java @@ -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)); diff --git a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java index 2b60048dc..89c812d17 100644 --- a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java +++ b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java @@ -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(); + 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); diff --git a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/messages.properties b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/messages.properties index 2eb9a012d..9994a5a1e 100644 --- a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/messages.properties +++ b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/messages.properties @@ -19,6 +19,7 @@ genericNodePageTitle=Properties childNodesPageTitle=Children nodeRightsManagementPageTitle=Effective privileges nodeVersionHistoryPageTitle=History +propertyEditorPageTitle=Properties Editor (Experimental) # History versionTreeSectionTitle=Version list