@eclipse-glsp/server 1.1.0-RC05
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 +67 -0
- package/lib/common/command/command-stack.d.ts.map +1 -0
- package/lib/common/command/command-stack.js +117 -0
- package/lib/common/command/command-stack.js.map +1 -0
- package/lib/common/command/command-stack.spec.d.ts +2 -0
- package/lib/common/command/command-stack.spec.d.ts.map +1 -0
- package/lib/common/command/command-stack.spec.js +207 -0
- package/lib/common/command/command-stack.spec.js.map +1 -0
- package/lib/common/command/command.d.ts +63 -0
- package/lib/common/command/command.d.ts.map +1 -0
- package/lib/common/command/command.js +87 -0
- package/lib/common/command/command.js.map +1 -0
- package/lib/common/command/command.spec.d.ts +2 -0
- package/lib/common/command/command.spec.d.ts.map +1 -0
- package/lib/common/command/command.spec.js +86 -0
- package/lib/common/command/command.spec.js.map +1 -0
- package/lib/common/command/recording-command.d.ts +75 -0
- package/lib/common/command/recording-command.d.ts.map +1 -0
- package/lib/common/command/recording-command.js +99 -0
- package/lib/common/command/recording-command.js.map +1 -0
- package/lib/common/command/recording-command.spec.d.ts +17 -0
- package/lib/common/command/recording-command.spec.d.ts.map +1 -0
- package/lib/common/command/recording-command.spec.js +62 -0
- package/lib/common/command/recording-command.spec.js.map +1 -0
- package/lib/common/command/undo-redo-action-handler.d.ts +28 -0
- package/lib/common/command/undo-redo-action-handler.d.ts.map +1 -0
- package/lib/common/command/undo-redo-action-handler.js +72 -0
- package/lib/common/command/undo-redo-action-handler.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 +130 -0
- package/lib/common/di/diagram-module.d.ts.map +1 -0
- package/lib/common/di/diagram-module.js +295 -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 +86 -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/computed-bounds-action-handler.d.ts +34 -0
- package/lib/common/features/layout/computed-bounds-action-handler.d.ts.map +1 -0
- package/lib/common/features/layout/computed-bounds-action-handler.js +55 -0
- package/lib/common/features/layout/computed-bounds-action-handler.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 +37 -0
- package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
- package/lib/common/features/layout/layout-operation-handler.js +82 -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 +51 -0
- package/lib/common/features/model/model-state.d.ts.map +1 -0
- package/lib/common/features/model/model-state.js +74 -0
- package/lib/common/features/model/model-state.js.map +1 -0
- package/lib/common/features/model/model-submission-handler.d.ts +58 -0
- package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
- package/lib/common/features/model/model-submission-handler.js +102 -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 +8 -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 +46 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
- package/lib/common/gmodel/change-bounds-operation-handler.d.ts +13 -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 +50 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
- package/lib/common/gmodel/cut-operation-handler.d.ts +26 -0
- package/lib/common/gmodel/cut-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/cut-operation-handler.js +55 -0
- package/lib/common/gmodel/cut-operation-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 +119 -0
- package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +35 -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 +64 -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 +58 -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 +100 -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 +80 -0
- package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
- package/lib/common/gmodel/gmodel-operation-handler.d.ts +23 -0
- package/lib/common/gmodel/gmodel-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-operation-handler.js +43 -0
- package/lib/common/gmodel/gmodel-operation-handler.js.map +1 -0
- package/lib/common/gmodel/index.d.ts +27 -0
- package/lib/common/gmodel/index.d.ts.map +1 -0
- package/lib/common/gmodel/index.js +43 -0
- package/lib/common/gmodel/index.js.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts +36 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.js +136 -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 +64 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
- package/lib/common/index.d.ts +89 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +105 -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 +82 -0
- package/lib/common/operations/compound-operation-handler.js.map +1 -0
- package/lib/common/operations/create-operation-handler.d.ts +32 -0
- package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/create-operation-handler.js +31 -0
- package/lib/common/operations/create-operation-handler.js.map +1 -0
- package/lib/common/operations/operation-action-handler.d.ts +42 -0
- package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-action-handler.js +109 -0
- package/lib/common/operations/operation-action-handler.js.map +1 -0
- package/lib/common/operations/operation-handler-registry.d.ts +38 -0
- package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
- package/lib/common/operations/operation-handler-registry.js +87 -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 +67 -0
- package/lib/common/operations/operation-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-handler.js +56 -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 +117 -0
- package/lib/common/test/mock-util.d.ts.map +1 -0
- package/lib/common/test/mock-util.js +194 -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 +77 -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.spec.ts +239 -0
- package/src/common/command/command-stack.ts +159 -0
- package/src/common/command/command.spec.ts +93 -0
- package/src/common/command/command.ts +124 -0
- package/src/common/command/recording-command.spec.ts +74 -0
- package/src/common/command/recording-command.ts +119 -0
- package/src/common/command/undo-redo-action-handler.ts +57 -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 +410 -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 +88 -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/computed-bounds-action-handler.ts +56 -0
- package/src/common/features/layout/layout-engine.ts +31 -0
- package/src/common/features/layout/layout-operation-handler.ts +62 -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 +98 -0
- package/src/common/features/model/model-submission-handler.ts +110 -0
- package/src/common/features/model/request-model-action-handler.ts +67 -0
- package/src/common/features/model/save-model-action-handler.ts +37 -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.ts +36 -0
- package/src/common/gmodel/change-bounds-operation-handler.ts +62 -0
- package/src/common/gmodel/change-routing-points-operation-handler.ts +40 -0
- package/src/common/gmodel/cut-operation-handler.ts +39 -0
- package/src/common/gmodel/delete-operation-handler.ts +121 -0
- package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +64 -0
- package/src/common/gmodel/gmodel-create-node-operation-handler.ts +95 -0
- package/src/common/gmodel/gmodel-diagram-module.ts +76 -0
- package/src/common/gmodel/gmodel-operation-handler.ts +31 -0
- package/src/common/gmodel/index.ts +27 -0
- package/src/common/gmodel/paste-operation-handler.ts +127 -0
- package/src/common/gmodel/reconnect-edge-operation-handler.ts +56 -0
- package/src/common/index.ts +89 -0
- package/src/common/launch/glsp-server-launcher.ts +70 -0
- package/src/common/operations/compound-operation-handler.ts +40 -0
- package/src/common/operations/create-operation-handler.ts +49 -0
- package/src/common/operations/operation-action-handler.ts +93 -0
- package/src/common/operations/operation-handler-registry.spec.ts +50 -0
- package/src/common/operations/operation-handler-registry.ts +66 -0
- package/src/common/operations/operation-handler.ts +82 -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 +241 -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,66 @@
|
|
|
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 { ContainerModule, injectable, interfaces } from 'inversify';
|
|
17
|
+
import { AbstractMultiBinding } from './multi-binding';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A wrapper interface to get access to the binding related functions
|
|
21
|
+
* for a inversify container.
|
|
22
|
+
*/
|
|
23
|
+
export interface ModuleContext {
|
|
24
|
+
bind: interfaces.Bind;
|
|
25
|
+
unbind: interfaces.Unbind;
|
|
26
|
+
isBound: interfaces.IsBound;
|
|
27
|
+
rebind: interfaces.Rebind;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Common super class for GLSP {@link ContainerModule}s.
|
|
32
|
+
*/
|
|
33
|
+
@injectable()
|
|
34
|
+
export abstract class GLSPModule extends ContainerModule {
|
|
35
|
+
public static CLIENT_ACTIONS = 'ClientActions';
|
|
36
|
+
|
|
37
|
+
protected context: ModuleContext;
|
|
38
|
+
|
|
39
|
+
constructor() {
|
|
40
|
+
super((bind, unbind, isBound, rebind) => {
|
|
41
|
+
this.context = { bind, unbind, isBound, rebind };
|
|
42
|
+
this.configure(bind, unbind, isBound, rebind);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
protected abstract configure(
|
|
47
|
+
bind: interfaces.Bind,
|
|
48
|
+
unbind: interfaces.Unbind,
|
|
49
|
+
isBound: interfaces.IsBound,
|
|
50
|
+
rebind: interfaces.Rebind
|
|
51
|
+
): void;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Configuration method for multibound values. The passed configurator is typically a submethod of this module. This
|
|
55
|
+
* means
|
|
56
|
+
* that subclasses can customize the {@link MultiBinding} object before the actual {@link MultiBinding} is created.
|
|
57
|
+
*
|
|
58
|
+
* @param <T> Type of the {@link MultiBinding}
|
|
59
|
+
* @param binding The multi binding configuration object
|
|
60
|
+
* @param configurator The consumer that should be used to configure the given {@link MultiBinding}
|
|
61
|
+
*/
|
|
62
|
+
protected configureMultiBinding<T>(binding: AbstractMultiBinding<T>, configurator: (binding: AbstractMultiBinding<T>) => void): void {
|
|
63
|
+
configurator(binding);
|
|
64
|
+
binding.applyBindings(this.context);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 { distinctAdd, flatPush, MaybeArray, remove } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { applyBindingTarget, BindingTarget } from './binding-target';
|
|
18
|
+
import { ModuleContext } from './glsp-module';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A helper class used in `GLSPModules` to ease the configuration of multi-injected service identifiers.
|
|
22
|
+
* Instead of directly binding to the service identifier a new multi binding object can be created. This object
|
|
23
|
+
* should then be passed to a overridable configuration-function (i.e. configure(binding:V)=>void). This gives subclasses of the
|
|
24
|
+
* `GLSPModule` the chance to manipulate the binding configuration using the provided manipulation methods (e.g. add,remove, rebind).
|
|
25
|
+
* Once the configuration is finished the binding can be finalized using the {@link AbstractMultiBinding.applyBindings} method.
|
|
26
|
+
*/
|
|
27
|
+
export abstract class AbstractMultiBinding<T> {
|
|
28
|
+
protected bindings: T[] = [];
|
|
29
|
+
|
|
30
|
+
constructor(readonly identifier: string | symbol) {}
|
|
31
|
+
|
|
32
|
+
abstract applyBindings(context: ModuleContext): void;
|
|
33
|
+
|
|
34
|
+
add(newBinding: T): void {
|
|
35
|
+
distinctAdd(this.bindings, newBinding);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
addAll(newBindings: T[]): void;
|
|
39
|
+
addAll(...newBindings: T[]): void;
|
|
40
|
+
addAll(...newBindings: MaybeArray<T>[]): void {
|
|
41
|
+
const result: T[] = [];
|
|
42
|
+
flatPush(result, newBindings);
|
|
43
|
+
result.forEach(newBinding => this.add(newBinding));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
remove(toRemove: T): void {
|
|
47
|
+
remove(this.bindings, toRemove);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
removeAll(toRemove: T[]): void {
|
|
51
|
+
return toRemove.forEach(binding => this.remove(binding));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
rebind(oldBinding: T, newBinding: T): void {
|
|
55
|
+
this.remove(oldBinding);
|
|
56
|
+
this.add(newBinding);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
contains(binding: T): boolean {
|
|
60
|
+
return this.bindings.includes(binding);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
getAll(): T[] {
|
|
64
|
+
return this.bindings;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Implementation of {@link AbstractMultiBinding} for multi-injected values that using an arbitrary {@link BindingTarget}.
|
|
70
|
+
*
|
|
71
|
+
* @typeparam T the base type of {@link BindingTarget}.
|
|
72
|
+
*/
|
|
73
|
+
export class MultiBinding<T> extends AbstractMultiBinding<BindingTarget<T>> {
|
|
74
|
+
applyBindings(context: ModuleContext): void {
|
|
75
|
+
this.bindings.forEach(binding => applyBindingTarget(context, this.identifier, binding));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Implementation of {@link AbstractMultiBinding} for multi-injected values that should be bound to concrete instance using the
|
|
81
|
+
* `bind(serviceIdentifier).toConstantValue(MyCustomBinding) syntax.
|
|
82
|
+
*
|
|
83
|
+
* * @typeparam T the type of the instances
|
|
84
|
+
*/
|
|
85
|
+
export class InstanceMultiBinding<T> extends AbstractMultiBinding<T> {
|
|
86
|
+
applyBindings(context: ModuleContext): void {
|
|
87
|
+
context.bind(this.identifier).toConstantValue(this.bindings);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
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 { expect } from 'chai';
|
|
17
|
+
import { Container, ContainerModule, injectable } from 'inversify';
|
|
18
|
+
import { InstanceMultiBinding, MultiBinding } from './multi-binding';
|
|
19
|
+
|
|
20
|
+
@injectable()
|
|
21
|
+
class TestClass {}
|
|
22
|
+
|
|
23
|
+
@injectable()
|
|
24
|
+
class TestClass1 extends TestClass {}
|
|
25
|
+
|
|
26
|
+
@injectable()
|
|
27
|
+
class TestClass2 extends TestClass {}
|
|
28
|
+
|
|
29
|
+
@injectable()
|
|
30
|
+
class TestClass3 extends TestClass {}
|
|
31
|
+
|
|
32
|
+
describe('test implementations of MultiBinding', () => {
|
|
33
|
+
describe('test basic functionaly (ClassMultiBinding) ', () => {
|
|
34
|
+
const binding = new MultiBinding('TestClass');
|
|
35
|
+
it('add - new binding', () => {
|
|
36
|
+
binding.add(TestClass1);
|
|
37
|
+
expect(binding.contains(TestClass1)).true;
|
|
38
|
+
|
|
39
|
+
const result = binding.getAll();
|
|
40
|
+
expect(result.length).to.be.equal(1);
|
|
41
|
+
expect(result[0]).to.be.equal(TestClass1);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('add - existing binding', () => {
|
|
45
|
+
binding.add(TestClass1);
|
|
46
|
+
expect(binding.getAll().length).to.be.equal(1);
|
|
47
|
+
expect(binding.getAll()[0]).to.be.equal(TestClass1);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('remove - existing binding', () => {
|
|
51
|
+
expect(binding.contains(TestClass1)).true;
|
|
52
|
+
binding.remove(TestClass1);
|
|
53
|
+
expect(binding.contains(TestClass1)).false;
|
|
54
|
+
expect(binding.getAll()).to.have.length(0);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('remove - non-existing binding', () => {
|
|
58
|
+
const previousSize = binding.getAll().length;
|
|
59
|
+
binding.remove(TestClass2);
|
|
60
|
+
expect(binding.getAll()).to.have.length(previousSize);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('addAll - TestClass1 & TestClass2', () => {
|
|
64
|
+
binding.addAll([TestClass1, TestClass2]);
|
|
65
|
+
|
|
66
|
+
const result = binding.getAll();
|
|
67
|
+
expect(result.length).to.be.equal(2);
|
|
68
|
+
expect(result.includes(TestClass1)).true;
|
|
69
|
+
expect(result.includes(TestClass2)).true;
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('rebind- TestClass2 to TestClass3', () => {
|
|
73
|
+
binding.rebind(TestClass2, TestClass3);
|
|
74
|
+
const result = binding.getAll();
|
|
75
|
+
expect(result.length).to.be.equal(2);
|
|
76
|
+
expect(result.includes(TestClass1)).true;
|
|
77
|
+
expect(result.includes(TestClass3)).true;
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('rebind- TestClass2 to TestClass3- should fail', () => {
|
|
81
|
+
binding.rebind(TestClass2, TestClass3);
|
|
82
|
+
const result = binding.getAll();
|
|
83
|
+
expect(result.length).to.be.equal(2);
|
|
84
|
+
expect(result.includes(TestClass1)).true;
|
|
85
|
+
expect(result.includes(TestClass3)).true;
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('removeAll- TestClass1 & TestClass3', () => {
|
|
89
|
+
binding.removeAll([TestClass1, TestClass3]);
|
|
90
|
+
const result = binding.getAll();
|
|
91
|
+
expect(result).to.have.length(0);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('test applyBinding', () => {
|
|
96
|
+
it('apply binding of ClassMultiBinding', () => {
|
|
97
|
+
const testContainer = new Container();
|
|
98
|
+
const testModule = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
99
|
+
const context = { bind, unbind, isBound, rebind };
|
|
100
|
+
const binding = new MultiBinding('TestClass');
|
|
101
|
+
binding.addAll([TestClass1, TestClass2, TestClass3]);
|
|
102
|
+
binding.applyBindings(context);
|
|
103
|
+
});
|
|
104
|
+
testContainer.load(testModule);
|
|
105
|
+
const result = testContainer.getAll('TestClass');
|
|
106
|
+
expect(result).to.have.length(3);
|
|
107
|
+
expect(result.find(instance => instance instanceof TestClass1)).to.not.be.undefined;
|
|
108
|
+
expect(result.find(instance => instance instanceof TestClass2)).to.not.be.undefined;
|
|
109
|
+
expect(result.find(instance => instance instanceof TestClass3)).to.not.be.undefined;
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('apply binding of InstanceMultiBinding', () => {
|
|
113
|
+
const t1 = 't1';
|
|
114
|
+
const t2 = 't2';
|
|
115
|
+
const t3 = 't3';
|
|
116
|
+
const identifier = 'myStrings';
|
|
117
|
+
|
|
118
|
+
const testContainer = new Container();
|
|
119
|
+
const testModule = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
120
|
+
const context = { bind, unbind, isBound, rebind };
|
|
121
|
+
const binding = new InstanceMultiBinding<string>(identifier);
|
|
122
|
+
binding.addAll([t1, t2, t3]);
|
|
123
|
+
binding.applyBindings(context);
|
|
124
|
+
});
|
|
125
|
+
testContainer.load(testModule);
|
|
126
|
+
const result = testContainer.get<string[]>(identifier);
|
|
127
|
+
expect(result).to.have.length(3);
|
|
128
|
+
expect(result.includes(t1)).true;
|
|
129
|
+
expect(result.includes(t2)).true;
|
|
130
|
+
expect(result.includes(t3)).true;
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
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 { ContainerModule, interfaces } from 'inversify';
|
|
17
|
+
import { DefaultGlobalActionProvider, GlobalActionProvider } from '../actions/global-action-provider';
|
|
18
|
+
import { DefaultGLSPClientProxy, GLSPClientProxy, JsonRpcGLSPClientProxy } from '../protocol/glsp-client-proxy';
|
|
19
|
+
import { DefaultGLSPServer, GLSPServer, JsonRpcGLSPServer } from '../protocol/glsp-server';
|
|
20
|
+
import { GLSPServerListener } from '../protocol/glsp-server-listener';
|
|
21
|
+
import { ClientSessionFactory, DefaultClientSessionFactory } from '../session/client-session-factory';
|
|
22
|
+
import { ClientSessionManager, DefaultClientSessionManager } from '../session/client-session-manager';
|
|
23
|
+
import { applyBindingTarget, BindingTarget } from './binding-target';
|
|
24
|
+
import { DiagramModule } from './diagram-module';
|
|
25
|
+
import { GLSPModule } from './glsp-module';
|
|
26
|
+
import { MultiBinding } from './multi-binding';
|
|
27
|
+
import { DiagramModules, InjectionContainer } from './service-identifiers';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The server module is the central configuration artifact for configuring the server container (i.e. main container). For
|
|
31
|
+
* each application connecting to the server process a new server container is created. The server module provides the
|
|
32
|
+
* base bindings necessary for setting up the base {@link GLSPServer} infrastructure. In addition, it is used to
|
|
33
|
+
* configure the set of {@link DiagramModule}s. Diagram modules are used to create the diagram-session-specific child
|
|
34
|
+
* container when the
|
|
35
|
+
* {@link GLSPServer.initializeClientSession()}
|
|
36
|
+
* method is called.
|
|
37
|
+
*
|
|
38
|
+
* The following bindings are provided:
|
|
39
|
+
*
|
|
40
|
+
* * {@link Map<String, Module>} annotated with `@named("Diagram_Modules")`
|
|
41
|
+
* * {@link GLSPServer}
|
|
42
|
+
* * {@link ClientSessionFactory}
|
|
43
|
+
* * {@link ClientSessionManager}
|
|
44
|
+
* * {@link GlobalActionProvider}
|
|
45
|
+
* * {@link GLSPClientProxy}
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
export class ServerModule extends GLSPModule {
|
|
49
|
+
public static DIAGRAM_MODULES = 'Diagram_Modules';
|
|
50
|
+
protected readonly diagramModules: Map<string, ContainerModule[]> = new Map();
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Configure a new {@link DiagramModule} for this server. A diagram module represents the base configuration artifact
|
|
54
|
+
* for configuring a diagram-language-specific client session container. The diagram type provided
|
|
55
|
+
* {@link DiagramModule.diagramType} is used to retrieve the correct diagram module when the {@link GLSPServer}
|
|
56
|
+
* initializes a new client session.
|
|
57
|
+
*
|
|
58
|
+
* @param diagramModule The base diagram module
|
|
59
|
+
* @param additionalModules Additional modules
|
|
60
|
+
* @returns The server module itself. This enables a builder-pattern like chaining of multiple diagram configuration
|
|
61
|
+
* calls.
|
|
62
|
+
*/
|
|
63
|
+
configureDiagramModule(diagramModule: DiagramModule, ...additionalModules: ContainerModule[]): ServerModule {
|
|
64
|
+
const diagramType = diagramModule.diagramType;
|
|
65
|
+
if (this.diagramModules.has(diagramType)) {
|
|
66
|
+
throw new Error(`A module configuration is already present for diagram type: '${diagramType}'`);
|
|
67
|
+
}
|
|
68
|
+
this.diagramModules.set(diagramType, [diagramModule, ...additionalModules]);
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
configure(bind: interfaces.Bind, unbind: interfaces.Unbind, isBound: interfaces.IsBound, rebind: interfaces.Rebind): void {
|
|
73
|
+
const context = this.context;
|
|
74
|
+
applyBindingTarget(context, DiagramModules, this.bindDiagramModules());
|
|
75
|
+
|
|
76
|
+
applyBindingTarget(context, GLSPServer, this.bindGLSPServer()).inSingletonScope();
|
|
77
|
+
applyBindingTarget(context, JsonRpcGLSPServer, this.bindJsonRpcGLSPServer());
|
|
78
|
+
applyBindingTarget(context, ClientSessionFactory, this.bindClientSessionFactory()).inSingletonScope();
|
|
79
|
+
applyBindingTarget(context, ClientSessionManager, this.bindClientSessionManager()).inSingletonScope();
|
|
80
|
+
this.configureMultiBinding(new MultiBinding<GLSPServerListener>(GLSPServerListener), binding =>
|
|
81
|
+
this.configureGLSPServerListeners(binding)
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
applyBindingTarget(context, GlobalActionProvider, this.bindGlobalActionProvider()).inSingletonScope();
|
|
85
|
+
|
|
86
|
+
applyBindingTarget(context, InjectionContainer, this.bindInjectionContainer());
|
|
87
|
+
|
|
88
|
+
applyBindingTarget(context, GLSPClientProxy, this.bindGLSPClientProxy()).inSingletonScope();
|
|
89
|
+
applyBindingTarget(context, JsonRpcGLSPClientProxy, this.bindJsonRpcGLSPClientProxy());
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
protected bindDiagramModules(): BindingTarget<Map<string, ContainerModule[]>> {
|
|
93
|
+
return { constantValue: this.diagramModules };
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
protected bindGLSPServer(): BindingTarget<GLSPServer> {
|
|
97
|
+
return DefaultGLSPServer;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
protected bindJsonRpcGLSPServer(): BindingTarget<JsonRpcGLSPServer> {
|
|
101
|
+
return { service: GLSPServer };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
protected bindClientSessionFactory(): BindingTarget<ClientSessionFactory> {
|
|
105
|
+
return DefaultClientSessionFactory;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
protected bindClientSessionManager(): BindingTarget<ClientSessionManager> {
|
|
109
|
+
return DefaultClientSessionManager;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
protected bindGlobalActionProvider(): BindingTarget<GlobalActionProvider> {
|
|
113
|
+
return DefaultGlobalActionProvider;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
protected bindInjectionContainer(): BindingTarget<interfaces.Container> {
|
|
117
|
+
return { dynamicValue: context => context.container };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
protected bindGLSPClientProxy(): BindingTarget<GLSPClientProxy> {
|
|
121
|
+
return DefaultGLSPClientProxy;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
protected bindJsonRpcGLSPClientProxy(): BindingTarget<JsonRpcGLSPClientProxy> {
|
|
125
|
+
return { service: GLSPClientProxy };
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
protected configureGLSPServerListeners(binding: MultiBinding<GLSPServerListener>): void {
|
|
129
|
+
binding.add({ service: ClientSessionManager });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { ValidateLabelEditAdapter } from '../features/directediting/context-edit-validator';
|
|
17
|
+
import { LabelEditValidator } from '../features/directediting/label-edit-validator';
|
|
18
|
+
|
|
19
|
+
export const DiagramType = Symbol('DiagramType');
|
|
20
|
+
|
|
21
|
+
export const ClientId = Symbol('ClientId');
|
|
22
|
+
|
|
23
|
+
export const DiagramModules = Symbol('DiagramModules');
|
|
24
|
+
|
|
25
|
+
export const InjectionContainer = Symbol('InjectionContainer');
|
|
26
|
+
|
|
27
|
+
export const ClientActionKinds = Symbol('ClientActionKinds');
|
|
28
|
+
|
|
29
|
+
export const ContextActionsProviders = Symbol('ContextActionsProviders');
|
|
30
|
+
|
|
31
|
+
export const ContextEditValidators = Symbol('ContextEditValidators');
|
|
32
|
+
|
|
33
|
+
export const ValidateLabelEditAdapterFactory = Symbol('ValidateLabelEditAdapterFactory');
|
|
34
|
+
|
|
35
|
+
export const NavigationTargetProviders = Symbol('NavigationTargetProviders');
|
|
36
|
+
|
|
37
|
+
export type ValidateLabelEditAdapterFactory = (validator: LabelEditValidator) => ValidateLabelEditAdapter;
|
|
38
|
+
|
|
39
|
+
export const Operations = Symbol('Operations');
|
|
@@ -0,0 +1,97 @@
|
|
|
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 { GModelElementConstructor } from '@eclipse-glsp/graph';
|
|
17
|
+
import { EdgeTypeHint, ShapeTypeHint } from '@eclipse-glsp/protocol';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Used to configure whether and when a diagram server should auto-layout the graphical model.
|
|
21
|
+
*
|
|
22
|
+
* The layout is computed with the layout engine configured, so a value other
|
|
23
|
+
* than <code>NONE</code> here makes sense only if such an engine is available.
|
|
24
|
+
*/
|
|
25
|
+
export enum ServerLayoutKind {
|
|
26
|
+
/**
|
|
27
|
+
* The server re-layouts the diagram on all changes automatically. Layout
|
|
28
|
+
* information stored in the model will be overwritten.
|
|
29
|
+
*/
|
|
30
|
+
AUTOMATIC,
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The server re-layouts the diagram only if manually triggered by a
|
|
34
|
+
* <code>LayoutAction</code>. The layout information must be stored in the model
|
|
35
|
+
* and will be overwritten on layout.
|
|
36
|
+
*/
|
|
37
|
+
MANUAL,
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The server never layouts the diagram. This requires that the layout
|
|
41
|
+
* information is stored in the model.
|
|
42
|
+
*/
|
|
43
|
+
NONE
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const DiagramConfiguration = Symbol('DiagramConfiguration');
|
|
47
|
+
/**
|
|
48
|
+
* Provides configuration constants for a specific diagram implementation (i.e. diagram language),
|
|
49
|
+
* The corresponding configuration for a diagram implementation is identified via its diagram type.
|
|
50
|
+
*/
|
|
51
|
+
export interface DiagramConfiguration {
|
|
52
|
+
/**
|
|
53
|
+
* Returns the shape type hints for the diagram implementation. Shape type hints are sent to the client and used to
|
|
54
|
+
* validate whether certain operations for shapes/nodes are allowed without having to query the server again.
|
|
55
|
+
*
|
|
56
|
+
* @returns List of all shape type hints for the diagram implementation.
|
|
57
|
+
*/
|
|
58
|
+
readonly shapeTypeHints: ShapeTypeHint[];
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the edge type hints for the diagram implementation. Edge type hints are sent to the client and used to
|
|
62
|
+
* validate whether certain operations for edges are allowed without having to query the server again.
|
|
63
|
+
*
|
|
64
|
+
* @returns List of all edge type hints for the diagram implementation.
|
|
65
|
+
*/
|
|
66
|
+
readonly edgeTypeHints: EdgeTypeHint[];
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Returns the supported layout kind for this diagram implementation.
|
|
70
|
+
*
|
|
71
|
+
* @returns The layout kind.
|
|
72
|
+
*/
|
|
73
|
+
readonly layoutKind: ServerLayoutKind;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Boolean flag to specific whether the diagram implementation expects the client to provide layout information for
|
|
77
|
+
* certain diagram element. Default is 'true'.
|
|
78
|
+
*
|
|
79
|
+
* @returns Boolean flag to indicate whether the client needs to be involved in the layout process.
|
|
80
|
+
*/
|
|
81
|
+
readonly needsClientLayout: boolean;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Boolean flag to tell the client whether changed caused by an update should be animated or not.
|
|
85
|
+
*
|
|
86
|
+
* @returns Boolean flag to indicate whether the client should animate update changes.
|
|
87
|
+
*/
|
|
88
|
+
readonly animatedUpdate: boolean;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns the type mappings for the diagram implementation. Type mappings are used by GSON to construct the correct
|
|
92
|
+
* {@link EClass} based on the "type" property of the JSON object.
|
|
93
|
+
*
|
|
94
|
+
* @returns A complete map of all type mappings for the diagram implementation.
|
|
95
|
+
*/
|
|
96
|
+
readonly typeMapping: Map<string, GModelElementConstructor>;
|
|
97
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 { EdgeTypeHint, RequestTypeHintsAction, SetTypeHintsAction, ShapeTypeHint } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { Container, ContainerModule } from 'inversify';
|
|
19
|
+
import * as mock from '../test/mock-util';
|
|
20
|
+
import { DiagramConfiguration } from './diagram-configuration';
|
|
21
|
+
import { RequestTypeHintsActionHandler } from './request-type-hints-action-handler';
|
|
22
|
+
|
|
23
|
+
describe('test RequestTypeHintsActionHandler', () => {
|
|
24
|
+
const container = new Container();
|
|
25
|
+
const diagramConfiguration = new mock.StubDiagramConfiguration();
|
|
26
|
+
const shapeTypeHint: ShapeTypeHint = {
|
|
27
|
+
elementTypeId: 'test',
|
|
28
|
+
deletable: true,
|
|
29
|
+
resizable: true,
|
|
30
|
+
repositionable: true,
|
|
31
|
+
reparentable: true
|
|
32
|
+
};
|
|
33
|
+
const edgeTypeHint: EdgeTypeHint = {
|
|
34
|
+
elementTypeId: 'test',
|
|
35
|
+
deletable: true,
|
|
36
|
+
repositionable: true,
|
|
37
|
+
routable: true,
|
|
38
|
+
sourceElementTypeIds: [],
|
|
39
|
+
targetElementTypeIds: []
|
|
40
|
+
};
|
|
41
|
+
diagramConfiguration.shapeTypeHints = [shapeTypeHint];
|
|
42
|
+
diagramConfiguration.edgeTypeHints = [edgeTypeHint];
|
|
43
|
+
container.load(
|
|
44
|
+
new ContainerModule(bind => {
|
|
45
|
+
bind(DiagramConfiguration).toConstantValue(diagramConfiguration);
|
|
46
|
+
})
|
|
47
|
+
);
|
|
48
|
+
const handler = container.resolve(RequestTypeHintsActionHandler);
|
|
49
|
+
|
|
50
|
+
it('execute with correct action', async () => {
|
|
51
|
+
const result = await handler.execute(RequestTypeHintsAction.create());
|
|
52
|
+
|
|
53
|
+
expect(result).to.have.length(1);
|
|
54
|
+
expect(SetTypeHintsAction.is(result[0])).true;
|
|
55
|
+
expect(result).to.be.deep.equal([
|
|
56
|
+
{ edgeHints: [edgeTypeHint], kind: 'setTypeHints', shapeHints: [shapeTypeHint], responseId: '' } as SetTypeHintsAction
|
|
57
|
+
]);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { Action, MaybePromise, RequestTypeHintsAction, SetTypeHintsAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { ActionHandler } from '../actions/action-handler';
|
|
19
|
+
import { DiagramConfiguration } from './diagram-configuration';
|
|
20
|
+
|
|
21
|
+
@injectable()
|
|
22
|
+
export class RequestTypeHintsActionHandler implements ActionHandler {
|
|
23
|
+
@inject(DiagramConfiguration) protected diagramConfiguration: DiagramConfiguration;
|
|
24
|
+
static KINDS = [RequestTypeHintsAction.KIND];
|
|
25
|
+
|
|
26
|
+
execute(action: RequestTypeHintsAction): MaybePromise<Action[]> {
|
|
27
|
+
return [
|
|
28
|
+
SetTypeHintsAction.create({
|
|
29
|
+
shapeHints: this.diagramConfiguration.shapeTypeHints,
|
|
30
|
+
edgeHints: this.diagramConfiguration.edgeTypeHints
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
readonly actionKinds = [RequestTypeHintsAction.KIND];
|
|
36
|
+
}
|