Mercurial > hg > extraction-interface
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 |