]> 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
Add class Java doc
[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.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider;
8 import org.argeo.jcr.ui.explorer.browser.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 Composite body = form.getBody();
44 GridLayout twt = new GridLayout(1, false);
45 twt.marginWidth = twt.marginHeight = 0;
46 body.setLayout(twt);
47
48 nodeContentProvider = new SingleNodeAsTreeContentProvider();
49 nodesViewer = createNodeViewer(body, nodeContentProvider);
50 nodesViewer.setInput(currentNode);
51 } catch (Exception e) {
52 e.printStackTrace();
53 }
54 }
55
56 protected TreeViewer createNodeViewer(Composite parent,
57 final ITreeContentProvider nodeContentProvider) {
58
59 final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI);
60
61 tmpNodeViewer.getTree().setLayoutData(
62 new GridData(SWT.FILL, SWT.FILL, true, true));
63
64 tmpNodeViewer.setContentProvider(nodeContentProvider);
65 tmpNodeViewer.setLabelProvider(new NodeLabelProvider());
66 tmpNodeViewer
67 .addDoubleClickListener(new GenericNodeDoubleClickListener(
68 tmpNodeViewer));
69 return tmpNodeViewer;
70 }
71 }