]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js
Play with context node and selection changes.
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / jcr / class / org / argeo / jcr / ria / views / JcrTreeFolder.js
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/JcrTreeFolder.js
new file mode 100644 (file)
index 0000000..96505f8
--- /dev/null
@@ -0,0 +1,43 @@
+qx.Class.define("org.argeo.jcr.ria.views.JcrTreeFolder", {\r
+       extend : org.argeo.ria.components.DynamicTreeFolder,\r
+       properties : {\r
+               jcrNode : {\r
+                       \r
+               }\r
+       },\r
+       construct : function(jcrNode){\r
+               this.base(arguments, jcrNode.getName(), org.argeo.jcr.ria.views.JcrTreeFolder.loader);\r
+               this.setJcrNode(jcrNode);\r
+       },\r
+       \r
+       statics : {\r
+               loader : function(treeFolder){\r
+                       if(treeFolder.getState() == "loaded") return;\r
+                       var jcrNode = treeFolder.getJcrNode();\r
+                       jcrNode.addListener("changeLoadState", function(event){\r
+                               if(event.getData() == "loaded"){\r
+                                       org.argeo.jcr.ria.views.JcrTreeFolder.jcrNodeToTreeFolder(jcrNode, treeFolder);\r
+                               }\r
+                       });\r
+                       if(jcrNode.getLoadState()=="loaded"){\r
+                               org.argeo.jcr.ria.views.JcrTreeFolder.jcrNodeToTreeFolder(jcrNode, treeFolder);\r
+                       }else if(jcrNode.getLoadState() == "empty"){\r
+                               //treeFolder.removeAll();\r
+                               jcrNode.load();\r
+                       }\r
+               },\r
+               \r
+               jcrNodeToTreeFolder : function(loadedNode, parentTreeFolder){\r
+                       var children = loadedNode.getChildren();\r
+                       for(var i=0;i<children.length;i++){\r
+                               var newFolder = new org.argeo.jcr.ria.views.JcrTreeFolder(children[i]);\r
+                               parentTreeFolder.add(newFolder);\r
+                       }\r
+                       parentTreeFolder.setState("loaded");\r
+               }               \r
+       },\r
+       members : {\r
+               openListener : function(e){\r
+               }               \r
+       }\r
+});
\ No newline at end of file