@robotlegsjs/createjs
Version:
CreateJS View Integration with RobotlegsJS
84 lines • 3.35 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 });
exports.MediatorManager = void 0;
/**
* @private
*/
var MediatorManager = /** @class */ (function () {
/*============================================================================*/
/* Constructor */
/*============================================================================*/
/**
* @private
*/
function MediatorManager(factory) {
this._factory = factory;
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @private
*/
MediatorManager.prototype.addMediator = function (mediator, item, mapping) {
// Watch Display Object for removal
if (item instanceof createjs.DisplayObject && mapping.autoRemoveEnabled) {
item._onRemovedFromStage = this._onRemovedFromStage.bind(this, item);
item.on("removed", item._onRemovedFromStage, this);
}
// Synchronize with item life-cycle
this._initializeMediator(mediator, item);
};
/**
* @private
*/
MediatorManager.prototype.removeMediator = function (mediator, item, mapping) {
if (item instanceof createjs.DisplayObject) {
item.off("removed", item._onRemovedFromStage);
}
this._destroyMediator(mediator);
};
/*============================================================================*/
/* Private Functions */
/*============================================================================*/
MediatorManager.prototype._onRemovedFromStage = function (displayObject, fromContainer) {
this._factory.removeMediators(displayObject);
};
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