]>
git.argeo.org Git - gpl/argeo-suite.git/blob - ContentEntryArea.java
4c8b041c949a1f558b435a843e19fe737a4b4961
1 package org
.argeo
.library
.ui
;
3 import java
.util
.SortedMap
;
4 import java
.util
.TreeMap
;
7 import javax
.jcr
.NodeIterator
;
8 import javax
.jcr
.RepositoryException
;
9 import javax
.jcr
.Session
;
10 import javax
.jcr
.nodetype
.NodeType
;
11 import javax
.jcr
.query
.Query
;
13 import org
.argeo
.cms
.ui
.CmsUiProvider
;
14 import org
.argeo
.cms
.ui
.util
.CmsUiUtils
;
15 import org
.argeo
.entity
.EntityType
;
16 import org
.argeo
.jcr
.Jcr
;
17 import org
.argeo
.jcr
.JcrException
;
18 import org
.argeo
.suite
.ui
.widgets
.TreeOrSearchArea
;
19 import org
.eclipse
.jface
.viewers
.ITreeContentProvider
;
20 import org
.eclipse
.jface
.viewers
.Viewer
;
21 import org
.eclipse
.swt
.SWT
;
22 import org
.eclipse
.swt
.layout
.GridLayout
;
23 import org
.eclipse
.swt
.widgets
.Composite
;
24 import org
.eclipse
.swt
.widgets
.Control
;
25 import org
.eclipse
.swt
.widgets
.Label
;
27 public class ContentEntryArea
implements CmsUiProvider
{
30 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
31 parent
.setLayout(new GridLayout());
32 Ui ui
= new Ui(parent
, SWT
.NONE
);
33 ui
.setLayoutData(CmsUiUtils
.fillAll());
35 ui
.getTreeViewer().setContentProvider(new SpacesContentProvider());
36 ui
.getTreeViewer().setInput(context
.getSession());
40 protected boolean isLeaf(Node node
) {
41 return Jcr
.isNodeType(node
, EntityType
.entity
.get()) || Jcr
.isNodeType(node
, NodeType
.NT_FILE
);
44 class Ui
extends TreeOrSearchArea
{
46 public Ui(Composite parent
, int style
) {
52 class SpacesContentProvider
implements ITreeContentProvider
{
55 public Object
[] getElements(Object inputElement
) {
56 Session session
= (Session
) inputElement
;
58 Query query
= session
.getWorkspace().getQueryManager()
59 .createQuery("SELECT * FROM [" + EntityType
.space
.get() + "]", Query
.JCR_SQL2
);
60 NodeIterator spacesIt
= query
.execute().getNodes();
61 SortedMap
<String
, Node
> map
= new TreeMap
<>();
62 while (spacesIt
.hasNext()) {
63 Node space
= spacesIt
.nextNode();
64 String path
= space
.getPath();
67 return map
.values().toArray();
68 } catch (RepositoryException e
) {
69 throw new JcrException(e
);
74 public Object
[] getChildren(Object parentElement
) {
75 Node parent
= (Node
) parentElement
;
78 return Jcr
.getNodes(parent
).toArray();
82 public Object
getParent(Object element
) {
83 Node node
= (Node
) element
;
84 return Jcr
.getParent(node
);
88 public boolean hasChildren(Object element
) {
89 Node node
= (Node
) element
;
94 public void dispose() {
98 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {