goog.provide('M.Object'); goog.require('M.evt.EventsManager'); goog.require('M.evt.Listener'); (function () { 'use strict'; /** * @classdesc * Main mapea Object. This class creates a Object * which manages events * * @constructor * @api stable */ M.Object = (function () { /** * Callback for events managed by the * facade object * * @private * @type {M.evt.EventsManager} */ this.eventsManager_ = new M.evt.EventsManager(); }); /** * Sets the callback when the instace is loaded * * @public * @function * @api stable */ M.Object.prototype.on = function (eventType, listener, optThis) { return this.eventsManager_.add(eventType, listener, optThis); }; /** * Sets the callback when the instace is loaded * * @public * @function * @api stable */ M.Object.prototype.once = function (eventType, listener, optThis) { return this.eventsManager_.add(eventType, listener, optThis, true); }; /** * Sets the callback when the instace is loaded * * @public * @function * @api stable */ M.Object.prototype.un = function (eventType, listener, optThis) { this.eventsManager_.remove(eventType, listener, optThis); }; /** * Sets the callback when the instace is loaded * * @public * @function * @api stable */ M.Object.prototype.fire = function (eventType, args) { if (M.utils.isNullOrEmpty(args)) { args = [this]; } this.eventsManager_.fire(eventType, args); }; })();