]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/TemplatesTreeContentProvider.java
work on a first draft of the AKB UI
[gpl/argeo-slc.git] / plugins / org.argeo.slc.akb.ui / src / main / java / org / argeo / slc / akb / ui / providers / TemplatesTreeContentProvider.java
index 6d57dce63db8463cdc007b22c11b89375d4c153f..33571446fe98114077edb06771382b490f6d6ef5 100644 (file)
  */
 package org.argeo.slc.akb.ui.providers;
 
-import org.argeo.eclipse.ui.TreeParent;
+import java.util.List;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+
+import org.argeo.jcr.JcrUtils;
+import org.argeo.slc.akb.AkbException;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
@@ -35,15 +41,29 @@ public class TemplatesTreeContentProvider implements ITreeContentProvider {
        }
 
        public Object getParent(Object child) {
-               return ((TreeParent) child).getParent();
+               try {
+                       return ((Node) child).getParent();
+               } catch (RepositoryException e) {
+                       throw new AkbException("Error while getting parent node", e);
+               }
        }
 
        public Object[] getChildren(Object parent) {
-               return ((TreeParent) parent).getChildren();
+               try {
+                       List<Node> nodes = JcrUtils.nodeIteratorToList(((Node) parent)
+                                       .getNodes());
+                       return nodes.toArray();
+               } catch (RepositoryException e) {
+                       throw new AkbException("Error while getting children nodes", e);
+               }
        }
 
        public boolean hasChildren(Object parent) {
-               return ((TreeParent) parent).hasChildren();
+               try {
+                       return ((Node) parent).hasNodes();
+               } catch (RepositoryException e) {
+                       throw new AkbException("Error while checking children nodes", e);
+               }
        }
 
        public void dispose() {