devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
57 lines (49 loc) • 1.5 kB
JavaScript
var Callbacks = require("./utils/callbacks"),
isFunction = require("./utils/type").isFunction,
each = require("./utils/iterator").each,
Class = require("./class");
module.exports = Class.inherit({
ctor: function ctor(owner) {
this._events = {};
this._owner = owner;
},
hasEvent: function hasEvent(eventName) {
var callbacks = this._events[eventName];
if (callbacks) {
return callbacks.has();
}
return false;
},
fireEvent: function fireEvent(eventName, eventArgs) {
var callbacks = this._events[eventName];
if (callbacks) {
callbacks.fireWith(this._owner, eventArgs);
}
},
on: function on(eventName, eventHandler) {
var callbacks = this._events[eventName],
addFn;
if (!callbacks) {
callbacks = Callbacks();
this._events[eventName] = callbacks;
}
addFn = callbacks.originalAdd || callbacks.add;
addFn.call(callbacks, eventHandler);
},
off: function off(eventName, eventHandler) {
var callbacks = this._events[eventName];
if (callbacks) {
if (isFunction(eventHandler)) {
callbacks.remove(eventHandler);
} else {
callbacks.empty();
}
}
},
dispose: function dispose() {
each(this._events, function () {
this.empty();
});
}
});
;