]>
git.argeo.org Git - gpl/argeo-slc.git/blob - server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js
1 qx
.Class
.define("org.argeo.jcr.ria.provider.XmlNodeProvider", {
2 extend
: qx
.core
.Object
,
3 implement
: [org
.argeo
.jcr
.ria
.provider
.INodeProvider
],
15 event
: "changeXmlDocLoaded"
21 initProvider : function(properties
){
22 this.setSettings(properties
);
26 * @param node org.argeo.jcr.ria.model.Node
27 * @param nodeCallback Function
28 * @param childCallback Function
30 loadNode : function(node
, depth
, filter
){
31 if(node
.getLoadState() == "loaded") return;
33 if(this.getXmlDocLoaded()){
34 // Parse document and load
35 node
.setName(this._xmlDoc
.documentElement
.nodeName
);
36 var properties
= this.getSettings();
37 node
.fromDomElement(this._xmlDoc
.documentElement
);
38 node
.setLoadState("loaded");
39 if(properties
.dynamic
){
40 this.setXmlDocLoaded(false);
43 this.addListenerOnce("changeXmlDocLoaded", function(){
44 this.loadNode(node
, depth
, filter
);
46 node
.setLoadState("loading");
47 this.loadXmlDoc(node
, depth
, filter
);
51 loadXmlDoc : function(node
, depth
, filter
){
52 var properties
= this.getSettings();
53 if(!properties
.xmlSrc
&& !properties
.xmlString
) return;
54 if(properties
.xmlSrc
){
55 var request
= new org
.argeo
.ria
.remote
.Request(properties
.xmlSrc
, 'GET', 'application/xml');
56 if(properties
.dynamic
&& properties
.pathParameter
){
57 request
.setParameter(properties
.pathParameter
, (node
.getPath()|| "/"));
58 if(depth
&& depth
!= -1){
59 request
.setParameter("depth", depth
);
62 request
.addListener("completed", function(response
){
63 this._xmlDoc
= response
.getContent();
64 this.setXmlDocLoaded(true);
68 this._xmlDoc
= qx
.xml
.Document
.fromString(properties
.xmlString
);
69 this.setXmlDocLoaded(true);