UNPKG

@rontian/egret-robotlegs

Version:

Egret View Integration with RobotlegsJS

83 lines 3.31 kB
"use strict"; // ------------------------------------------------------------------------------ // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved. // // NOTICE: You are permitted to use, modify, and distribute this file // in accordance with the terms of the license agreement accompanying it. // ------------------------------------------------------------------------------ Object.defineProperty(exports, "__esModule", { value: true }); /** * @private */ var MediatorManager = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ /** * @private */ function MediatorManager(factory) { var _this = this; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ this.onRemovedFromStage = function (event) { _this._factory.removeMediators(event.target); }; this._factory = factory; } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @private */ MediatorManager.prototype.addMediator = function (mediator, item, mapping) { // Watch Display Object for removal if (item instanceof egret.DisplayObject && mapping.autoRemoveEnabled) { item.addEventListener(egret.Event.REMOVED_FROM_STAGE, this.onRemovedFromStage, this); } // Synchronize with item life-cycle this.initializeMediator(mediator, item); }; /** * @private */ MediatorManager.prototype.removeMediator = function (mediator, item, mapping) { if (item instanceof egret.DisplayObject) { item.removeEventListener(egret.Event.REMOVED_FROM_STAGE, this.onRemovedFromStage, this); } this.destroyMediator(mediator); }; MediatorManager.prototype.initializeMediator = function (mediator, mediatedItem) { if ("preInitialize" in mediator) { mediator.preInitialize(); } if ("view" in mediator) { mediator.view = mediatedItem; } if ("initialize" in mediator) { mediator.initialize(); } if ("postInitialize" in mediator) { mediator.postInitialize(); } }; MediatorManager.prototype.destroyMediator = function (mediator) { if ("preDestroy" in mediator) { mediator.preDestroy(); } if ("destroy" in mediator) { mediator.destroy(); } if ("view" in mediator) { mediator.view = null; } if ("postDestroy" in mediator) { mediator.postDestroy(); } }; return MediatorManager; }()); exports.MediatorManager = MediatorManager; //# sourceMappingURL=MediatorManager.js.map