@eclipse-glsp/client
Version:
A sprotty-based client for GLSP
116 lines • 8.99 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultModule = void 0;
/********************************************************************************
* Copyright (c) 2019-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
********************************************************************************/
const sprotty_1 = require("@eclipse-glsp/sprotty");
require("@vscode/codicons/dist/codicon.css");
require("../../css/glsp-sprotty.css");
const action_dispatcher_1 = require("./action-dispatcher");
const action_handler_registry_1 = require("./action-handler-registry");
const command_stack_1 = require("./command-stack");
const editor_context_service_1 = require("./editor-context-service");
const css_feedback_1 = require("./feedback/css-feedback");
const feedback_action_dispatcher_1 = require("./feedback/feedback-action-dispatcher");
const set_model_command_1 = require("./feedback/set-model-command");
const update_model_command_1 = require("./feedback/update-model-command");
const focus_state_change_action_1 = require("./focus/focus-state-change-action");
const focus_tracker_1 = require("./focus/focus-tracker");
const diagram_loader_1 = require("./model/diagram-loader");
const glsp_model_source_1 = require("./model/glsp-model-source");
const model_initialization_constraint_1 = require("./model/model-initialization-constraint");
const model_registry_1 = require("./model/model-registry");
const mouse_position_tracker_1 = require("./mouse-position-tracker");
const selection_clearing_mouse_listener_1 = require("./selection-clearing-mouse-listener");
const selection_service_1 = require("./selection-service");
const shortcuts_manager_1 = require("./shortcuts/shortcuts-manager");
const tool_1 = require("./tool-manager/tool");
const tool_manager_1 = require("./tool-manager/tool-manager");
const ui_extension_registry_1 = require("./ui-extension/ui-extension-registry");
const key_tool_1 = require("./view/key-tool");
const mouse_tool_1 = require("./view/mouse-tool");
const view_registry_1 = require("./view/view-registry");
/**
* The default module provides all of GLSP's base functionality and services.
* It builds on top of sprotty's default module {@link `sprottyDefaultModule`}.
*/
exports.defaultModule = new sprotty_1.FeatureModule((bind, unbind, isBound, rebind, ...rest) => {
// load bindings from sprotty's default module to avoid code duplication
sprotty_1.sprottyDefaultModule.registry(bind, unbind, isBound, rebind, ...rest);
const context = { bind, unbind, isBound, rebind };
(0, sprotty_1.bindLazyInjector)(context);
bind(editor_context_service_1.EditorContextService).toSelf().inSingletonScope();
bind(sprotty_1.TYPES.IDiagramStartup).toService(editor_context_service_1.EditorContextService);
// eslint-disable-next-line deprecation/deprecation
bind(sprotty_1.TYPES.IEditorContextServiceProvider).toProvider(ctx => async () => ctx.container.get(editor_context_service_1.EditorContextService));
(0, sprotty_1.configureActionHandler)(context, sprotty_1.SetEditModeAction.KIND, editor_context_service_1.EditorContextService);
(0, sprotty_1.configureActionHandler)(context, sprotty_1.SetDirtyStateAction.KIND, editor_context_service_1.EditorContextService);
bind(focus_tracker_1.FocusTracker).toSelf().inSingletonScope();
bind(sprotty_1.TYPES.IDiagramStartup).toService(focus_tracker_1.FocusTracker);
(0, sprotty_1.configureActionHandler)(context, focus_state_change_action_1.FocusStateChangedAction.KIND, focus_tracker_1.FocusTracker);
// Model update initialization ------------------------------------
bind(sprotty_1.TYPES.IFeedbackActionDispatcher).to(feedback_action_dispatcher_1.FeedbackActionDispatcher).inSingletonScope();
(0, sprotty_1.configureCommand)(context, update_model_command_1.FeedbackAwareUpdateModelCommand);
rebind(sprotty_1.SetModelCommand).to(set_model_command_1.FeedbackAwareSetModelCommand);
bind(mouse_tool_1.GLSPMouseTool).toSelf().inSingletonScope();
(0, sprotty_1.bindOrRebind)(context, sprotty_1.MouseTool).toService(mouse_tool_1.GLSPMouseTool);
bind(sprotty_1.TYPES.IDiagramStartup).toService(mouse_tool_1.GLSPMouseTool);
bind(mouse_position_tracker_1.GLSPMousePositionTracker).toSelf().inSingletonScope();
(0, sprotty_1.bindOrRebind)(context, sprotty_1.MousePositionTracker).toService(mouse_position_tracker_1.GLSPMousePositionTracker);
bind(key_tool_1.GLSPKeyTool).toSelf().inSingletonScope();
(0, sprotty_1.bindOrRebind)(context, sprotty_1.KeyTool).toService(key_tool_1.GLSPKeyTool);
bind(sprotty_1.TYPES.IDiagramStartup).toService(key_tool_1.GLSPKeyTool);
(0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.MouseListener, selection_clearing_mouse_listener_1.SelectionClearingMouseListener);
(0, sprotty_1.bindOrRebind)(context, sprotty_1.TYPES.ICommandStack).to(command_stack_1.GLSPCommandStack).inSingletonScope();
bind(action_dispatcher_1.GLSPActionDispatcher).toSelf().inSingletonScope();
bind(sprotty_1.TYPES.IGModelRootListener).toService(action_dispatcher_1.GLSPActionDispatcher);
(0, sprotty_1.bindOrRebind)(context, sprotty_1.TYPES.IActionDispatcher).toService(action_dispatcher_1.GLSPActionDispatcher);
(0, sprotty_1.bindOrRebind)(context, sprotty_1.ActionHandlerRegistry).to(action_handler_registry_1.GLSPActionHandlerRegistry).inSingletonScope();
(0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.ModelSource, glsp_model_source_1.GLSPModelSource);
bind(diagram_loader_1.DiagramLoader).toSelf().inSingletonScope();
bind(model_initialization_constraint_1.ModelInitializationConstraint).to(model_initialization_constraint_1.DefaultModelInitializationConstraint).inSingletonScope();
// support re-registration of model elements and views
(0, sprotty_1.bindOrRebind)(context, sprotty_1.TYPES.SModelRegistry).to(model_registry_1.GModelRegistry).inSingletonScope();
(0, sprotty_1.bindOrRebind)(context, sprotty_1.TYPES.ViewRegistry).to(view_registry_1.GViewRegistry).inSingletonScope();
bind(selection_service_1.SelectionService).toSelf().inSingletonScope();
bind(sprotty_1.TYPES.IGModelRootListener).toService(selection_service_1.SelectionService);
bind(sprotty_1.TYPES.IDiagramStartup).toService(selection_service_1.SelectionService);
// Feedback Support ------------------------------------
// Generic re-usable feedback modifying css classes
(0, sprotty_1.configureCommand)(context, css_feedback_1.ModifyCssFeedbackCommand);
// We support using sprotty's MoveCommand as client-side visual feedback
(0, sprotty_1.configureCommand)(context, sprotty_1.MoveCommand);
(0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.IVNodePostprocessor, sprotty_1.LocationPostprocessor);
bind(sprotty_1.TYPES.HiddenVNodePostprocessor).toService(sprotty_1.LocationPostprocessor);
// Tool manager initialization ------------------------------------
bind(sprotty_1.TYPES.IToolManager).to(tool_manager_1.ToolManager).inSingletonScope();
bind(sprotty_1.TYPES.IDiagramStartup).toService(sprotty_1.TYPES.IToolManager);
bind(sprotty_1.TYPES.IEditModeListener).toService(sprotty_1.TYPES.IToolManager);
bind(tool_manager_1.DefaultToolsEnablingKeyListener).toSelf().inSingletonScope();
bind(sprotty_1.TYPES.KeyListener).toService(tool_manager_1.DefaultToolsEnablingKeyListener);
bind(tool_manager_1.ToolManagerActionHandler).toSelf().inSingletonScope();
(0, sprotty_1.configureActionHandler)(context, tool_1.EnableDefaultToolsAction.KIND, tool_manager_1.ToolManagerActionHandler);
(0, sprotty_1.configureActionHandler)(context, tool_1.EnableToolsAction.KIND, tool_manager_1.ToolManagerActionHandler);
bind(ui_extension_registry_1.GLSPUIExtensionRegistry).toSelf().inSingletonScope();
(0, sprotty_1.bindOrRebind)(context, sprotty_1.TYPES.UIExtensionRegistry).toService(ui_extension_registry_1.GLSPUIExtensionRegistry);
bind(sprotty_1.TYPES.IDiagramStartup).toService(ui_extension_registry_1.GLSPUIExtensionRegistry);
bind(sprotty_1.TYPES.EmptyArray).toDynamicValue(() => []);
// Shortcut manager initialization ------------------------------------
(0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.IShortcutManager, shortcuts_manager_1.ShortcutManager);
}, {
featureId: Symbol('default')
});
//# sourceMappingURL=default.module.js.map