@eclipse-glsp/theia-integration
Version:
Glue code to integrate GLSP clients into Eclipse Theia
44 lines • 2.27 kB
JavaScript
;
/********************************************************************************
* Copyright (c) 2023-2024 EclipseSource and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DiagramWidgetFactory = void 0;
exports.createDiagramWidgetFactory = createDiagramWidgetFactory;
const glsp_diagram_widget_1 = require("./glsp-diagram-widget");
/**
* A factory for creating new, injectable {@link GLSPDiagramWidget} instances.
* Scoped to a specific `diagramType`
*/
exports.DiagramWidgetFactory = Symbol('DiagramWidgetFactory');
/**
* Utility function to create the default inversify binding for the {@link DiagramWidgetFactory}
* @param context the inversify context
* @param diagramType the diagram type this factory is for
* @param widgetConstructor The optional widget constructor that should be used by this factory (i.e resolved from the container).
* Can be used to create a factory for a subclass of {@link GLSPDiagramWidget}.
*/
function createDiagramWidgetFactory(context, diagramType, widgetConstructor) {
return {
diagramType,
create: (options, diagramDiContainer) => {
const serviceId = widgetConstructor !== null && widgetConstructor !== void 0 ? widgetConstructor : glsp_diagram_widget_1.GLSPDiagramWidget;
const diagramWidget = context.container.resolve(serviceId);
diagramWidget.configure(options, diagramDiContainer);
return diagramWidget;
}
};
}
//# sourceMappingURL=diagram-widget-factory.js.map