]> 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
Tweak nodes, provider and data model objects.
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / jcr / class / org / argeo / jcr / ria / provider / XmlNodeProvider.js
index a7f7d1b31cd771b9e81e2d33cdab693aa3b6f402..0f7057a37f9b4091e2cc6026bc1b3a7cda5d184c 100644 (file)
@@ -33,22 +33,39 @@ qx.Class.define("org.argeo.jcr.ria.provider.XmlNodeProvider", {
                        if(this.getXmlDocLoaded()){\r
                                // Parse document and load\r
                                node.setName(this._xmlDoc.documentElement.nodeName);\r
+                               var properties = this.getSettings();                            \r
+                               // STUB : prune sub children, load only level 1\r
+                               /*\r
+                               var children = this._xmlDoc.documentElement.childNodes;\r
+                               for(var i=0;i<children.length;i++){\r
+                                       var subchildren = children[i].childNodes;\r
+                                       for(var j=0;j<subchildren.length;j++){\r
+                                               children[i].removeChild(subchildren[j]);\r
+                                       }\r
+                               }\r
+                               */\r
+                               // END STUB\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);\r
                                node.setLoadState("loading");\r
-                               this.loadXmlDoc();\r
+                               this.loadXmlDoc(node);\r
                        }\r
                },\r
                                \r
-               loadXmlDoc : function(){\r
+               loadXmlDoc : function(node){\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
+                               }\r
                                request.addListener("completed", function(response){\r
                                        this._xmlDoc = response.getContent();\r
                                        this.setXmlDocLoaded(true);\r