@rontian/egret-robotlegs
Version:
Egret View Integration with RobotlegsJS
83 lines • 3.31 kB
JavaScript
;
// ------------------------------------------------------------------------------
// 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