1 package org
.argeo
.jcr
.ui
.explorer
.editors
;
5 import org
.apache
.commons
.logging
.Log
;
6 import org
.apache
.commons
.logging
.LogFactory
;
7 import org
.argeo
.ArgeoException
;
8 import org
.argeo
.jcr
.ui
.explorer
.JcrExplorerPlugin
;
9 import org
.argeo
.jcr
.ui
.explorer
.browser
.NodeLabelProvider
;
10 import org
.argeo
.jcr
.ui
.explorer
.providers
.SingleNodeAsTreeContentProvider
;
11 import org
.argeo
.jcr
.ui
.explorer
.utils
.GenericNodeDoubleClickListener
;
12 import org
.eclipse
.jface
.viewers
.ITreeContentProvider
;
13 import org
.eclipse
.jface
.viewers
.TreeViewer
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.layout
.GridData
;
16 import org
.eclipse
.swt
.layout
.GridLayout
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.eclipse
.ui
.forms
.IManagedForm
;
19 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
20 import org
.eclipse
.ui
.forms
.editor
.FormPage
;
21 import org
.eclipse
.ui
.forms
.widgets
.ScrolledForm
;
24 * List all childs of the current node and brings some browsing capabilities
25 * accross the repository
27 public class ChildNodesPage
extends FormPage
{
28 private final static Log log
= LogFactory
.getLog(ChildNodesPage
.class);
31 private Node currentNode
;
33 // this page UI components
34 private SingleNodeAsTreeContentProvider nodeContentProvider
;
35 private TreeViewer nodesViewer
;
37 public ChildNodesPage(FormEditor editor
, String title
, Node currentNode
) {
38 super(editor
, "ChildNodesPage", title
);
39 this.currentNode
= currentNode
;
42 protected void createFormContent(IManagedForm managedForm
) {
44 ScrolledForm form
= managedForm
.getForm();
45 Composite body
= form
.getBody();
46 GridLayout twt
= new GridLayout(1, false);
47 twt
.marginWidth
= twt
.marginHeight
= 0;
49 if (!currentNode
.hasNodes()) {
50 managedForm
.getToolkit().createLabel(body
,
51 JcrExplorerPlugin
.getMessage("warningNoChildNode"));
54 nodeContentProvider
= new SingleNodeAsTreeContentProvider();
55 nodesViewer
= createNodeViewer(body
, nodeContentProvider
);
56 nodesViewer
.setInput(currentNode
);
58 } catch (Exception e
) {
59 throw new ArgeoException(
60 "Unexpected error while creating child node page", e
);
64 protected TreeViewer
createNodeViewer(Composite parent
,
65 final ITreeContentProvider nodeContentProvider
) {
67 final TreeViewer tmpNodeViewer
= new TreeViewer(parent
, SWT
.MULTI
);
69 tmpNodeViewer
.getTree().setLayoutData(
70 new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
72 tmpNodeViewer
.setContentProvider(nodeContentProvider
);
73 tmpNodeViewer
.setLabelProvider(new NodeLabelProvider());
75 .addDoubleClickListener(new GenericNodeDoubleClickListener(