extend Ext.util.Observable rather than reinventing
This commit is contained in:
parent
1be29dc319
commit
1f212b8a38
|
@ -18,66 +18,24 @@
|
||||||
* The Free Software Foundation, Inc.,
|
* The Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor
|
* 51 Franklin Street, Fifth Floor
|
||||||
* Boston, MA 02110-1301, USA.
|
* Boston, MA 02110-1301, USA.
|
||||||
**
|
*
|
||||||
* @class Deluge.Events
|
* @class Deluge.Events
|
||||||
* <p>Class for holding global events that occur within the UI.</p>
|
* <p>Class for holding global events that occur within the UI.</p>
|
||||||
* @singleton
|
* @singleton
|
||||||
*/
|
*/
|
||||||
Deluge.Events = {
|
|
||||||
|
|
||||||
// private
|
(function() {
|
||||||
__events: {},
|
Events = Ext.extend(Ext.util.Observable, {
|
||||||
|
constructor: function() {
|
||||||
|
Events.superclass.constructor.call(this);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
addListener: function(eventName, fn, scope, o) {
|
||||||
* Fires an event, calling any listening event handlers and passing the
|
this.addEvents(eventName);
|
||||||
* given arguments.
|
Events.superclass.addListener.call(this, eventName, fn, scope, o);
|
||||||
* @param {String} name The name of the event to call.
|
}
|
||||||
* @param eventArg1 (optional)
|
});
|
||||||
* @param eventArg2 (optional)...
|
Events.prototype.on = Events.prototype.addListener
|
||||||
*/
|
Events.prototype.fire = Events.prototype.fireEvent
|
||||||
fire: function() {
|
Deluge.Events = new Events();
|
||||||
var args = [];
|
})();
|
||||||
Ext.each(arguments, function(arg) {
|
|
||||||
args.push(arg);
|
|
||||||
});
|
|
||||||
|
|
||||||
var eventName = args.shift();
|
|
||||||
if (!this.__events[eventName]) return;
|
|
||||||
|
|
||||||
var eventArgs = arguments;
|
|
||||||
Ext.each(this.__events[eventName], function(cb) {
|
|
||||||
try {
|
|
||||||
cb.fn.apply(cb.scope || this, eventArgs);
|
|
||||||
} catch (e) {
|
|
||||||
alert(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attachs an event listener.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
on: function(eventName, fn, scope) {
|
|
||||||
var e = this.__events[eventName] || new Array();
|
|
||||||
e.push({
|
|
||||||
'fn': fn,
|
|
||||||
'scope': scope
|
|
||||||
});
|
|
||||||
this.__events[eventName] = e;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes an event listener.
|
|
||||||
*/
|
|
||||||
removeListener: function(eventName, fn) {
|
|
||||||
if (!this.__events[eventName]) return;
|
|
||||||
this.__events[eventName].remove(fn);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Alias to removeListener
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
un: this.removeListener
|
|
||||||
};
|
|
Loading…
Reference in New Issue