]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/ria/remote/RequestManager.js
1 qx
.Class
.define("org.argeo.ria.remote.RequestManager",
4 extend
: qx
.core
.Object
,
7 "reload" : "org.argeo.ria.event.ReloadEvent"
10 construct : function(){
16 setStopCommand : function(stopCommand
){
17 this.command
= stopCommand
;
20 getRequest : function(url
, method
, responseType
, fireReloadEventType
, iLoadStatusables
){
21 var request
= new qx
.io
.remote
.Request(url
, method
, responseType
);
23 request
.setUserData("iLoadStatusables", iLoadStatusables
);
25 if(fireReloadEventType
){
26 request
.addListener("completed", function(response
){
27 this.fireReloadEvent(fireReloadEventType
, response
.getContent());
30 this.enableCommand(request
);
31 request
.addListener("timeout", this.requestTerminated
, this);
32 request
.addListener("failed", this.requestTerminated
, this);
33 request
.addListener("aborted", this.requestTerminated
, this);
34 request
.addListener("completed", this.requestCompleted
, this);
38 fireReloadEvent : function(dataType
, content
){
39 this.fireEvent("reload", org
.argeo
.ria
.event
.ReloadEvent
, [dataType
, content
]);
42 requestCreated : function(e
){
43 var request
= e
.getTarget();
44 this.enableCommand(request
);
47 requestCompleted : function(e
){
48 var request
= e
.getTarget();
49 this.disableCommand(request
);
52 requestTerminated : function(e
){
53 var request
= e
.getTarget();
54 var errorType
= e
.getType();
55 this.disableCommand(request
);
57 if(errorType
== "aborted"){
58 message
= "Request aborted by user";
59 }else if(errorType
== "failed"){
60 message
= "Request failed!";
61 }else if(errorType
== "timeout"){
62 message
= "Request timed out!";
67 disableCommand : function(request
){
68 this.command
.setEnabled(false);
69 if(request
.getUserData("iLoadStatusables")){
70 this.updateGuiParts(request
.getUserData("iLoadStatusables"), false);
72 var listener
= request
.getUserData("listener");
74 this.command
.removeListener("execute", listener
);
78 enableCommand : function(request
){
79 this.command
.setEnabled(true);
80 if(request
.getUserData("iLoadStatusables")){
81 this.updateGuiParts(request
.getUserData("iLoadStatusables"), true);
83 qx
.ui
.core
.queue
.Manager
.flush();
84 var listener
= request
.abort
;
85 request
.setUserData("listener", listener
);
86 this.command
.addListener("execute", listener
, request
);
89 updateGuiParts : function(iLoadStatusables
, loadStatus
){
90 for(var i
=0;i
<iLoadStatusables
.length
;i
++){
91 if(qx
.Class
.implementsInterface(qx
.Class
.getByName(iLoadStatusables
[i
].classname
), org
.argeo
.ria
.components
.ILoadStatusable
)){
92 iLoadStatusables
[i
].setOnLoad(loadStatus
);
94 this.debug("Does not implement the ILoadStatusable interface! GUIPART type : "+ iLoadStatusables
[i
].classname
);