comparison geotemco/lib/simile/ajax/scripts/ajax.js @ 0:b12c99b7c3f0

commit for previous development
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 19 Jan 2015 17:13:49 +0100
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:b12c99b7c3f0
1 /*==================================================
2 * General, miscellaneous SimileAjax stuff
3 *==================================================
4 */
5
6 SimileAjax.ListenerQueue = function(wildcardHandlerName) {
7 this._listeners = [];
8 this._wildcardHandlerName = wildcardHandlerName;
9 };
10
11 SimileAjax.ListenerQueue.prototype.add = function(listener) {
12 this._listeners.push(listener);
13 };
14
15 SimileAjax.ListenerQueue.prototype.remove = function(listener) {
16 var listeners = this._listeners;
17 for (var i = 0; i < listeners.length; i++) {
18 if (listeners[i] == listener) {
19 listeners.splice(i, 1);
20 break;
21 }
22 }
23 };
24
25 SimileAjax.ListenerQueue.prototype.fire = function(handlerName, args) {
26 var listeners = [].concat(this._listeners);
27 for (var i = 0; i < listeners.length; i++) {
28 var listener = listeners[i];
29 if (handlerName in listener) {
30 try {
31 listener[handlerName].apply(listener, args);
32 } catch (e) {
33 SimileAjax.Debug.exception("Error firing event of name " + handlerName, e);
34 }
35 } else if (this._wildcardHandlerName != null &&
36 this._wildcardHandlerName in listener) {
37 try {
38 listener[this._wildcardHandlerName].apply(listener, [ handlerName ]);
39 } catch (e) {
40 SimileAjax.Debug.exception("Error firing event of name " + handlerName + " to wildcard handler", e);
41 }
42 }
43 }
44 };
45