@robotlegsjs/phaser
Version:
RobotlegsJS integration with Phaser Scene Manager
58 lines • 3.01 kB
JavaScript
"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 });
exports.ViewMediatorMapExtension = void 0;
var ISceneManager_1 = require("../viewManager/api/ISceneManager");
var IViewMediatorMap_1 = require("./api/IViewMediatorMap");
var ViewMediatorMap_1 = require("./impl/ViewMediatorMap");
/**
* This extension installs a shared IViewMediatorMap into the context
*/
var ViewMediatorMapExtension = /** @class */ (function () {
function ViewMediatorMapExtension() {
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @inheritDoc
*/
ViewMediatorMapExtension.prototype.extend = function (context) {
context
.beforeInitializing(this._beforeInitializing.bind(this))
.beforeDestroying(this._beforeDestroying.bind(this))
.whenDestroying(this._whenDestroying.bind(this));
this._injector = context.injector;
this._injector.bind(IViewMediatorMap_1.IViewMediatorMap).to(ViewMediatorMap_1.ViewMediatorMap).inSingletonScope();
};
/*============================================================================*/
/* Private Functions */
/*============================================================================*/
ViewMediatorMapExtension.prototype._beforeInitializing = function () {
this._mediatorMap = this._injector.get(IViewMediatorMap_1.IViewMediatorMap);
if (this._injector.isBound(ISceneManager_1.ISceneManager)) {
this._sceneManager = this._injector.get(ISceneManager_1.ISceneManager);
this._sceneManager.addViewHandler(this._mediatorMap);
}
};
ViewMediatorMapExtension.prototype._beforeDestroying = function () {
this._mediatorMap.unmediateAll();
if (this._injector.isBound(ISceneManager_1.ISceneManager)) {
this._sceneManager = this._injector.get(ISceneManager_1.ISceneManager);
this._sceneManager.removeViewHandler(this._mediatorMap);
}
};
ViewMediatorMapExtension.prototype._whenDestroying = function () {
if (this._injector.isBound(IViewMediatorMap_1.IViewMediatorMap)) {
this._injector.unbind(IViewMediatorMap_1.IViewMediatorMap);
}
};
return ViewMediatorMapExtension;
}());
exports.ViewMediatorMapExtension = ViewMediatorMapExtension;
//# sourceMappingURL=ViewMediatorMapExtension.js.map