@eclipse-glsp/server 1.1.0-next.3d7585d.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +642 -0
- package/README.md +8 -0
- package/browser.d.ts +16 -0
- package/browser.js +18 -0
- package/lib/browser/di/app-module.d.ts +24 -0
- package/lib/browser/di/app-module.d.ts.map +1 -0
- package/lib/browser/di/app-module.js +55 -0
- package/lib/browser/di/app-module.js.map +1 -0
- package/lib/browser/di/console-logger.d.ts +29 -0
- package/lib/browser/di/console-logger.d.ts.map +1 -0
- package/lib/browser/di/console-logger.js +81 -0
- package/lib/browser/di/console-logger.js.map +1 -0
- package/lib/browser/index.d.ts +20 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +36 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/launch/worker-server-launcher.d.ts +26 -0
- package/lib/browser/launch/worker-server-launcher.d.ts.map +1 -0
- package/lib/browser/launch/worker-server-launcher.js +65 -0
- package/lib/browser/launch/worker-server-launcher.js.map +1 -0
- package/lib/common/actions/action-dispatcher.d.ts +74 -0
- package/lib/common/actions/action-dispatcher.d.ts.map +1 -0
- package/lib/common/actions/action-dispatcher.js +128 -0
- package/lib/common/actions/action-dispatcher.js.map +1 -0
- package/lib/common/actions/action-dispatcher.spec.d.ts +2 -0
- package/lib/common/actions/action-dispatcher.spec.d.ts.map +1 -0
- package/lib/common/actions/action-dispatcher.spec.js +264 -0
- package/lib/common/actions/action-dispatcher.spec.js.map +1 -0
- package/lib/common/actions/action-handler-registry.d.ts +40 -0
- package/lib/common/actions/action-handler-registry.d.ts.map +1 -0
- package/lib/common/actions/action-handler-registry.js +65 -0
- package/lib/common/actions/action-handler-registry.js.map +1 -0
- package/lib/common/actions/action-handler-registry.spec.d.ts +2 -0
- package/lib/common/actions/action-handler-registry.spec.d.ts.map +1 -0
- package/lib/common/actions/action-handler-registry.spec.js +50 -0
- package/lib/common/actions/action-handler-registry.spec.js.map +1 -0
- package/lib/common/actions/action-handler.d.ts +55 -0
- package/lib/common/actions/action-handler.d.ts.map +1 -0
- package/lib/common/actions/action-handler.js +7 -0
- package/lib/common/actions/action-handler.js.map +1 -0
- package/lib/common/actions/client-action-handler.d.ts +30 -0
- package/lib/common/actions/client-action-handler.d.ts.map +1 -0
- package/lib/common/actions/client-action-handler.js +56 -0
- package/lib/common/actions/client-action-handler.js.map +1 -0
- package/lib/common/actions/global-action-provider.d.ts +30 -0
- package/lib/common/actions/global-action-provider.d.ts.map +1 -0
- package/lib/common/actions/global-action-provider.js +81 -0
- package/lib/common/actions/global-action-provider.js.map +1 -0
- package/lib/common/actions/global-action-provider.spec.d.ts +2 -0
- package/lib/common/actions/global-action-provider.spec.d.ts.map +1 -0
- package/lib/common/actions/global-action-provider.spec.js +70 -0
- package/lib/common/actions/global-action-provider.spec.js.map +1 -0
- package/lib/common/command/command-stack.d.ts +37 -0
- package/lib/common/command/command-stack.d.ts.map +1 -0
- package/lib/common/command/command-stack.js +48 -0
- package/lib/common/command/command-stack.js.map +1 -0
- package/lib/common/command/command.d.ts +37 -0
- package/lib/common/command/command.d.ts.map +1 -0
- package/lib/common/command/command.js +18 -0
- package/lib/common/command/command.js.map +1 -0
- package/lib/common/di/binding-target.d.ts +73 -0
- package/lib/common/di/binding-target.d.ts.map +1 -0
- package/lib/common/di/binding-target.js +143 -0
- package/lib/common/di/binding-target.js.map +1 -0
- package/lib/common/di/binding-target.spec.d.ts +2 -0
- package/lib/common/di/binding-target.spec.d.ts.map +1 -0
- package/lib/common/di/binding-target.spec.js +121 -0
- package/lib/common/di/binding-target.spec.js.map +1 -0
- package/lib/common/di/client-session-module.d.ts +19 -0
- package/lib/common/di/client-session-module.d.ts.map +1 -0
- package/lib/common/di/client-session-module.js +34 -0
- package/lib/common/di/client-session-module.js.map +1 -0
- package/lib/common/di/diagram-module.d.ts +127 -0
- package/lib/common/di/diagram-module.d.ts.map +1 -0
- package/lib/common/di/diagram-module.js +283 -0
- package/lib/common/di/diagram-module.js.map +1 -0
- package/lib/common/di/glsp-module.d.ts +47 -0
- package/lib/common/di/glsp-module.d.ts.map +1 -0
- package/lib/common/di/glsp-module.js +59 -0
- package/lib/common/di/glsp-module.js.map +1 -0
- package/lib/common/di/multi-binding.d.ts +41 -0
- package/lib/common/di/multi-binding.d.ts.map +1 -0
- package/lib/common/di/multi-binding.js +82 -0
- package/lib/common/di/multi-binding.js.map +1 -0
- package/lib/common/di/multi-bindings.spec.d.ts +2 -0
- package/lib/common/di/multi-bindings.spec.d.ts.map +1 -0
- package/lib/common/di/multi-bindings.spec.js +137 -0
- package/lib/common/di/multi-bindings.spec.js.map +1 -0
- package/lib/common/di/server-module.d.ts +73 -0
- package/lib/common/di/server-module.d.ts.map +1 -0
- package/lib/common/di/server-module.js +103 -0
- package/lib/common/di/server-module.js.map +1 -0
- package/lib/common/di/service-identifiers.d.ts +29 -0
- package/lib/common/di/service-identifiers.d.ts.map +1 -0
- package/lib/common/di/service-identifiers.js +14 -0
- package/lib/common/di/service-identifiers.js.map +1 -0
- package/lib/common/diagram/diagram-configuration.d.ts +89 -0
- package/lib/common/diagram/diagram-configuration.d.ts.map +1 -0
- package/lib/common/diagram/diagram-configuration.js +30 -0
- package/lib/common/diagram/diagram-configuration.js.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.d.ts +25 -0
- package/lib/common/diagram/request-type-hints-action-handler.d.ts.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.js +53 -0
- package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +2 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.js +57 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +1 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +26 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts.map +1 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +61 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -0
- package/lib/common/features/contextactions/command-palette-action-provider.d.ts +63 -0
- package/lib/common/features/contextactions/command-palette-action-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/command-palette-action-provider.js +72 -0
- package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.d.ts +12 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.js +70 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +2 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +34 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider.d.ts +34 -0
- package/lib/common/features/contextactions/context-actions-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider.js +5 -0
- package/lib/common/features/contextactions/context-actions-provider.js.map +1 -0
- package/lib/common/features/contextactions/context-menu-item-provider.d.ts +43 -0
- package/lib/common/features/contextactions/context-menu-item-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-menu-item-provider.js +36 -0
- package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.d.ts +24 -0
- package/lib/common/features/contextactions/request-context-actions-handler.d.ts.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.js +53 -0
- package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +2 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.js +63 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.d.ts +50 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.js +88 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +2 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +48 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.d.ts +14 -0
- package/lib/common/features/directediting/context-edit-validator-registry.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.js +57 -0
- package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +2 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.js +44 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator.d.ts +25 -0
- package/lib/common/features/directediting/context-edit-validator.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator.js +40 -0
- package/lib/common/features/directediting/context-edit-validator.js.map +1 -0
- package/lib/common/features/directediting/label-edit-validator.d.ts +32 -0
- package/lib/common/features/directediting/label-edit-validator.d.ts.map +1 -0
- package/lib/common/features/directediting/label-edit-validator.js +21 -0
- package/lib/common/features/directediting/label-edit-validator.js.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.d.ts +26 -0
- package/lib/common/features/directediting/request-edit-validation-handler.d.ts.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.js +61 -0
- package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +2 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.js +97 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +1 -0
- package/lib/common/features/layout/layout-engine.d.ts +29 -0
- package/lib/common/features/layout/layout-engine.d.ts.map +1 -0
- package/lib/common/features/layout/layout-engine.js +20 -0
- package/lib/common/features/layout/layout-engine.js.map +1 -0
- package/lib/common/features/layout/layout-operation-handler.d.ts +28 -0
- package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
- package/lib/common/features/layout/layout-operation-handler.js +66 -0
- package/lib/common/features/layout/layout-operation-handler.js.map +1 -0
- package/lib/common/features/model/gmodel-factory.d.ts +39 -0
- package/lib/common/features/model/gmodel-factory.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-factory.js +39 -0
- package/lib/common/features/model/gmodel-factory.js.map +1 -0
- package/lib/common/features/model/gmodel-index.d.ts +107 -0
- package/lib/common/features/model/gmodel-index.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-index.js +193 -0
- package/lib/common/features/model/gmodel-index.js.map +1 -0
- package/lib/common/features/model/gmodel-serializer.d.ts +67 -0
- package/lib/common/features/model/gmodel-serializer.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-serializer.js +143 -0
- package/lib/common/features/model/gmodel-serializer.js.map +1 -0
- package/lib/common/features/model/gmodel-serializer.spec.d.ts +2 -0
- package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-serializer.spec.js +124 -0
- package/lib/common/features/model/gmodel-serializer.spec.js.map +1 -0
- package/lib/common/features/model/model-state.d.ts +53 -0
- package/lib/common/features/model/model-state.d.ts.map +1 -0
- package/lib/common/features/model/model-state.js +75 -0
- package/lib/common/features/model/model-state.js.map +1 -0
- package/lib/common/features/model/model-submission-handler.d.ts +56 -0
- package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
- package/lib/common/features/model/model-submission-handler.js +97 -0
- package/lib/common/features/model/model-submission-handler.js.map +1 -0
- package/lib/common/features/model/request-model-action-handler.d.ts +37 -0
- package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/model/request-model-action-handler.js +83 -0
- package/lib/common/features/model/request-model-action-handler.js.map +1 -0
- package/lib/common/features/model/save-model-action-handler.d.ts +26 -0
- package/lib/common/features/model/save-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/model/save-model-action-handler.js +54 -0
- package/lib/common/features/model/save-model-action-handler.js.map +1 -0
- package/lib/common/features/model/source-model-storage.d.ts +47 -0
- package/lib/common/features/model/source-model-storage.d.ts.map +1 -0
- package/lib/common/features/model/source-model-storage.js +5 -0
- package/lib/common/features/model/source-model-storage.js.map +1 -0
- package/lib/common/features/navigation/json-opener-options.d.ts +36 -0
- package/lib/common/features/navigation/json-opener-options.d.ts.map +1 -0
- package/lib/common/features/navigation/json-opener-options.js +60 -0
- package/lib/common/features/navigation/json-opener-options.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.d.ts +12 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.js +47 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider.d.ts +48 -0
- package/lib/common/features/navigation/navigation-target-provider.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider.js +5 -0
- package/lib/common/features/navigation/navigation-target-provider.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolution.d.ts +23 -0
- package/lib/common/features/navigation/navigation-target-resolution.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolution.js +12 -0
- package/lib/common/features/navigation/navigation-target-resolution.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolver.d.ts +31 -0
- package/lib/common/features/navigation/navigation-target-resolver.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolver.js +49 -0
- package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts +24 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts.map +1 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js +55 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts +26 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts.map +1 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +59 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -0
- package/lib/common/features/popup/popup-model-factory.d.ts +36 -0
- package/lib/common/features/popup/popup-model-factory.d.ts.map +1 -0
- package/lib/common/features/popup/popup-model-factory.js +20 -0
- package/lib/common/features/popup/popup-model-factory.js.map +1 -0
- package/lib/common/features/popup/request-popup-model-action-handler.d.ts +31 -0
- package/lib/common/features/popup/request-popup-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/popup/request-popup-model-action-handler.js +77 -0
- package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -0
- package/lib/common/features/validation/model-validator.d.ts +33 -0
- package/lib/common/features/validation/model-validator.d.ts.map +1 -0
- package/lib/common/features/validation/model-validator.js +5 -0
- package/lib/common/features/validation/model-validator.js.map +1 -0
- package/lib/common/features/validation/request-markers-handler.d.ts +11 -0
- package/lib/common/features/validation/request-markers-handler.d.ts.map +1 -0
- package/lib/common/features/validation/request-markers-handler.js +70 -0
- package/lib/common/features/validation/request-markers-handler.js.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts +9 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.js +55 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts +2 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js +38 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js.map +1 -0
- package/lib/common/gmodel/change-bounds-operation-handler.d.ts +10 -0
- package/lib/common/gmodel/change-bounds-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/change-bounds-operation-handler.js +71 -0
- package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.d.ts +24 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.js +53 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
- package/lib/common/gmodel/computed-bounds-action-handler.d.ts +29 -0
- package/lib/common/gmodel/computed-bounds-action-handler.d.ts.map +1 -0
- package/lib/common/gmodel/computed-bounds-action-handler.js +50 -0
- package/lib/common/gmodel/computed-bounds-action-handler.js.map +1 -0
- package/lib/common/gmodel/delete-operation-handler.d.ts +32 -0
- package/lib/common/gmodel/delete-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/delete-operation-handler.js +116 -0
- package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +31 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +65 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts +31 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js +58 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-diagram-module.d.ts +31 -0
- package/lib/common/gmodel/gmodel-diagram-module.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-diagram-module.js +86 -0
- package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
- package/lib/common/gmodel/index.d.ts +26 -0
- package/lib/common/gmodel/index.d.ts.map +1 -0
- package/lib/common/gmodel/index.js +42 -0
- package/lib/common/gmodel/index.js.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts +35 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.js +131 -0
- package/lib/common/gmodel/paste-operation-handler.js.map +1 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts +9 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.js +67 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
- package/lib/common/index.d.ts +88 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +104 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/launch/glsp-server-launcher.d.ts +34 -0
- package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -0
- package/lib/common/launch/glsp-server-launcher.js +64 -0
- package/lib/common/launch/glsp-server-launcher.js.map +1 -0
- package/lib/common/operations/compound-operation-handler.d.ts +25 -0
- package/lib/common/operations/compound-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/compound-operation-handler.js +54 -0
- package/lib/common/operations/compound-operation-handler.js.map +1 -0
- package/lib/common/operations/create-operation-handler.d.ts +64 -0
- package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/create-operation-handler.js +90 -0
- package/lib/common/operations/create-operation-handler.js.map +1 -0
- package/lib/common/operations/cut-operation-handler.d.ts +25 -0
- package/lib/common/operations/cut-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/cut-operation-handler.js +53 -0
- package/lib/common/operations/cut-operation-handler.js.map +1 -0
- package/lib/common/operations/operation-action-handler.d.ts +33 -0
- package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-action-handler.js +94 -0
- package/lib/common/operations/operation-action-handler.js.map +1 -0
- package/lib/common/operations/operation-handler-registry.d.ts +29 -0
- package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
- package/lib/common/operations/operation-handler-registry.js +58 -0
- package/lib/common/operations/operation-handler-registry.js.map +1 -0
- package/lib/common/operations/operation-handler-registry.spec.d.ts +2 -0
- package/lib/common/operations/operation-handler-registry.spec.d.ts.map +1 -0
- package/lib/common/operations/operation-handler-registry.spec.js +50 -0
- package/lib/common/operations/operation-handler-registry.spec.js.map +1 -0
- package/lib/common/operations/operation-handler.d.ts +50 -0
- package/lib/common/operations/operation-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-handler.js +7 -0
- package/lib/common/operations/operation-handler.js.map +1 -0
- package/lib/common/protocol/glsp-client-proxy.d.ts +45 -0
- package/lib/common/protocol/glsp-client-proxy.d.ts.map +1 -0
- package/lib/common/protocol/glsp-client-proxy.js +53 -0
- package/lib/common/protocol/glsp-client-proxy.js.map +1 -0
- package/lib/common/protocol/glsp-server-listener.d.ts +37 -0
- package/lib/common/protocol/glsp-server-listener.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server-listener.js +5 -0
- package/lib/common/protocol/glsp-server-listener.js.map +1 -0
- package/lib/common/protocol/glsp-server.d.ts +150 -0
- package/lib/common/protocol/glsp-server.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server.js +188 -0
- package/lib/common/protocol/glsp-server.js.map +1 -0
- package/lib/common/protocol/glsp-server.spec.d.ts +2 -0
- package/lib/common/protocol/glsp-server.spec.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server.spec.js +119 -0
- package/lib/common/protocol/glsp-server.spec.js.map +1 -0
- package/lib/common/session/client-session-factory.d.ts +42 -0
- package/lib/common/session/client-session-factory.d.ts.map +1 -0
- package/lib/common/session/client-session-factory.js +54 -0
- package/lib/common/session/client-session-factory.js.map +1 -0
- package/lib/common/session/client-session-factory.spec.d.ts +2 -0
- package/lib/common/session/client-session-factory.spec.d.ts.map +1 -0
- package/lib/common/session/client-session-factory.spec.js +56 -0
- package/lib/common/session/client-session-factory.spec.js.map +1 -0
- package/lib/common/session/client-session-initializer.d.ts +26 -0
- package/lib/common/session/client-session-initializer.d.ts.map +1 -0
- package/lib/common/session/client-session-initializer.js +5 -0
- package/lib/common/session/client-session-initializer.js.map +1 -0
- package/lib/common/session/client-session-listener.d.ts +40 -0
- package/lib/common/session/client-session-listener.d.ts.map +1 -0
- package/lib/common/session/client-session-listener.js +3 -0
- package/lib/common/session/client-session-listener.js.map +1 -0
- package/lib/common/session/client-session-manager.d.ts +102 -0
- package/lib/common/session/client-session-manager.d.ts.map +1 -0
- package/lib/common/session/client-session-manager.js +116 -0
- package/lib/common/session/client-session-manager.js.map +1 -0
- package/lib/common/session/client-session-manager.spec.d.ts +2 -0
- package/lib/common/session/client-session-manager.spec.d.ts.map +1 -0
- package/lib/common/session/client-session-manager.spec.js +74 -0
- package/lib/common/session/client-session-manager.spec.js.map +1 -0
- package/lib/common/session/client-session.d.ts +52 -0
- package/lib/common/session/client-session.d.ts.map +1 -0
- package/lib/common/session/client-session.js +34 -0
- package/lib/common/session/client-session.js.map +1 -0
- package/lib/common/test/mock-util.d.ts +110 -0
- package/lib/common/test/mock-util.d.ts.map +1 -0
- package/lib/common/test/mock-util.js +211 -0
- package/lib/common/test/mock-util.js.map +1 -0
- package/lib/common/utils/args-util.d.ts +38 -0
- package/lib/common/utils/args-util.d.ts.map +1 -0
- package/lib/common/utils/args-util.js +81 -0
- package/lib/common/utils/args-util.js.map +1 -0
- package/lib/common/utils/client-options-util.d.ts +20 -0
- package/lib/common/utils/client-options-util.d.ts.map +1 -0
- package/lib/common/utils/client-options-util.js +26 -0
- package/lib/common/utils/client-options-util.js.map +1 -0
- package/lib/common/utils/glsp-server-error.d.ts +21 -0
- package/lib/common/utils/glsp-server-error.d.ts.map +1 -0
- package/lib/common/utils/glsp-server-error.js +33 -0
- package/lib/common/utils/glsp-server-error.js.map +1 -0
- package/lib/common/utils/layout-util.d.ts +74 -0
- package/lib/common/utils/layout-util.d.ts.map +1 -0
- package/lib/common/utils/layout-util.js +166 -0
- package/lib/common/utils/layout-util.js.map +1 -0
- package/lib/common/utils/logger.d.ts +27 -0
- package/lib/common/utils/logger.d.ts.map +1 -0
- package/lib/common/utils/logger.js +67 -0
- package/lib/common/utils/logger.js.map +1 -0
- package/lib/common/utils/promise-queue.d.ts +48 -0
- package/lib/common/utils/promise-queue.d.ts.map +1 -0
- package/lib/common/utils/promise-queue.js +93 -0
- package/lib/common/utils/promise-queue.js.map +1 -0
- package/lib/common/utils/promise-queue.spec.d.ts +2 -0
- package/lib/common/utils/promise-queue.spec.d.ts.map +1 -0
- package/lib/common/utils/promise-queue.spec.js +117 -0
- package/lib/common/utils/promise-queue.spec.js.map +1 -0
- package/lib/common/utils/registry.d.ts +73 -0
- package/lib/common/utils/registry.d.ts.map +1 -0
- package/lib/common/utils/registry.js +160 -0
- package/lib/common/utils/registry.js.map +1 -0
- package/lib/common/utils/registry.spec.d.ts +2 -0
- package/lib/common/utils/registry.spec.d.ts.map +1 -0
- package/lib/common/utils/registry.spec.js +199 -0
- package/lib/common/utils/registry.spec.js.map +1 -0
- package/lib/node/abstract-json-model-storage.d.ts +45 -0
- package/lib/node/abstract-json-model-storage.d.ts.map +1 -0
- package/lib/node/abstract-json-model-storage.js +103 -0
- package/lib/node/abstract-json-model-storage.js.map +1 -0
- package/lib/node/di/app-module.d.ts +36 -0
- package/lib/node/di/app-module.d.ts.map +1 -0
- package/lib/node/di/app-module.js +91 -0
- package/lib/node/di/app-module.js.map +1 -0
- package/lib/node/di/winston-logger.d.ts +32 -0
- package/lib/node/di/winston-logger.d.ts.map +1 -0
- package/lib/node/di/winston-logger.js +57 -0
- package/lib/node/di/winston-logger.js.map +1 -0
- package/lib/node/gmodel/gmodel-storage.d.ts +34 -0
- package/lib/node/gmodel/gmodel-storage.d.ts.map +1 -0
- package/lib/node/gmodel/gmodel-storage.js +68 -0
- package/lib/node/gmodel/gmodel-storage.js.map +1 -0
- package/lib/node/index.d.ts +24 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +40 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/launch/cli-parser.d.ts +34 -0
- package/lib/node/launch/cli-parser.d.ts.map +1 -0
- package/lib/node/launch/cli-parser.js +71 -0
- package/lib/node/launch/cli-parser.js.map +1 -0
- package/lib/node/launch/cli-parser.spec.d.ts +2 -0
- package/lib/node/launch/cli-parser.spec.d.ts.map +1 -0
- package/lib/node/launch/cli-parser.spec.js +56 -0
- package/lib/node/launch/cli-parser.spec.js.map +1 -0
- package/lib/node/launch/socket-cli-parser.d.ts +9 -0
- package/lib/node/launch/socket-cli-parser.d.ts.map +1 -0
- package/lib/node/launch/socket-cli-parser.js +43 -0
- package/lib/node/launch/socket-cli-parser.js.map +1 -0
- package/lib/node/launch/socket-cli-parser.spec.d.ts +2 -0
- package/lib/node/launch/socket-cli-parser.spec.d.ts.map +1 -0
- package/lib/node/launch/socket-cli-parser.spec.js +66 -0
- package/lib/node/launch/socket-cli-parser.spec.js.map +1 -0
- package/lib/node/launch/socket-server-launcher.d.ts +34 -0
- package/lib/node/launch/socket-server-launcher.d.ts.map +1 -0
- package/lib/node/launch/socket-server-launcher.js +104 -0
- package/lib/node/launch/socket-server-launcher.js.map +1 -0
- package/lib/node/launch/socket-server-launcher.spec.d.ts +17 -0
- package/lib/node/launch/socket-server-launcher.spec.d.ts.map +1 -0
- package/lib/node/launch/socket-server-launcher.spec.js +70 -0
- package/lib/node/launch/socket-server-launcher.spec.js.map +1 -0
- package/node.d.ts +16 -0
- package/node.js +18 -0
- package/package.json +76 -0
- package/src/browser/di/app-module.ts +55 -0
- package/src/browser/di/console-logger.ts +71 -0
- package/src/browser/index.ts +19 -0
- package/src/browser/launch/worker-server-launcher.ts +58 -0
- package/src/common/actions/action-dispatcher.spec.ts +290 -0
- package/src/common/actions/action-dispatcher.ts +152 -0
- package/src/common/actions/action-handler-registry.spec.ts +52 -0
- package/src/common/actions/action-handler-registry.ts +60 -0
- package/src/common/actions/action-handler.ts +62 -0
- package/src/common/actions/client-action-handler.ts +50 -0
- package/src/common/actions/global-action-provider.spec.ts +79 -0
- package/src/common/actions/global-action-provider.ts +72 -0
- package/src/common/command/command-stack.ts +74 -0
- package/src/common/command/command.ts +39 -0
- package/src/common/di/binding-target.spec.ts +147 -0
- package/src/common/di/binding-target.ts +188 -0
- package/src/common/di/client-session-module.ts +29 -0
- package/src/common/di/diagram-module.ts +397 -0
- package/src/common/di/glsp-module.ts +66 -0
- package/src/common/di/multi-binding.ts +89 -0
- package/src/common/di/multi-bindings.spec.ts +133 -0
- package/src/common/di/server-module.ts +131 -0
- package/src/common/di/service-identifiers.ts +39 -0
- package/src/common/diagram/diagram-configuration.ts +97 -0
- package/src/common/diagram/request-type-hints-action-handler.spec.ts +59 -0
- package/src/common/diagram/request-type-hints-action-handler.ts +36 -0
- package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +51 -0
- package/src/common/features/contextactions/command-palette-action-provider.ts +94 -0
- package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +69 -0
- package/src/common/features/contextactions/context-actions-provider-registry.ts +47 -0
- package/src/common/features/contextactions/context-actions-provider.ts +36 -0
- package/src/common/features/contextactions/context-menu-item-provider.ts +52 -0
- package/src/common/features/contextactions/request-context-actions-handler.spec.ts +75 -0
- package/src/common/features/contextactions/request-context-actions-handler.ts +37 -0
- package/src/common/features/contextactions/tool-palette-item-provider.spec.ts +46 -0
- package/src/common/features/contextactions/tool-palette-item-provider.ts +90 -0
- package/src/common/features/directediting/context-edit-validator-registry.spec.ts +54 -0
- package/src/common/features/directediting/context-edit-validator-registry.ts +43 -0
- package/src/common/features/directediting/context-edit-validator.ts +55 -0
- package/src/common/features/directediting/label-edit-validator.ts +35 -0
- package/src/common/features/directediting/request-edit-validation-handler.spec.ts +131 -0
- package/src/common/features/directediting/request-edit-validation-handler.ts +43 -0
- package/src/common/features/layout/layout-engine.ts +31 -0
- package/src/common/features/layout/layout-operation-handler.ts +47 -0
- package/src/common/features/model/gmodel-factory.ts +60 -0
- package/src/common/features/model/gmodel-index.ts +195 -0
- package/src/common/features/model/gmodel-serializer.spec.ts +141 -0
- package/src/common/features/model/gmodel-serializer.ts +175 -0
- package/src/common/features/model/model-state.ts +101 -0
- package/src/common/features/model/model-submission-handler.ts +106 -0
- package/src/common/features/model/request-model-action-handler.ts +67 -0
- package/src/common/features/model/save-model-action-handler.ts +38 -0
- package/src/common/features/model/source-model-storage.ts +49 -0
- package/src/common/features/navigation/json-opener-options.ts +69 -0
- package/src/common/features/navigation/navigation-target-provider-registry.ts +36 -0
- package/src/common/features/navigation/navigation-target-provider.ts +50 -0
- package/src/common/features/navigation/navigation-target-resolution.ts +22 -0
- package/src/common/features/navigation/navigation-target-resolver.ts +61 -0
- package/src/common/features/navigation/request-navigation-targets-action-handler.ts +39 -0
- package/src/common/features/navigation/resolve-navigation-targets-action-handler.ts +42 -0
- package/src/common/features/popup/popup-model-factory.ts +38 -0
- package/src/common/features/popup/request-popup-model-action-handler.ts +60 -0
- package/src/common/features/validation/model-validator.ts +34 -0
- package/src/common/features/validation/request-markers-handler.ts +51 -0
- package/src/common/gmodel/README.md +7 -0
- package/src/common/gmodel/apply-label-edit-operation-handler.spec.ts +40 -0
- package/src/common/gmodel/apply-label-edit-operation-handler.ts +38 -0
- package/src/common/gmodel/change-bounds-operation-handler.ts +58 -0
- package/src/common/gmodel/change-routing-points-operation-handler.ts +39 -0
- package/src/common/gmodel/computed-bounds-action-handler.ts +51 -0
- package/src/common/gmodel/delete-operation-handler.ts +115 -0
- package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +58 -0
- package/src/common/gmodel/gmodel-create-node-operation-handler.ts +47 -0
- package/src/common/gmodel/gmodel-diagram-module.ts +81 -0
- package/src/common/gmodel/index.ts +26 -0
- package/src/common/gmodel/paste-operation-handler.ts +119 -0
- package/src/common/gmodel/reconnect-edge-operation-handler.ts +55 -0
- package/src/common/index.ts +88 -0
- package/src/common/launch/glsp-server-launcher.ts +70 -0
- package/src/common/operations/compound-operation-handler.ts +38 -0
- package/src/common/operations/create-operation-handler.ts +106 -0
- package/src/common/operations/cut-operation-handler.ts +38 -0
- package/src/common/operations/operation-action-handler.ts +69 -0
- package/src/common/operations/operation-handler-registry.spec.ts +50 -0
- package/src/common/operations/operation-handler-registry.ts +51 -0
- package/src/common/operations/operation-handler.ts +57 -0
- package/src/common/protocol/glsp-client-proxy.ts +65 -0
- package/src/common/protocol/glsp-server-listener.ts +39 -0
- package/src/common/protocol/glsp-server.spec.ts +150 -0
- package/src/common/protocol/glsp-server.ts +320 -0
- package/src/common/session/client-session-factory.spec.ts +60 -0
- package/src/common/session/client-session-factory.ts +70 -0
- package/src/common/session/client-session-initializer.ts +27 -0
- package/src/common/session/client-session-listener.ts +41 -0
- package/src/common/session/client-session-manager.spec.ts +82 -0
- package/src/common/session/client-session-manager.ts +182 -0
- package/src/common/session/client-session.ts +62 -0
- package/src/common/test/mock-util.ts +256 -0
- package/src/common/utils/args-util.ts +98 -0
- package/src/common/utils/client-options-util.ts +22 -0
- package/src/common/utils/glsp-server-error.ts +27 -0
- package/src/common/utils/layout-util.ts +164 -0
- package/src/common/utils/logger.ts +72 -0
- package/src/common/utils/promise-queue.spec.ts +138 -0
- package/src/common/utils/promise-queue.ts +103 -0
- package/src/common/utils/registry.spec.ts +223 -0
- package/src/common/utils/registry.ts +154 -0
- package/src/node/abstract-json-model-storage.ts +114 -0
- package/src/node/di/app-module.ts +102 -0
- package/src/node/di/winston-logger.ts +76 -0
- package/src/node/gmodel/gmodel-storage.ts +53 -0
- package/src/node/index.ts +23 -0
- package/src/node/launch/cli-parser.spec.ts +61 -0
- package/src/node/launch/cli-parser.ts +86 -0
- package/src/node/launch/socket-cli-parser.spec.ts +73 -0
- package/src/node/launch/socket-cli-parser.ts +52 -0
- package/src/node/launch/socket-server-launcher.spec.ts +68 -0
- package/src/node/launch/socket-server-launcher.ts +90 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { GEdge, GModelElement, GNode } from '@eclipse-glsp/graph';
|
|
17
|
+
import { DeleteElementOperation, MaybePromise } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { inject, injectable } from 'inversify';
|
|
19
|
+
import { GModelIndex } from '../features/model/gmodel-index';
|
|
20
|
+
import { ModelState } from '../features/model/model-state';
|
|
21
|
+
import { OperationHandler } from '../operations/operation-handler';
|
|
22
|
+
import { Logger } from '../utils/logger';
|
|
23
|
+
|
|
24
|
+
@injectable()
|
|
25
|
+
export class GModelDeleteOperationHandler implements OperationHandler {
|
|
26
|
+
@inject(Logger)
|
|
27
|
+
protected logger: Logger;
|
|
28
|
+
|
|
29
|
+
protected allDependantsIds: Set<string>;
|
|
30
|
+
|
|
31
|
+
@inject(ModelState) protected readonly modelState: ModelState;
|
|
32
|
+
|
|
33
|
+
get operationType(): string {
|
|
34
|
+
return DeleteElementOperation.KIND;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
execute(operation: DeleteElementOperation): MaybePromise<void> {
|
|
38
|
+
const elementIds = operation.elementIds;
|
|
39
|
+
if (!elementIds || elementIds.length === 0) {
|
|
40
|
+
this.logger.warn('Elements to delete are not specified');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const index = this.modelState.index;
|
|
44
|
+
this.allDependantsIds = new Set<string>();
|
|
45
|
+
const success = elementIds.every(eId => this.delete(eId, index));
|
|
46
|
+
if (!success) {
|
|
47
|
+
this.logger.warn('Could not delete all elements as requested (see messages above to find out why)');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected delete(elementId: string, index: GModelIndex): boolean {
|
|
52
|
+
if (this.allDependantsIds.has(elementId)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const element = index.find(elementId);
|
|
57
|
+
if (!element) {
|
|
58
|
+
this.logger.warn('Element not found: ' + elementId);
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const nodeToDelete = this.findTopLevelElement(element);
|
|
63
|
+
if (!nodeToDelete.parent) {
|
|
64
|
+
this.logger.warn("The requested node doesn't have a parent; it can't be deleted");
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const dependents = new Set<GModelElement>();
|
|
69
|
+
this.collectDependents(dependents, nodeToDelete);
|
|
70
|
+
|
|
71
|
+
dependents.forEach(dependant => {
|
|
72
|
+
const index = this.modelState.root.children.findIndex(element => element === dependant);
|
|
73
|
+
if (index > -1) {
|
|
74
|
+
this.modelState.root.children.splice(index, 1);
|
|
75
|
+
}
|
|
76
|
+
this.allDependantsIds.add(dependant.id);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
protected collectDependents(dependents: Set<GModelElement>, nodeToDelete: GModelElement): void {
|
|
83
|
+
if (dependents.has(nodeToDelete)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (nodeToDelete.children.length > 0) {
|
|
88
|
+
nodeToDelete.children.forEach(child => this.collectDependents(dependents, child));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (nodeToDelete instanceof GNode) {
|
|
92
|
+
const index = this.modelState.index;
|
|
93
|
+
index.getIncomingEdges(nodeToDelete).forEach(incoming => {
|
|
94
|
+
this.collectDependents(dependents, incoming);
|
|
95
|
+
});
|
|
96
|
+
index.getOutgoingEdges(nodeToDelete).forEach(outgoing => {
|
|
97
|
+
this.collectDependents(dependents, outgoing);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
dependents.add(nodeToDelete);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
protected findTopLevelElement(element: GModelElement): GModelElement {
|
|
105
|
+
if (element instanceof GNode || element instanceof GEdge) {
|
|
106
|
+
return element;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const parent = element.parent;
|
|
110
|
+
if (!parent) {
|
|
111
|
+
return element;
|
|
112
|
+
}
|
|
113
|
+
return this.findTopLevelElement(parent);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { GEdge, GModelElement, GPort } from '@eclipse-glsp/graph';
|
|
18
|
+
import { GNode } from '@eclipse-glsp/graph/lib/gnode';
|
|
19
|
+
import { CreateEdgeOperation } from '@eclipse-glsp/protocol';
|
|
20
|
+
import { inject, injectable } from 'inversify';
|
|
21
|
+
import { ModelState } from '../features/model/model-state';
|
|
22
|
+
import { CreateOperationHandler } from '../operations/create-operation-handler';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* An abstract base implementation of {@link CreateEdgeOperation} handlers for diagram implementations
|
|
26
|
+
* where the graphical model is also directly used as source model.
|
|
27
|
+
* (i.e. all operation handlers directly modify the graphical model).
|
|
28
|
+
*/
|
|
29
|
+
@injectable()
|
|
30
|
+
export abstract class GModelCreateEdgeOperationHandler extends CreateOperationHandler {
|
|
31
|
+
@inject(ModelState)
|
|
32
|
+
protected modelState: ModelState;
|
|
33
|
+
|
|
34
|
+
get operationType(): string {
|
|
35
|
+
return CreateEdgeOperation.KIND;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
execute(operation: CreateEdgeOperation): void {
|
|
39
|
+
const index = this.modelState.index;
|
|
40
|
+
|
|
41
|
+
const source = index.find(operation.sourceElementId, element => element instanceof GNode || element instanceof GPort);
|
|
42
|
+
const target = index.find(operation.targetElementId, element => element instanceof GNode || element instanceof GPort);
|
|
43
|
+
|
|
44
|
+
if (!source || !target) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
`Invalid source or target for source ID ${operation.sourceElementId} and target ID ${operation.targetElementId}`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const connection = this.createEdge(source, target);
|
|
51
|
+
if (connection) {
|
|
52
|
+
const currentModel = this.modelState.root;
|
|
53
|
+
currentModel.children.push(connection);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
abstract createEdge(source: GModelElement, target: GModelElement): GEdge | undefined;
|
|
58
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { GNode } from '@eclipse-glsp/graph';
|
|
18
|
+
import { CreateNodeOperation, Point, SelectAction } from '@eclipse-glsp/protocol';
|
|
19
|
+
import { inject, injectable } from 'inversify';
|
|
20
|
+
import { ActionDispatcher } from '../actions/action-dispatcher';
|
|
21
|
+
import { CreateNodeOperationHandler } from '../operations/create-operation-handler';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* An abstract base implementation of {@link CreateNodeOperationHandler} for diagram implementations
|
|
25
|
+
* where the graphical model is also directly used as source model.
|
|
26
|
+
* (i.e. all operation handlers directly modify the graphical model).
|
|
27
|
+
*/
|
|
28
|
+
@injectable()
|
|
29
|
+
export abstract class GModelCreateNodeOperationHandler extends CreateNodeOperationHandler {
|
|
30
|
+
@inject(ActionDispatcher)
|
|
31
|
+
protected actionDispatcher: ActionDispatcher;
|
|
32
|
+
|
|
33
|
+
abstract override elementTypeIds: string[];
|
|
34
|
+
|
|
35
|
+
execute(operation: CreateNodeOperation): void {
|
|
36
|
+
const container = this.getContainer(operation) ?? this.modelState.root;
|
|
37
|
+
const relativeLocation = this.getRelativeLocation(operation);
|
|
38
|
+
const element = this.createNode(operation, relativeLocation);
|
|
39
|
+
if (element) {
|
|
40
|
+
container.children.push(element);
|
|
41
|
+
element.parent = container;
|
|
42
|
+
this.actionDispatcher.dispatchAfterNextUpdate(SelectAction.create({ selectedElementsIDs: [element.id] }));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
abstract createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined;
|
|
47
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { ActionHandlerConstructor } from '../actions/action-handler';
|
|
18
|
+
import { BindingTarget } from '../di/binding-target';
|
|
19
|
+
import { DiagramModule } from '../di/diagram-module';
|
|
20
|
+
import { InstanceMultiBinding } from '../di/multi-binding';
|
|
21
|
+
import { RequestClipboardDataActionHandler } from '../features/clipboard/request-clipboard-data-action-handler';
|
|
22
|
+
import { LayoutOperationHandler } from '../features/layout/layout-operation-handler';
|
|
23
|
+
import { GModelFactory, GModelFactoryNullImpl } from '../features/model/gmodel-factory';
|
|
24
|
+
import { DefaultModelState, ModelState } from '../features/model/model-state';
|
|
25
|
+
import { SaveModelActionHandler } from '../features/model/save-model-action-handler';
|
|
26
|
+
import { CutOperationHandler } from '../operations/cut-operation-handler';
|
|
27
|
+
import { OperationHandlerConstructor } from '../operations/operation-handler';
|
|
28
|
+
import { ApplyLabelEditOperationHandler } from './apply-label-edit-operation-handler';
|
|
29
|
+
import { ChangeBoundsOperationHandler } from './change-bounds-operation-handler';
|
|
30
|
+
import { ChangeRoutingPointsOperationHandler } from './change-routing-points-operation-handler';
|
|
31
|
+
import { ComputedBoundsActionHandler } from './computed-bounds-action-handler';
|
|
32
|
+
import { GModelDeleteOperationHandler } from './delete-operation-handler';
|
|
33
|
+
import { PasteOperationHandler } from './paste-operation-handler';
|
|
34
|
+
import { ReconnectEdgeOperationHandler } from './reconnect-edge-operation-handler';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Extension of the {@link DiagramModule} to provide GModel integration.
|
|
38
|
+
*
|
|
39
|
+
* Contains all bindings of {@link DiagramModule}.
|
|
40
|
+
*
|
|
41
|
+
* Additionally binds:
|
|
42
|
+
* - {@link CommandStack} to {@link DefaultCommandStack}
|
|
43
|
+
* - {@link ModelState} to {@link ModelState}
|
|
44
|
+
* - {@link GModelFactory} to {@link GModelFactoryNullImpl}
|
|
45
|
+
* - {@link GModelIndex} to self
|
|
46
|
+
* - {@link ComputedBoundsActionHandler} to {@link ActionHandler}
|
|
47
|
+
* - {@link RequestClipboardDataActionHandler} to {@link ActionHandler}
|
|
48
|
+
* - {@link ApplyLabelEditOperationHandler} to {@link OperationHandler}
|
|
49
|
+
* - {@link ChangeBoundsOperationHandler} to {@link OperationHandler}
|
|
50
|
+
* - {@link CutOperationHandler} to {@link OperationHandler}
|
|
51
|
+
* - {@link PasteOperationHandler} to {@link OperationHandler}
|
|
52
|
+
*/
|
|
53
|
+
@injectable()
|
|
54
|
+
export abstract class GModelDiagramModule extends DiagramModule {
|
|
55
|
+
protected override bindGModelFactory(): BindingTarget<GModelFactory> {
|
|
56
|
+
return GModelFactoryNullImpl;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
protected bindModelState(): BindingTarget<ModelState> {
|
|
60
|
+
return DefaultModelState;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
protected override configureActionHandlers(binding: InstanceMultiBinding<ActionHandlerConstructor>): void {
|
|
64
|
+
super.configureActionHandlers(binding);
|
|
65
|
+
binding.add(ComputedBoundsActionHandler);
|
|
66
|
+
binding.add(SaveModelActionHandler);
|
|
67
|
+
binding.add(RequestClipboardDataActionHandler);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
protected override configureOperationHandlers(binding: InstanceMultiBinding<OperationHandlerConstructor>): void {
|
|
71
|
+
super.configureOperationHandlers(binding);
|
|
72
|
+
binding.add(ApplyLabelEditOperationHandler);
|
|
73
|
+
binding.add(ChangeBoundsOperationHandler);
|
|
74
|
+
binding.add(CutOperationHandler);
|
|
75
|
+
binding.add(GModelDeleteOperationHandler);
|
|
76
|
+
binding.add(PasteOperationHandler);
|
|
77
|
+
binding.add(ReconnectEdgeOperationHandler);
|
|
78
|
+
binding.add(LayoutOperationHandler);
|
|
79
|
+
binding.add(ChangeRoutingPointsOperationHandler);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
export * from './apply-label-edit-operation-handler';
|
|
18
|
+
export * from './change-bounds-operation-handler';
|
|
19
|
+
export * from './change-routing-points-operation-handler';
|
|
20
|
+
export * from './computed-bounds-action-handler';
|
|
21
|
+
export * from './delete-operation-handler';
|
|
22
|
+
export * from './gmodel-create-edge-operation-handler';
|
|
23
|
+
export * from './gmodel-create-node-operation-handler';
|
|
24
|
+
export * from './gmodel-diagram-module';
|
|
25
|
+
export * from './paste-operation-handler';
|
|
26
|
+
export * from './reconnect-edge-operation-handler';
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { GBoundsAware, GEdge, GModelElement, isGBoundsAware } from '@eclipse-glsp/graph';
|
|
17
|
+
import { MaybePromise, PasteOperation, Point, SModelElementSchema } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { inject, injectable } from 'inversify';
|
|
19
|
+
import * as uuid from 'uuid';
|
|
20
|
+
import { GModelSerializer } from '../features/model/gmodel-serializer';
|
|
21
|
+
import { ModelState } from '../features/model/model-state';
|
|
22
|
+
import { OperationHandler } from '../operations/operation-handler';
|
|
23
|
+
|
|
24
|
+
@injectable()
|
|
25
|
+
export class PasteOperationHandler implements OperationHandler {
|
|
26
|
+
operationType = PasteOperation.KIND;
|
|
27
|
+
|
|
28
|
+
protected readonly DEFAULT_OFFSET = 20;
|
|
29
|
+
|
|
30
|
+
@inject(ModelState)
|
|
31
|
+
protected modelState: ModelState;
|
|
32
|
+
|
|
33
|
+
@inject(GModelSerializer)
|
|
34
|
+
protected modelSerializer: GModelSerializer;
|
|
35
|
+
|
|
36
|
+
execute(operation: PasteOperation): MaybePromise<void> {
|
|
37
|
+
const schemas: SModelElementSchema[] = JSON.parse(operation.clipboardData['application/json']);
|
|
38
|
+
const elements = schemas.map(schema => this.modelSerializer.createElement(schema, this.modelState.root));
|
|
39
|
+
shift(elements, this.computeOffset(elements, operation.editorContext.lastMousePosition));
|
|
40
|
+
const idMap = this.reassignIds(elements);
|
|
41
|
+
this.filterElements(elements, idMap);
|
|
42
|
+
this.rewireEdges(elements, idMap);
|
|
43
|
+
|
|
44
|
+
this.modelState.root.children.push(...elements);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected computeOffset(elements: GModelElement[], lastMousePosition?: Point): Point {
|
|
48
|
+
const offset = { x: this.DEFAULT_OFFSET, y: this.DEFAULT_OFFSET };
|
|
49
|
+
if (lastMousePosition) {
|
|
50
|
+
const referenceElement = this.getReferenceElementForPasteOffset(elements);
|
|
51
|
+
if (referenceElement) {
|
|
52
|
+
const position = referenceElement.position ?? Point.ORIGIN;
|
|
53
|
+
offset.x = lastMousePosition.x - position.x;
|
|
54
|
+
offset.y = lastMousePosition.y - position.y;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return offset;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
protected getReferenceElementForPasteOffset(elements: GModelElement[]): GBoundsAware | undefined {
|
|
61
|
+
let minY = Number.MAX_VALUE;
|
|
62
|
+
for (const element of elements) {
|
|
63
|
+
if (isGBoundsAware(element)) {
|
|
64
|
+
const position = element.position ?? Point.ORIGIN;
|
|
65
|
+
if (minY > position.y) {
|
|
66
|
+
minY = position.y;
|
|
67
|
+
return element;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
protected reassignIds(elements: GModelElement[]): Map<string, string> {
|
|
75
|
+
const idMap = new Map<string, string>();
|
|
76
|
+
elements.forEach(element => {
|
|
77
|
+
const newId = uuid.v4();
|
|
78
|
+
idMap.set(element.id, newId);
|
|
79
|
+
element.id = newId;
|
|
80
|
+
const childMap = this.reassignIds(element.children);
|
|
81
|
+
childMap.forEach((value, key) => {
|
|
82
|
+
idMap.set(key, value);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
return idMap;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
protected filterElements(elements: GModelElement[], idMap: Map<string, string>): void {
|
|
89
|
+
elements.filter(e => !this.shouldExcludeElement(e, idMap));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
protected shouldExcludeElement(element: GModelElement, idMap: Map<string, string>): boolean {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
protected rewireEdges(elements: GModelElement[], idMap: Map<string, string>): void {
|
|
97
|
+
const edges = elements.filter(element => element instanceof GEdge) as GEdge[];
|
|
98
|
+
edges.forEach(edge => {
|
|
99
|
+
const sourceId = idMap.get(edge.sourceId);
|
|
100
|
+
if (sourceId) {
|
|
101
|
+
edge.sourceId = sourceId;
|
|
102
|
+
}
|
|
103
|
+
const targetId = idMap.get(edge.targetId);
|
|
104
|
+
if (targetId) {
|
|
105
|
+
edge.targetId = targetId;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function shift(elements: GModelElement[], offset: Point): void {
|
|
112
|
+
elements
|
|
113
|
+
.filter(element => isGBoundsAware(element))
|
|
114
|
+
.map(element => element as unknown as GBoundsAware)
|
|
115
|
+
.forEach(gBoundsAware => {
|
|
116
|
+
const position = gBoundsAware.position ?? Point.ORIGIN;
|
|
117
|
+
gBoundsAware.position = { x: position.x + offset.x, y: position.y + offset.y };
|
|
118
|
+
});
|
|
119
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { GEdge, GNode, GPort } from '@eclipse-glsp/graph';
|
|
17
|
+
import { MaybePromise, ReconnectEdgeOperation } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { inject, injectable } from 'inversify';
|
|
19
|
+
import { ModelState } from '../features/model/model-state';
|
|
20
|
+
import { OperationHandler } from '../operations/operation-handler';
|
|
21
|
+
import { GLSPServerError } from '../utils/glsp-server-error';
|
|
22
|
+
|
|
23
|
+
@injectable()
|
|
24
|
+
export class ReconnectEdgeOperationHandler implements OperationHandler {
|
|
25
|
+
operationType = ReconnectEdgeOperation.KIND;
|
|
26
|
+
|
|
27
|
+
@inject(ModelState)
|
|
28
|
+
protected readonly modelState: ModelState;
|
|
29
|
+
|
|
30
|
+
execute(operation: ReconnectEdgeOperation): MaybePromise<void> {
|
|
31
|
+
if (!operation.edgeElementId || !operation.sourceElementId || !operation.targetElementId) {
|
|
32
|
+
throw new GLSPServerError('Incomplete reconnect connection action');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const index = this.modelState.index;
|
|
36
|
+
|
|
37
|
+
const edge = index.findByClass(operation.edgeElementId, GEdge);
|
|
38
|
+
const source = index.findByClass(operation.sourceElementId, GNode || GPort);
|
|
39
|
+
const target = index.findByClass(operation.targetElementId, GNode || GPort);
|
|
40
|
+
|
|
41
|
+
if (!edge) {
|
|
42
|
+
throw new Error(`Invalid edge: edge ID ${operation.edgeElementId}`);
|
|
43
|
+
}
|
|
44
|
+
if (!source) {
|
|
45
|
+
throw new Error(`Invalid source: source ID ${operation.sourceElementId}`);
|
|
46
|
+
}
|
|
47
|
+
if (!target) {
|
|
48
|
+
throw new Error(`Invalid target: target ID ${operation.targetElementId}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
edge.sourceId = source.id;
|
|
52
|
+
edge.targetId = target.id;
|
|
53
|
+
edge.routingPoints = [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
export * from '@eclipse-glsp/graph';
|
|
18
|
+
export * from '@eclipse-glsp/protocol';
|
|
19
|
+
export * from './actions/action-dispatcher';
|
|
20
|
+
export * from './actions/action-handler';
|
|
21
|
+
export * from './actions/action-handler-registry';
|
|
22
|
+
export * from './actions/client-action-handler';
|
|
23
|
+
export * from './actions/global-action-provider';
|
|
24
|
+
export * from './command/command';
|
|
25
|
+
export * from './command/command-stack';
|
|
26
|
+
export * from './di/binding-target';
|
|
27
|
+
export * from './di/client-session-module';
|
|
28
|
+
export * from './di/diagram-module';
|
|
29
|
+
export * from './di/glsp-module';
|
|
30
|
+
export * from './di/multi-binding';
|
|
31
|
+
export * from './di/server-module';
|
|
32
|
+
export * from './di/service-identifiers';
|
|
33
|
+
export * from './diagram/diagram-configuration';
|
|
34
|
+
export * from './diagram/request-type-hints-action-handler';
|
|
35
|
+
export * from './features/clipboard/request-clipboard-data-action-handler';
|
|
36
|
+
export * from './features/contextactions/command-palette-action-provider';
|
|
37
|
+
export * from './features/contextactions/context-actions-provider';
|
|
38
|
+
export * from './features/contextactions/context-actions-provider-registry';
|
|
39
|
+
export * from './features/contextactions/context-menu-item-provider';
|
|
40
|
+
export * from './features/contextactions/request-context-actions-handler';
|
|
41
|
+
export * from './features/contextactions/tool-palette-item-provider';
|
|
42
|
+
export * from './features/directediting/context-edit-validator';
|
|
43
|
+
export * from './features/directediting/context-edit-validator-registry';
|
|
44
|
+
export * from './features/directediting/label-edit-validator';
|
|
45
|
+
export * from './features/directediting/request-edit-validation-handler';
|
|
46
|
+
export * from './features/layout/layout-engine';
|
|
47
|
+
export * from './features/layout/layout-operation-handler';
|
|
48
|
+
export * from './features/model/gmodel-factory';
|
|
49
|
+
export * from './features/model/gmodel-index';
|
|
50
|
+
export * from './features/model/gmodel-serializer';
|
|
51
|
+
export * from './features/model/model-state';
|
|
52
|
+
export * from './features/model/model-submission-handler';
|
|
53
|
+
export * from './features/model/request-model-action-handler';
|
|
54
|
+
export * from './features/model/save-model-action-handler';
|
|
55
|
+
export * from './features/model/source-model-storage';
|
|
56
|
+
export * from './features/navigation/json-opener-options';
|
|
57
|
+
export * from './features/navigation/navigation-target-provider';
|
|
58
|
+
export * from './features/navigation/navigation-target-provider-registry';
|
|
59
|
+
export * from './features/navigation/navigation-target-resolution';
|
|
60
|
+
export * from './features/navigation/navigation-target-resolver';
|
|
61
|
+
export * from './features/navigation/request-navigation-targets-action-handler';
|
|
62
|
+
export * from './features/navigation/resolve-navigation-targets-action-handler';
|
|
63
|
+
export * from './features/popup/popup-model-factory';
|
|
64
|
+
export * from './features/popup/request-popup-model-action-handler';
|
|
65
|
+
export * from './features/validation/model-validator';
|
|
66
|
+
export * from './features/validation/request-markers-handler';
|
|
67
|
+
export * from './gmodel/index';
|
|
68
|
+
export * from './launch/glsp-server-launcher';
|
|
69
|
+
export * from './operations/compound-operation-handler';
|
|
70
|
+
export * from './operations/create-operation-handler';
|
|
71
|
+
export * from './operations/cut-operation-handler';
|
|
72
|
+
export * from './operations/operation-action-handler';
|
|
73
|
+
export * from './operations/operation-handler';
|
|
74
|
+
export * from './operations/operation-handler-registry';
|
|
75
|
+
export * from './protocol/glsp-client-proxy';
|
|
76
|
+
export * from './protocol/glsp-server';
|
|
77
|
+
export * from './protocol/glsp-server-listener';
|
|
78
|
+
export * from './session/client-session';
|
|
79
|
+
export * from './session/client-session-factory';
|
|
80
|
+
export * from './session/client-session-initializer';
|
|
81
|
+
export * from './session/client-session-listener';
|
|
82
|
+
export * from './session/client-session-manager';
|
|
83
|
+
export * from './utils/args-util';
|
|
84
|
+
export * from './utils/client-options-util';
|
|
85
|
+
export * from './utils/glsp-server-error';
|
|
86
|
+
export * from './utils/logger';
|
|
87
|
+
export * from './utils/promise-queue';
|
|
88
|
+
export * from './utils/registry';
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { MaybePromise } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { Container, ContainerModule, inject, injectable, optional } from 'inversify';
|
|
18
|
+
import { ServerModule } from '../di/server-module';
|
|
19
|
+
import { InjectionContainer } from '../di/service-identifiers';
|
|
20
|
+
import { Logger } from '../utils/logger';
|
|
21
|
+
|
|
22
|
+
export const START_UP_COMPLETE_MSG = '[GLSP-Server]:Startup completed';
|
|
23
|
+
|
|
24
|
+
@injectable()
|
|
25
|
+
export abstract class GLSPServerLauncher<T = undefined> {
|
|
26
|
+
@inject(Logger) protected logger: Logger;
|
|
27
|
+
|
|
28
|
+
protected _modules: ContainerModule[] = [];
|
|
29
|
+
protected running: boolean;
|
|
30
|
+
|
|
31
|
+
@inject(InjectionContainer) @optional() protected parentContainer?: Container;
|
|
32
|
+
|
|
33
|
+
configure(serverModule: ServerModule, ...additionalModules: ContainerModule[]): void {
|
|
34
|
+
this._modules.push(serverModule, ...additionalModules);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
createContainer(): Container {
|
|
38
|
+
const container = this.parentContainer ? this.parentContainer.createChild() : new Container();
|
|
39
|
+
container.load(...this._modules);
|
|
40
|
+
return container;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
start(startParams?: T): MaybePromise<void> {
|
|
44
|
+
if (!this.running) {
|
|
45
|
+
this.running = true;
|
|
46
|
+
return this.run(startParams);
|
|
47
|
+
}
|
|
48
|
+
this.logger.warn('Could not start launcher. Launcher is already running!');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected abstract run(startParams?: T): MaybePromise<void>;
|
|
52
|
+
|
|
53
|
+
shutdown(): MaybePromise<void> {
|
|
54
|
+
if (this.running) {
|
|
55
|
+
const result = this.stop();
|
|
56
|
+
this.running = false;
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
this.logger.warn('Could not stop launcher. Launcher is not running!');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
protected abstract stop(): MaybePromise<void>;
|
|
63
|
+
|
|
64
|
+
get modules(): ContainerModule[] {
|
|
65
|
+
if (!this._modules) {
|
|
66
|
+
throw new Error('The GLSPServerLauncher has not been configured yet');
|
|
67
|
+
}
|
|
68
|
+
return this._modules;
|
|
69
|
+
}
|
|
70
|
+
}
|