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