devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
54 lines (47 loc) • 1.28 kB
JavaScript
var Callbacks = require("../../core/utils/callbacks");
var eventEmitterMethods = {
_initEvents: function _initEvents() {
var names = this._eventNames,
i,
ii = names.length,
events = this._events = {};
for (i = 0; i < ii; ++i) {
events[names[i]] = Callbacks();
}
},
_disposeEvents: function _disposeEvents() {
var events = this._events,
name;
for (name in events) {
events[name].empty();
}
this._events = null;
},
on: function on(handlers) {
var events = this._events,
name;
for (name in handlers) {
events[name].add(handlers[name]);
}
return dispose;
function dispose() {
for (name in handlers) {
events[name].remove(handlers[name]);
}
}
},
_fire: function _fire(name, arg) {
this._events[name].fire(arg);
}
};
exports.makeEventEmitter = function (target) {
var proto = target.prototype,
name;
for (name in eventEmitterMethods) {
proto[name] = eventEmitterMethods[name];
}
};
///#DEBUG
exports._TESTS_eventEmitterMethods = eventEmitterMethods;
///#ENDDEBUG
;