]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/VirtualFolder.java
Make execution editor more robust
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / model / VirtualFolder.java
index c69e562d9e33ae9630e4a7d6676c372b871b8c4d..5a6bc77ceb3022454a03ccf69ab669dbb377e228 100644 (file)
  */
 package org.argeo.slc.client.ui.model;
 
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-
-import org.argeo.ArgeoException;
-import org.argeo.slc.jcr.SlcNames;
-import org.argeo.slc.jcr.SlcTypes;
-
 /**
  * UI Tree component. Virtual folder to list either other folders and/or a list
  * of results. Keeps a reference to its parent that might be null if the .
  */
 public class VirtualFolder extends ResultParent {
+       ResultParent[] children;
 
-       private Node node = null;
-       private boolean isPassed = true;
-
-       public VirtualFolder(VirtualFolder parent, Node node, String name) {
+       public VirtualFolder(VirtualFolder parent, ResultParent[] children,
+                       String name) {
                super(name);
                setParent(parent);
-               this.node = node;
+               this.children = children;
        }
 
        @Override
@@ -43,56 +34,16 @@ public class VirtualFolder extends ResultParent {
                super.dispose();
        }
 
-       /** Override normal behavior to initialize display */
-       @Override
-       public synchronized Object[] getChildren() {
-               if (isLoaded()) {
-                       return super.getChildren();
-               } else {
-                       // initialize current object
-                       try {
-                               if (node != null) {
-                                       NodeIterator ni = node.getNodes();
-                                       while (ni.hasNext()) {
-                                               Node currNode = ni.nextNode();
-                                               if (currNode.isNodeType(SlcTypes.SLC_TEST_RESULT))
-                                                       addChild(new SingleResultNode(this, node, node
-                                                                       .getProperty(SlcNames.SLC_TEST_CASE)
-                                                                       .getString()));
-                                               else if (currNode
-                                                               .isNodeType(SlcTypes.SLC_RESULT_FOLDER))
-                                                       addChild(new VirtualFolder(this, node,
-                                                                       node.getName()));
-                                       }
-                               }
-                               return super.getChildren();
-                       } catch (RepositoryException e) {
-                               throw new ArgeoException(
-                                               "Cannot initialize WorkspaceNode UI object."
-                                                               + getName(), e);
-                       }
-               }
-       }
-
-       // @Override
-       // public boolean refreshPassedStatus() {
-       // Object[] children = getChildren();
-       // isPassed = true;
-       // checkChildrenStatus: for (int i = 0; i <= children.length; i++) {
-       // if (children[i] instanceof VirtualFolder) {
-       //
-       // }
-       // if (!((ResultParent) children[i]).isPassed()) {
-       // isPassed = false;
-       // break checkChildrenStatus;
-       // }
-       // }
-       // return isPassed;
-       // }
-
        @Override
        protected void initialize() {
-               // TODO Auto-generated method stub
+               if (children != null)
+                       for (ResultParent child : children)
+                               addChild(child);
        }
 
+       public void resetChildren(ResultParent[] children) {
+               clearChildren();
+               this.children = children;
+               initialize();
+       }
 }
\ No newline at end of file