- ui.getTreeViewer().setContentProvider(new SpacesContentProvider());
- ui.getTreeViewer().setInput(context.getSession());
- return ui;
- }
-
- protected boolean isLeaf(Node node) {
- return Jcr.isNodeType(node, EntityType.entity.get()) || Jcr.isNodeType(node, EntityType.document.get())
- || Jcr.isNodeType(node, NodeType.NT_FILE);
- }
-
- class Ui extends TreeOrSearchArea {
-
- public Ui(Composite parent, int style) {
- super(parent, style);
- }
-
- }
-
- class SpacesContentProvider implements ITreeContentProvider {
-
- @Override
- public Object[] getElements(Object inputElement) {
- Session session = (Session) inputElement;
- try {
- Query query = session.getWorkspace().getQueryManager()
- .createQuery("SELECT * FROM [" + EntityType.space.get() + "]", Query.JCR_SQL2);
- NodeIterator spacesIt = query.execute().getNodes();
- SortedMap<String, Node> map = new TreeMap<>();
- while (spacesIt.hasNext()) {
- Node space = spacesIt.nextNode();
- String path = space.getPath();
- map.put(path, space);
- }
- return map.values().toArray();
- } catch (RepositoryException e) {
- throw new JcrException(e);
- }
- }
-
- @Override
- public Object[] getChildren(Object parentElement) {
- Node parent = (Node) parentElement;
- if (isLeaf(parent))
- return null;
- return Jcr.getNodes(parent).toArray();
- }
-
- @Override
- public Object getParent(Object element) {
- Node node = (Node) element;
- return Jcr.getParent(node);
- }
-
- @Override
- public boolean hasChildren(Object element) {
- Node node = (Node) element;
- return !isLeaf(node);
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }