]>
git.argeo.org Git - gpl/argeo-slc.git/blob - server/org.argeo.slc.ria/src/argeo-ria-src/class/org/argeo/ria/event/UIBus.js
2 * A generic channel for posting reload events.
4 qx
.Class
.define("org.argeo.ria.event.UIBus",
7 extend
: qx
.core
.Object
,
17 construct : function(){
19 this.setListeners({});
20 this.setNotifiers([]);
23 addListener : function(eventType
, listenerFunction
, contextObject
){
24 var notifiers
= this.getNotifiers();
25 for(var i
=0;i
<notifiers
.length
;i
++){
26 notifiers
[i
].addListener(eventType
);
28 var typeListeners
= this.getListeners()[eventType
];
30 typeListeners
= new Array();
31 this.getListeners()[eventType
] = typeListeners
;
33 var func
= listenerFunction
;
35 func
= qx
.lang
.Function
.bind(listenerFunction
, contextObject
);
37 typeListeners
.push(func
);
39 removeListener : function(eventType
, listenerFunction
, contextObject
){
40 var notifiers
= this.getNotifiers();
41 for(var i
=0;i
<notifiers
.length
;i
++){
42 notifiers
[i
].removeListener(eventType
);
44 var typeListeners
= this.getListeners()[eventType
];
45 if(!typeListeners
) return;
46 var func
= listenerFunction
;
48 func
= qx
.lang
.Function
.bind(listenerFunction
, contextObject
);
50 for(var i
=0;i
<typeListeners
.length
;i
++){
51 if(typeListeners
[i
] == func
){
52 delete(typeListeners
[i
]);
57 dispatchEvent : function(eventType
, eventData
){
58 var listeners
= this.getListeners()[eventType
];
59 if(listeners
&& listeners
.length
){
60 for(var i
=0;i
<listeners
.length
;i
++){
61 listeners
[i
](eventData
);
65 registerNotifier : function(notifier
){
66 this.getNotifiers().push(notifier
);