X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fmodel%2FVirtualFolder.java;h=1218060ebebf42ee5e66265a81fa43bea41de35d;hb=018795e1c7fb82445c43dcb28fdc515e8cb624ac;hp=c69e562d9e33ae9630e4a7d6676c372b871b8c4d;hpb=e8997305e4d5fe939e2e4ec55195afdc0d488bbc;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/VirtualFolder.java b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/VirtualFolder.java index c69e562d9..1218060eb 100644 --- a/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/VirtualFolder.java +++ b/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/VirtualFolder.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,84 +15,45 @@ */ package org.argeo.slc.client.ui.model; +import java.util.List; + import javax.jcr.Node; -import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; -import org.argeo.ArgeoException; +import org.argeo.slc.SlcException; 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 . + * UI Tree component. Virtual folder to list a list of results. Keeps a + * reference to its parent that might be null. It also keeps a reference to all + * nodes that must be displayed as children of the current virtual folder. */ public class VirtualFolder extends ResultParent { + List displayedNodes; - private Node node = null; - private boolean isPassed = true; - - public VirtualFolder(VirtualFolder parent, Node node, String name) { + public VirtualFolder(VirtualFolder parent, List displayedNodes, + String name) { super(name); setParent(parent); - this.node = node; - } - - @Override - public synchronized void dispose() { - super.dispose(); + this.displayedNodes = displayedNodes; } - /** 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())); - } + protected void initialize() { + try { + for (Node currNode : displayedNodes) { + if (currNode.isNodeType(SlcTypes.SLC_TEST_RESULT)) { + SingleResultNode srn = new SingleResultNode(this, currNode, + currNode.getProperty(SlcNames.SLC_TEST_CASE) + .getString()); + addChild(srn); } - return super.getChildren(); - } catch (RepositoryException e) { - throw new ArgeoException( - "Cannot initialize WorkspaceNode UI object." - + getName(), e); } + } catch (RepositoryException re) { + throw new SlcException( + "Unexpected error while initializing ParentNodeFolder : " + + getName(), re); } } - - // @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 - } - } \ No newline at end of file