]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveEnvsTreeContentProvider.java
Edit connector wizard
[gpl/argeo-slc.git] / plugins / org.argeo.slc.akb.ui / src / main / java / org / argeo / slc / akb / ui / providers / ActiveEnvsTreeContentProvider.java
index ecb5c2d58849254e288fff278f109ef0f64b2f7a..d15d510d2bea5c3f8fe5effe8615b9c1efcf7456 100644 (file)
@@ -40,16 +40,35 @@ public class ActiveEnvsTreeContentProvider implements ITreeContentProvider {
 
        /**
         * @param parent
-        *            Pass current user home as parameter
+        *            Pass base parent node as parameter
         * 
         */
        public Object[] getElements(Object parent) {
-               if (parent instanceof Object[])
-                       return (Object[]) parent;
+               if (parent instanceof Node)
+                       return initializeTree((Node) parent);
                else
                        return null;
        }
 
+       private ActiveTreeItem[] initializeTree(Node activeEnvsParentNode) {
+               try {
+                       NodeIterator ni = activeEnvsParentNode.getNodes();
+                       List<ActiveTreeItem> envs = new ArrayList<ActiveTreeItem>();
+                       while (ni.hasNext()) {
+                               Node currNode = ni.nextNode();
+                               if (currNode.isNodeType(AkbTypes.AKB_ENV)) {
+                                       envs.add(new ActiveTreeItem(null, currNode, currNode));
+                               }
+                       }
+                       ActiveTreeItem[] envArr = envs.toArray(new ActiveTreeItem[envs
+                                       .size()]);
+                       return envArr;
+               } catch (RepositoryException re) {
+                       throw new AkbException("Error while initializing the "
+                                       + "tree of active environments.", re);
+               }
+       }
+
        public Object getParent(Object child) {
                return ((ActiveTreeItem) child).getParent();
        }