]> 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/ChildNodesPage.java
Deprecate TreeObject (not used anywhere anymore)
[lgpl/argeo-commons.git] / server / plugins / org.argeo.jcr.ui.explorer / src / main / java / org / argeo / jcr / ui / explorer / editors / ChildNodesPage.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.ui.explorer.JcrExplorerPlugin;
7 import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider;
8 import org.argeo.jcr.ui.explorer.providers.SingleNodeAsTreeContentProvider;
9 import org.argeo.jcr.ui.explorer.utils.GenericNodeDoubleClickListener;
10 import org.eclipse.jface.viewers.ITreeContentProvider;
11 import org.eclipse.jface.viewers.TreeViewer;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.layout.GridData;
14 import org.eclipse.swt.layout.GridLayout;
15 import org.eclipse.swt.widgets.Composite;
16 import org.eclipse.ui.forms.IManagedForm;
17 import org.eclipse.ui.forms.editor.FormEditor;
18 import org.eclipse.ui.forms.editor.FormPage;
19 import org.eclipse.ui.forms.widgets.ScrolledForm;
20
21 /**
22 * List all childs of the current node and brings some browsing capabilities
23 * accross the repository
24 */
25 public class ChildNodesPage extends FormPage {
26 // private final static Log log = LogFactory.getLog(ChildNodesPage.class);
27
28 // business objects
29 private Node currentNode;
30
31 // this page UI components
32 private SingleNodeAsTreeContentProvider nodeContentProvider;
33 private TreeViewer nodesViewer;
34
35 public ChildNodesPage(FormEditor editor, String title, Node currentNode) {
36 super(editor, "ChildNodesPage", title);
37 this.currentNode = currentNode;
38 }
39
40 protected void createFormContent(IManagedForm managedForm) {
41 try {
42 ScrolledForm form = managedForm.getForm();
43 form.setText(JcrExplorerPlugin.getMessage("childNodesPageTitle"));
44 Composite body = form.getBody();
45 GridLayout twt = new GridLayout(1, false);
46 twt.marginWidth = twt.marginHeight = 5;
47 body.setLayout(twt);
48 if (!currentNode.hasNodes()) {
49 managedForm.getToolkit().createLabel(body,
50 JcrExplorerPlugin.getMessage("warningNoChildNode"));
51 } else {
52
53 nodeContentProvider = new SingleNodeAsTreeContentProvider();
54 nodesViewer = createNodeViewer(body, nodeContentProvider);
55 nodesViewer.setInput(currentNode);
56 }
57 } catch (Exception e) {
58 throw new ArgeoException(
59 "Unexpected error while creating child node page", e);
60 }
61 }
62
63 protected TreeViewer createNodeViewer(Composite parent,
64 final ITreeContentProvider nodeContentProvider) {
65
66 final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI);
67
68 tmpNodeViewer.getTree().setLayoutData(
69 new GridData(SWT.FILL, SWT.FILL, true, true));
70
71 tmpNodeViewer.setContentProvider(nodeContentProvider);
72 tmpNodeViewer.setLabelProvider(new NodeLabelProvider());
73 tmpNodeViewer
74 .addDoubleClickListener(new GenericNodeDoubleClickListener(
75 tmpNodeViewer));
76 return tmpNodeViewer;
77 }
78 }