]>
git.argeo.org Git - gpl/argeo-slc.git/blob - server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/model/DataModel.js
1 qx
.Class
.define("org.argeo.jcr.ria.model.DataModel", {
2 extend
: qx
.core
.Object
,
5 "changeContextNode" : "qx.event.type.Data"
10 check
: "org.argeo.jcr.ria.model.Node",
11 event
: "changeRootNode"
14 check
: "org.argeo.jcr.ria.model.Node"
18 event
: "changeSelection",
28 construct : function(rootNode
){
30 this.setRootNode(rootNode
);
34 requireContextChange : function(path
){
36 var rootNode
= this.getRootNode();
37 this.setSelection([]);
39 targetNode
= rootNode
;
42 if(path
[path
.length
-1] == '/'){
43 path
= path
.substring(0, path
.length
-1);
45 var base
= path
.substring(path
.lastIndexOf("/")+1);
46 targetNode
= new org
.argeo
.jcr
.ria
.model
.Node(base
, rootNode
.getNodeProvider());
47 rootNode
.addChild(targetNode
);
48 targetNode
.setPath(path
);
50 var observer = function(event
){
51 var state
= event
.getData();
52 if(state
== "loading"){
53 targetNode
.loadingNode
= new org
.argeo
.jcr
.ria
.model
.Node("loading");
54 targetNode
.addChild(targetNode
.loadingNode
);
55 }else if(state
== "loaded"){
56 if(targetNode
.loadingNode
) {
57 targetNode
.loadingNode
.remove();
58 targetNode
.loadingNode
= null;
60 targetNode
.removeListener("changeLoadState", observer
, this);
62 this.setContextNode(targetNode
);
63 this.fireDataEvent("changeContextNode", targetNode
);
65 targetNode
.addListener("changeLoadState", observer
, this);
68 setSelectionWithSource : function(selection
, source
){
69 this.setSelectionSource(source
);
70 this.setSelection(selection
);