]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/GenericNodeEditor.java
812dfef490a0f4705c11c240706e9961a0d6bbaa
[lgpl/argeo-commons.git] / server / plugins / org.argeo.jcr.ui.explorer / src / main / java / org / argeo / jcr / ui / explorer / editors / GenericNodeEditor.java
1 package org.argeo.jcr.ui.explorer.editors;
2
3 import javax.jcr.Node;
4
5 import org.argeo.ArgeoException;
6 import org.argeo.jcr.JcrUtils;
7 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
8 import org.eclipse.core.runtime.IProgressMonitor;
9 import org.eclipse.ui.IEditorInput;
10 import org.eclipse.ui.IEditorSite;
11 import org.eclipse.ui.PartInitException;
12 import org.eclipse.ui.forms.editor.FormEditor;
13
14 /**
15 * Container for the node editor page. At creation time, it takes a JCR Node
16 * that cannot be changed afterwards.
17 */
18 public class GenericNodeEditor extends FormEditor {
19
20 // private final static Log log =
21 // LogFactory.getLog(GenericNodeEditor.class);
22 public final static String ID = JcrExplorerPlugin.ID + ".genericNodeEditor";
23
24 private Node currentNode;
25
26 private GenericPropertyPage genericPropertyPage;
27 private ChildNodesPage childNodesPage;
28 private NodeRightsManagementPage nodeRightsManagementPage;
29 private NodeVersionHistoryPage nodeVersionHistoryPage;
30
31 public void init(IEditorSite site, IEditorInput input)
32 throws PartInitException {
33 super.init(site, input);
34 GenericNodeEditorInput nei = (GenericNodeEditorInput) getEditorInput();
35 currentNode = nei.getCurrentNode();
36 this.setPartName(JcrUtils.lastPathElement(nei.getPath()));
37 }
38
39 @Override
40 protected void addPages() {
41 try {
42 // genericNodePage = new GenericNodePage(this,
43 // JcrExplorerPlugin.getMessage("genericNodePageTitle"),
44 // currentNode);
45 // addPage(genericNodePage);
46
47 genericPropertyPage = new GenericPropertyPage(this,
48 JcrExplorerPlugin.getMessage("genericNodePageTitle"),
49 currentNode);
50 addPage(genericPropertyPage);
51
52 childNodesPage = new ChildNodesPage(this,
53 JcrExplorerPlugin.getMessage("childNodesPageTitle"),
54 currentNode);
55 addPage(childNodesPage);
56
57 nodeRightsManagementPage = new NodeRightsManagementPage(this,
58 JcrExplorerPlugin
59 .getMessage("nodeRightsManagementPageTitle"),
60 currentNode);
61 addPage(nodeRightsManagementPage);
62
63 nodeVersionHistoryPage = new NodeVersionHistoryPage(
64 this,
65 JcrExplorerPlugin.getMessage("nodeVersionHistoryPageTitle"),
66 currentNode);
67 addPage(nodeVersionHistoryPage);
68 } catch (PartInitException e) {
69 throw new ArgeoException("Not able to add an empty page ", e);
70 }
71 }
72
73 @Override
74 public void doSaveAs() {
75 // unused compulsory method
76 }
77
78 @Override
79 public void doSave(IProgressMonitor monitor) {
80 try {
81 // Automatically commit all pages of the editor
82 commitPages(true);
83 firePropertyChange(PROP_DIRTY);
84 } catch (Exception e) {
85 throw new ArgeoException("Error while saving node", e);
86 }
87
88 }
89
90 @Override
91 public boolean isSaveAsAllowed() {
92 return true;
93 }
94
95 Node getCurrentNode() {
96 return currentNode;
97 }
98 }