econ
Version:
Event Collections
54 lines • 2.08 kB
JavaScript
var __values = (this && this.__values) || function (o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
};
Object.defineProperty(exports, "__esModule", { value: true });
var std = require("tstl");
var EventDispatcher = /** @class */ (function () {
function EventDispatcher() {
this.listeners_ = new std.HashMap();
}
EventDispatcher.prototype.dispatchEvent = function (event) {
var it = this.listeners_.find(event.type);
if (it.equals(this.listeners_.end()))
return false;
var listeners = it.second;
try {
for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {
var elem = listeners_1_1.value;
elem(event);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);
}
finally { if (e_1) throw e_1.error; }
}
return true;
var e_1, _a;
};
EventDispatcher.prototype.hasEventListener = function (type) {
return this.listeners_.has(type);
};
EventDispatcher.prototype.addEventListener = function (type, listener) {
var it = this.listeners_.find(type);
if (it.equals(this.listeners_.end()))
it = this.listeners_.emplace(type, new std.HashSet()).first;
it.second.insert(listener);
};
EventDispatcher.prototype.removeEventListener = function (type, listener) {
this.listeners_.get(type).erase(listener);
};
return EventDispatcher;
}());
exports.EventDispatcher = EventDispatcher;
//# sourceMappingURL=EventDispatcher.js.map
;