]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js
New layout, new views...
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / jcr / class / org / argeo / jcr / ria / provider / XmlNodeProvider.js
index a7f7d1b31cd771b9e81e2d33cdab693aa3b6f402..19990d04ff51589e696de67631fbba1e145630ad 100644 (file)
@@ -27,28 +27,38 @@ qx.Class.define("org.argeo.jcr.ria.provider.XmlNodeProvider", {
                 * @param nodeCallback Function\r
                 * @param childCallback Function\r
                 */\r
-               loadNode : function(node, nodeCallback, childCallback){\r
+               loadNode : function(node, depth, filter){\r
                        if(node.getLoadState() == "loaded") return;\r
                        \r
                        if(this.getXmlDocLoaded()){\r
                                // Parse document and load\r
                                node.setName(this._xmlDoc.documentElement.nodeName);\r
+                               var properties = this.getSettings();                                    \r
                                node.fromDomElement(this._xmlDoc.documentElement);\r
                                node.setLoadState("loaded");\r
+                               if(properties.dynamic){\r
+                                       this.setXmlDocLoaded(false);\r
+                               }\r
                        }else{\r
                                this.addListenerOnce("changeXmlDocLoaded", function(){\r
-                                       this.loadNode(node, nodeCallback, childCallback);\r
+                                       this.loadNode(node, depth, filter);\r
                                }, this);\r
                                node.setLoadState("loading");\r
-                               this.loadXmlDoc();\r
+                               this.loadXmlDoc(node, depth, filter);\r
                        }\r
                },\r
                                \r
-               loadXmlDoc : function(){\r
+               loadXmlDoc : function(node, depth, filter){\r
                        var properties = this.getSettings();\r
                        if(!properties.xmlSrc && !properties.xmlString) return;\r
                        if(properties.xmlSrc){\r
                                var request = new org.argeo.ria.remote.Request(properties.xmlSrc, 'GET', 'application/xml');\r
+                               if(properties.dynamic && properties.pathParameter){\r
+                                       request.setParameter(properties.pathParameter, (node.getPath()|| "/"));\r
+                                       if(depth && depth != -1){\r
+                                               request.setParameter("depth", depth);\r
+                                       }\r
+                               }\r
                                request.addListener("completed", function(response){\r
                                        this._xmlDoc = response.getContent();\r
                                        this.setXmlDocLoaded(true);\r