@robotlegsjs/createjs
Version:
CreateJS View Integration with RobotlegsJS
52 lines • 2.66 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.ViewManagerExtension = void 0;
var IViewManager_1 = require("./api/IViewManager");
var ContainerRegistry_1 = require("./impl/ContainerRegistry");
var ViewManager_1 = require("./impl/ViewManager");
/**
* This extension install a View Manager into the context
*/
var ViewManagerExtension = /** @class */ (function () {
function ViewManagerExtension() {
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @inheritDoc
*/
ViewManagerExtension.prototype.extend = function (context) {
context.whenInitializing(this._whenInitializing.bind(this));
context.whenDestroying(this._whenDestroying.bind(this));
this._injector = context.injector;
// Just one Container Registry
ViewManagerExtension._containerRegistry =
ViewManagerExtension._containerRegistry || new ContainerRegistry_1.ContainerRegistry();
this._injector
.bind(ContainerRegistry_1.ContainerRegistry)
.toConstantValue(ViewManagerExtension._containerRegistry);
// But you get your own View Manager
this._injector.bind(IViewManager_1.IViewManager).to(ViewManager_1.ViewManager).inSingletonScope();
};
/*============================================================================*/
/* Private Functions */
/*============================================================================*/
ViewManagerExtension.prototype._whenInitializing = function () {
this._viewManager = this._injector.get(IViewManager_1.IViewManager);
};
ViewManagerExtension.prototype._whenDestroying = function () {
this._viewManager.removeAllHandlers();
this._injector.unbind(IViewManager_1.IViewManager);
this._injector.unbind(ContainerRegistry_1.ContainerRegistry);
};
return ViewManagerExtension;
}());
exports.ViewManagerExtension = ViewManagerExtension;
//# sourceMappingURL=ViewManagerExtension.js.map