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;
// 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(
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));
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;
private Node currentNode;
+ private GenericNodePage genericNodePage;
private GenericPropertyPage genericPropertyPage;
private ChildNodesPage childNodesPage;
private NodePrivilegesPage nodeRightsManagementPage;
@Override
protected void addPages() {
try {
- // genericNodePage = new GenericNodePage(this,
- // JcrExplorerPlugin.getMessage("genericNodePageTitle"),
- // currentNode);
- // addPage(genericNodePage);
-
genericPropertyPage = new GenericPropertyPage(this,
WorkbenchUiPlugin.getMessage("genericNodePageTitle"),
currentNode);
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);