]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/model/ParentNodeFolder.java
+ Fix some bugs on ResultTree Observer
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / model / ParentNodeFolder.java
index 91163c84248001308df6266cd6267bd2019b2330..a58068fa5f7c70d86fa08d0241d92ec0dfb748a8 100644 (file)
@@ -21,16 +21,24 @@ import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
 import org.argeo.slc.SlcException;
-import org.argeo.slc.jcr.SlcJcrResultUtils;
 import org.argeo.slc.jcr.SlcNames;
 import org.argeo.slc.jcr.SlcTypes;
 
 /**
- * UI Tree component that wrap a node of type NT_UNSTRUCTURED. list either
- * result folders, other folders and/or a list of results. keeps a reference to
- * its parent.
+ * UI Tree component that wrap a node of type NT_UNSTRUCTURED or base node for
+ * UI specific, user defined tree structure of type SLC_MY_RESULTS_ROOT_FOLDER.
+ * 
+ * It is used for
+ * <ul>
+ * <li>automatically generated tree structure to store results (typically
+ * Year/Month/Day...)</li>
+ * <li>parent node for user defined tree structure (typically My Results node)</li>
+ * </ul>
+ * It thus lists either result folders, other folders and/or a list of results
+ * and keeps a reference to its parent.
  */
 public class ParentNodeFolder extends ResultParent {
+       // private final static Log log = LogFactory.getLog(ParentNodeFolder.class);
 
        private Node node = null;
 
@@ -65,13 +73,17 @@ public class ParentNodeFolder extends ResultParent {
                                        ResultFolder rf = new ResultFolder(this, currNode,
                                                        currNode.getName());
                                        addChild(rf);
+                               } else if (currNode.isNodeType(SlcTypes.SLC_CHECK)) {
+                                       // FIXME : manually skip node types that are not to be
+                                       // displayed
+                                       // Do nothing
                                } else if (currNode.isNodeType(NodeType.NT_UNSTRUCTURED))
                                        addChild(new ParentNodeFolder(this, currNode,
                                                        currNode.getName()));
                        }
                } catch (RepositoryException re) {
                        throw new SlcException(
-                                       "Unexpected error while initializing simple node folder : "
+                                       "Unexpected error while initializing ParentNodeFolder : "
                                                        + getName(), re);
                }
        }
@@ -92,8 +104,7 @@ public class ParentNodeFolder extends ResultParent {
        public synchronized Object[] getChildren() {
                Object[] children = super.getChildren();
                try {
-                       if (node.getPath().equals(
-                                       SlcJcrResultUtils.getMyResultsBasePath(node.getSession())))
+                       if (node.isNodeType(SlcTypes.SLC_MY_RESULT_ROOT_FOLDER))
                                return ResultParentUtils.orderChildren(children);
                        else
                                return children;