@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,69 @@
|
|
|
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 { GModelElement } from '@eclipse-glsp/graph';
|
|
17
|
+
import { Args, LabeledAction, Point } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { CommandPaletteActionProvider } from './command-palette-action-provider';
|
|
19
|
+
import { ContextActionsProvider } from './context-actions-provider';
|
|
20
|
+
import { ContextActionsProviderRegistry } from './context-actions-provider-registry';
|
|
21
|
+
import { DefaultToolPaletteItemProvider } from './tool-palette-item-provider';
|
|
22
|
+
import { expect } from 'chai';
|
|
23
|
+
|
|
24
|
+
describe('Test DefaultContextActionsProviderRegistry', () => {
|
|
25
|
+
it('check if default registry is empty', () => {
|
|
26
|
+
const contextActionsProvider: ContextActionsProvider[] = [];
|
|
27
|
+
const contextActionsProviderRegistry = new ContextActionsProviderRegistry(contextActionsProvider);
|
|
28
|
+
expect(contextActionsProviderRegistry.keys()).to.have.length(0);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('register DefaultToolPaletteItemProvider via ContextActionsProviders list', () => {
|
|
32
|
+
const contextActionsProvider: ContextActionsProvider[] = [new DefaultToolPaletteItemProvider()];
|
|
33
|
+
const contextActionsProviderRegistry = new ContextActionsProviderRegistry(contextActionsProvider);
|
|
34
|
+
expect(contextActionsProviderRegistry.keys()).to.have.length(1);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('register DefaultToolPaletteItemProvider via ToolPaletteItemProvider', () => {
|
|
38
|
+
const contextActionsProvider: ContextActionsProvider[] = [];
|
|
39
|
+
const contextActionsProviderRegistry = new ContextActionsProviderRegistry(
|
|
40
|
+
contextActionsProvider,
|
|
41
|
+
undefined,
|
|
42
|
+
undefined,
|
|
43
|
+
new DefaultToolPaletteItemProvider()
|
|
44
|
+
);
|
|
45
|
+
expect(contextActionsProviderRegistry.keys()).to.have.length(1);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('register CustomCommandPaletteActionProvider via CommandPaletteActionProvider', () => {
|
|
49
|
+
class CustomCommandPaletteActionProvider extends CommandPaletteActionProvider {
|
|
50
|
+
getPaletteActions(
|
|
51
|
+
_selectedElementIds: string[],
|
|
52
|
+
_selectedElements: GModelElement[],
|
|
53
|
+
_position: Point,
|
|
54
|
+
_args?: Args
|
|
55
|
+
): LabeledAction[] {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const contextActionsProvider: ContextActionsProvider[] = [];
|
|
61
|
+
const contextActionsProviderRegistry = new ContextActionsProviderRegistry(
|
|
62
|
+
contextActionsProvider,
|
|
63
|
+
undefined,
|
|
64
|
+
new CustomCommandPaletteActionProvider(),
|
|
65
|
+
undefined
|
|
66
|
+
);
|
|
67
|
+
expect(contextActionsProviderRegistry.keys()).to.have.length(1);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
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 { inject, injectable, multiInject, optional } from 'inversify';
|
|
17
|
+
import { ContextActionsProviders } from '../../di/service-identifiers';
|
|
18
|
+
import { Registry } from '../../utils/registry';
|
|
19
|
+
import { CommandPaletteActionProvider } from './command-palette-action-provider';
|
|
20
|
+
import { ContextActionsProvider } from './context-actions-provider';
|
|
21
|
+
import { ContextMenuItemProvider } from './context-menu-item-provider';
|
|
22
|
+
import { ToolPaletteItemProvider } from './tool-palette-item-provider';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A registry that keeps track of all registered {@link ContextActionsProvider}s.
|
|
26
|
+
*/
|
|
27
|
+
@injectable()
|
|
28
|
+
export class ContextActionsProviderRegistry extends Registry<string, ContextActionsProvider> {
|
|
29
|
+
constructor(
|
|
30
|
+
@multiInject(ContextActionsProviders) @optional() contextActionsProvider: ContextActionsProvider[] = [],
|
|
31
|
+
@inject(ContextMenuItemProvider) @optional() contextMenuItemProvider?: ContextMenuItemProvider,
|
|
32
|
+
@inject(CommandPaletteActionProvider) @optional() commandPaletteActionProvider?: CommandPaletteActionProvider,
|
|
33
|
+
@inject(ToolPaletteItemProvider) @optional() toolPaletteItemProvider?: ToolPaletteItemProvider
|
|
34
|
+
) {
|
|
35
|
+
super();
|
|
36
|
+
contextActionsProvider.forEach(provider => this.register(provider.contextId, provider));
|
|
37
|
+
if (contextMenuItemProvider) {
|
|
38
|
+
this.register(contextMenuItemProvider.contextId, contextMenuItemProvider);
|
|
39
|
+
}
|
|
40
|
+
if (commandPaletteActionProvider) {
|
|
41
|
+
this.register(commandPaletteActionProvider.contextId, commandPaletteActionProvider);
|
|
42
|
+
}
|
|
43
|
+
if (toolPaletteItemProvider) {
|
|
44
|
+
this.register(toolPaletteItemProvider.contextId, toolPaletteItemProvider);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -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 { EditorContext, LabeledAction, MaybePromise } from '@eclipse-glsp/protocol';
|
|
17
|
+
|
|
18
|
+
export const ContextActionsProvider = Symbol('ContextActionsProvider');
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A provider for a certain contextId that provides {@link LabeledAction}s.
|
|
22
|
+
*/
|
|
23
|
+
export interface ContextActionsProvider {
|
|
24
|
+
/**
|
|
25
|
+
* The context id of the {@link ContextActionsProvider}.
|
|
26
|
+
*/
|
|
27
|
+
contextId: string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns a list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
31
|
+
*
|
|
32
|
+
* @param editorContext The editorContext for which the actions are returned.
|
|
33
|
+
* @returns A list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
34
|
+
*/
|
|
35
|
+
getActions(editorContext: EditorContext): MaybePromise<LabeledAction[]>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
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 { Args, EditorContext, LabeledAction, MenuItem, Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { ContextActionsProvider } from './context-actions-provider';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A {@link ContextActionsProvider} for {@link MenuItem}s.
|
|
22
|
+
*/
|
|
23
|
+
@injectable()
|
|
24
|
+
export abstract class ContextMenuItemProvider implements ContextActionsProvider {
|
|
25
|
+
/**
|
|
26
|
+
* Returns the context id of the {@link ContextMenuItemProvider}.
|
|
27
|
+
*/
|
|
28
|
+
get contextId(): string {
|
|
29
|
+
return 'context-menu';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Returns a list of {@link MenuItem}s for a given list of selected elements at a certain mouse position.
|
|
34
|
+
*
|
|
35
|
+
* @param selectedElementIds The list of currently selected elementIds.
|
|
36
|
+
* @param position The current mouse position.
|
|
37
|
+
* @param args Additional arguments.
|
|
38
|
+
* @returns A list of {@link MenuItem}s for a given list of selected elements at a certain mouse position.
|
|
39
|
+
*/
|
|
40
|
+
abstract getItems(selectedElementIds: string[], position: Point, args?: Args): MenuItem[];
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Returns a list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
44
|
+
*
|
|
45
|
+
* @param editorContext The editorContext for which the actions are returned.
|
|
46
|
+
* @returns A list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
47
|
+
*/
|
|
48
|
+
getActions(editorContext: EditorContext): LabeledAction[] {
|
|
49
|
+
const position = editorContext.lastMousePosition ? editorContext.lastMousePosition : { x: 0, y: 0 };
|
|
50
|
+
return this.getItems(editorContext.selectedElementIds, position, editorContext.args);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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 { PaletteItem, RequestContextActions, SetContextActions } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { OperationHandlerRegistry } from '../../operations/operation-handler-registry';
|
|
19
|
+
import * as mock from '../../test/mock-util';
|
|
20
|
+
import { ContextActionsProvider } from './context-actions-provider';
|
|
21
|
+
import { ContextActionsProviderRegistry } from './context-actions-provider-registry';
|
|
22
|
+
import { RequestContextActionsHandler } from './request-context-actions-handler';
|
|
23
|
+
import { DefaultToolPaletteItemProvider } from './tool-palette-item-provider';
|
|
24
|
+
|
|
25
|
+
describe('Test RequestContextActionsHandler', () => {
|
|
26
|
+
const operationHandlerRegistry = new OperationHandlerRegistry();
|
|
27
|
+
const stubANode = new mock.StubCreateNodeOperationHandler('ANode');
|
|
28
|
+
const stubBNode = new mock.StubCreateNodeOperationHandler('BNode');
|
|
29
|
+
const stubAEdge = new mock.StubCreateEdgeOperationHandler('AEdge');
|
|
30
|
+
const stubBEdge = new mock.StubCreateEdgeOperationHandler('BEdge');
|
|
31
|
+
operationHandlerRegistry.registerHandler(stubBNode);
|
|
32
|
+
operationHandlerRegistry.registerHandler(stubANode);
|
|
33
|
+
operationHandlerRegistry.registerHandler(stubBEdge);
|
|
34
|
+
operationHandlerRegistry.registerHandler(stubAEdge);
|
|
35
|
+
|
|
36
|
+
const contextActionsProvider: ContextActionsProvider[] = [];
|
|
37
|
+
const toolPaletteItemProvider = new DefaultToolPaletteItemProvider();
|
|
38
|
+
toolPaletteItemProvider.operationHandlerRegistry = operationHandlerRegistry;
|
|
39
|
+
|
|
40
|
+
const contextActionsProviderRegistry = new ContextActionsProviderRegistry(
|
|
41
|
+
contextActionsProvider,
|
|
42
|
+
undefined,
|
|
43
|
+
undefined,
|
|
44
|
+
toolPaletteItemProvider
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const requestContextActionsHandler = new RequestContextActionsHandler();
|
|
48
|
+
requestContextActionsHandler['contextActionsProviderRegistry'] = contextActionsProviderRegistry;
|
|
49
|
+
|
|
50
|
+
it('request ToolPaletteContextActions', async () => {
|
|
51
|
+
const actions = await requestContextActionsHandler.execute(
|
|
52
|
+
RequestContextActions.create({ contextId: 'tool-palette', editorContext: { selectedElementIds: [] } })
|
|
53
|
+
);
|
|
54
|
+
expect(actions).to.have.length(1);
|
|
55
|
+
const action = actions[0];
|
|
56
|
+
|
|
57
|
+
expect(SetContextActions.is(action)).to.be.true;
|
|
58
|
+
const setContextActions = action as SetContextActions;
|
|
59
|
+
expect(setContextActions.actions).to.have.length(2);
|
|
60
|
+
|
|
61
|
+
expect(PaletteItem.is(setContextActions.actions[0])).to.be.true;
|
|
62
|
+
const firstPaletteItem = setContextActions.actions[0] as PaletteItem;
|
|
63
|
+
expect(firstPaletteItem.label).to.be.equal('Nodes');
|
|
64
|
+
expect(firstPaletteItem.children).to.have.length(2);
|
|
65
|
+
expect(firstPaletteItem.children?.[0].label).to.be.equal('ANode');
|
|
66
|
+
expect(firstPaletteItem.children?.[1].label).to.be.equal('BNode');
|
|
67
|
+
|
|
68
|
+
expect(PaletteItem.is(setContextActions.actions[1])).to.be.true;
|
|
69
|
+
const secondPaletteItem = setContextActions.actions[1] as PaletteItem;
|
|
70
|
+
expect(secondPaletteItem.label).to.be.equal('Edges');
|
|
71
|
+
expect(secondPaletteItem.children).to.have.length(2);
|
|
72
|
+
expect(secondPaletteItem.children?.[0].label).to.be.equal('AEdge');
|
|
73
|
+
expect(secondPaletteItem.children?.[1].label).to.be.equal('BEdge');
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
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, LabeledAction, RequestContextActions, SetContextActions } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { ActionHandler } from '../../actions/action-handler';
|
|
19
|
+
import { ContextActionsProviderRegistry } from './context-actions-provider-registry';
|
|
20
|
+
|
|
21
|
+
@injectable()
|
|
22
|
+
export class RequestContextActionsHandler implements ActionHandler {
|
|
23
|
+
actionKinds = [RequestContextActions.KIND];
|
|
24
|
+
|
|
25
|
+
@inject(ContextActionsProviderRegistry)
|
|
26
|
+
protected contextActionsProviderRegistry: ContextActionsProviderRegistry;
|
|
27
|
+
|
|
28
|
+
async execute(action: RequestContextActions): Promise<Action[]> {
|
|
29
|
+
const editorContext = action.editorContext;
|
|
30
|
+
const actions: LabeledAction[] = [];
|
|
31
|
+
if (this.contextActionsProviderRegistry.get(action.contextId)) {
|
|
32
|
+
const provider = this.contextActionsProviderRegistry.get(action.contextId)!;
|
|
33
|
+
(await provider.getActions(editorContext)).forEach(returnAction => actions.push(returnAction));
|
|
34
|
+
}
|
|
35
|
+
return [SetContextActions.create(actions, { args: action.editorContext.args })];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { OperationHandlerRegistry } from '../../operations/operation-handler-registry';
|
|
17
|
+
import * as mock from '../../test/mock-util';
|
|
18
|
+
import { DefaultToolPaletteItemProvider } from './tool-palette-item-provider';
|
|
19
|
+
import { expect } from 'chai';
|
|
20
|
+
|
|
21
|
+
describe('Test DefaultToolPaletteItemProvider', () => {
|
|
22
|
+
const operationHandlerRegistry = new OperationHandlerRegistry();
|
|
23
|
+
const stubANode = new mock.StubCreateNodeOperationHandler('ANode');
|
|
24
|
+
const stubBNode = new mock.StubCreateNodeOperationHandler('BNode');
|
|
25
|
+
const stubAEdge = new mock.StubCreateEdgeOperationHandler('AEdge');
|
|
26
|
+
const stubBEdge = new mock.StubCreateEdgeOperationHandler('BEdge');
|
|
27
|
+
operationHandlerRegistry.registerHandler(stubBNode);
|
|
28
|
+
operationHandlerRegistry.registerHandler(stubANode);
|
|
29
|
+
operationHandlerRegistry.registerHandler(stubBEdge);
|
|
30
|
+
operationHandlerRegistry.registerHandler(stubAEdge);
|
|
31
|
+
|
|
32
|
+
it('test getItems', () => {
|
|
33
|
+
const toolPaletteItemProvider = new DefaultToolPaletteItemProvider();
|
|
34
|
+
toolPaletteItemProvider.operationHandlerRegistry = operationHandlerRegistry;
|
|
35
|
+
const items = toolPaletteItemProvider.getItems();
|
|
36
|
+
expect(items).to.have.length(2);
|
|
37
|
+
expect(items[0].label).to.be.equal('Nodes');
|
|
38
|
+
expect(items[0].children).to.have.length(2);
|
|
39
|
+
expect(items[0].children?.[0].label).to.be.equal('ANode');
|
|
40
|
+
expect(items[0].children?.[1].label).to.be.equal('BNode');
|
|
41
|
+
expect(items[1].label).to.be.equal('Edges');
|
|
42
|
+
expect(items[1].children).to.have.length(2);
|
|
43
|
+
expect(items[1].children?.[0].label).to.be.equal('AEdge');
|
|
44
|
+
expect(items[1].children?.[1].label).to.be.equal('BEdge');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
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 {
|
|
17
|
+
Args,
|
|
18
|
+
CreateEdgeOperation,
|
|
19
|
+
CreateNodeOperation,
|
|
20
|
+
EditorContext,
|
|
21
|
+
LabeledAction,
|
|
22
|
+
MaybePromise,
|
|
23
|
+
PaletteItem
|
|
24
|
+
} from '@eclipse-glsp/protocol';
|
|
25
|
+
import { inject, injectable } from 'inversify';
|
|
26
|
+
import { CreateOperationHandler } from '../../operations/create-operation-handler';
|
|
27
|
+
import { OperationHandlerRegistry } from '../../operations/operation-handler-registry';
|
|
28
|
+
import { ContextActionsProvider } from './context-actions-provider';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A {@link ContextActionsProvider} for {@link PaletteItem}s.
|
|
32
|
+
*/
|
|
33
|
+
@injectable()
|
|
34
|
+
export abstract class ToolPaletteItemProvider implements ContextActionsProvider {
|
|
35
|
+
/**
|
|
36
|
+
* Returns the context id of the provider.
|
|
37
|
+
*/
|
|
38
|
+
get contextId(): string {
|
|
39
|
+
return 'tool-palette';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Returns a list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
44
|
+
*
|
|
45
|
+
* @param editorContext The editorContext for which the actions are returned.
|
|
46
|
+
* @returns A list of {@link LabeledAction}s for a given {@link EditorContext}.
|
|
47
|
+
*/
|
|
48
|
+
async getActions(editorContext: EditorContext): Promise<LabeledAction[]> {
|
|
49
|
+
return this.getItems(editorContext.args);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Constructs a list of {@link PaletteItem}s for a given map of string arguments.
|
|
54
|
+
*
|
|
55
|
+
* @param args A map of string arguments.
|
|
56
|
+
* @returns A list of {@link PaletteItem}s for a given map of string arguments.
|
|
57
|
+
*/
|
|
58
|
+
abstract getItems(args?: Args): MaybePromise<PaletteItem[]>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@injectable()
|
|
62
|
+
export class DefaultToolPaletteItemProvider extends ToolPaletteItemProvider {
|
|
63
|
+
@inject(OperationHandlerRegistry) operationHandlerRegistry: OperationHandlerRegistry;
|
|
64
|
+
protected counter: number;
|
|
65
|
+
|
|
66
|
+
getItems(args?: Args): PaletteItem[] {
|
|
67
|
+
const handlers = this.operationHandlerRegistry
|
|
68
|
+
.getAll()
|
|
69
|
+
.filter(handler => handler instanceof CreateOperationHandler) as CreateOperationHandler[];
|
|
70
|
+
this.counter = 0;
|
|
71
|
+
const nodes = this.createPaletteItem(handlers, CreateNodeOperation.KIND);
|
|
72
|
+
const edges = this.createPaletteItem(handlers, CreateEdgeOperation.KIND);
|
|
73
|
+
return [
|
|
74
|
+
{ id: 'node-group', label: 'Nodes', actions: [], children: nodes, icon: 'symbol-property', sortString: 'A' },
|
|
75
|
+
{ id: 'edge-group', label: 'Edges', actions: [], children: edges, icon: 'symbol-property', sortString: 'B' }
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
createPaletteItem(handlers: CreateOperationHandler[], kind: string): PaletteItem[] {
|
|
80
|
+
return handlers
|
|
81
|
+
.filter(handler => handler.operationType === kind)
|
|
82
|
+
.map(handler => handler.getTriggerActions().map(action => this.create(action, handler.label)))
|
|
83
|
+
.reduce((accumulator, value) => accumulator.concat(value), [])
|
|
84
|
+
.sort((a, b) => a.sortString.localeCompare(b.sortString));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
create(action: PaletteItem.TriggerElementCreationAction, label: string): PaletteItem {
|
|
88
|
+
return { id: `palette-item${this.counter}`, sortString: label.charAt(0), label, actions: [action] };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { TestContextEditValidator, TestLabelEditValidator } from '../../test/mock-util';
|
|
18
|
+
import { DefaultModelState } from '../model/model-state';
|
|
19
|
+
import { ContextEditValidator } from './context-edit-validator';
|
|
20
|
+
import { DefaultContextEditValidatorRegistry } from './context-edit-validator-registry';
|
|
21
|
+
|
|
22
|
+
describe('Test DefaultContextEditValidatorRegistry', () => {
|
|
23
|
+
it('check if default registry is empty', () => {
|
|
24
|
+
const contextEditValidators: ContextEditValidator[] = [];
|
|
25
|
+
const contextEditValidatorRegistry = new DefaultContextEditValidatorRegistry(new DefaultModelState(), contextEditValidators);
|
|
26
|
+
expect(contextEditValidatorRegistry.keys()).to.have.length(0);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('register TestContextEditValidator via ContextEditValidators list', () => {
|
|
30
|
+
const contextEditValidators: ContextEditValidator[] = [new TestContextEditValidator()];
|
|
31
|
+
const contextEditValidatorsRegistry = new DefaultContextEditValidatorRegistry(new DefaultModelState(), contextEditValidators);
|
|
32
|
+
expect(contextEditValidatorsRegistry.keys()).to.have.length(1);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('register TestLabelEditValidator via LabelEditValidator', () => {
|
|
36
|
+
const contextEditValidators: ContextEditValidator[] = [];
|
|
37
|
+
const contextEditValidatorsRegistry = new DefaultContextEditValidatorRegistry(
|
|
38
|
+
new DefaultModelState(),
|
|
39
|
+
contextEditValidators,
|
|
40
|
+
new TestLabelEditValidator()
|
|
41
|
+
);
|
|
42
|
+
expect(contextEditValidatorsRegistry.keys()).to.have.length(1);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('register via ContextEditValidators list and LabelEditValidator', () => {
|
|
46
|
+
const contextEditValidators: ContextEditValidator[] = [new TestContextEditValidator()];
|
|
47
|
+
const contextEditValidatorsRegistry = new DefaultContextEditValidatorRegistry(
|
|
48
|
+
new DefaultModelState(),
|
|
49
|
+
contextEditValidators,
|
|
50
|
+
new TestLabelEditValidator()
|
|
51
|
+
);
|
|
52
|
+
expect(contextEditValidatorsRegistry.keys()).to.have.length(2);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
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 { inject, injectable, multiInject, optional } from 'inversify';
|
|
17
|
+
import { ContextEditValidators } from '../../di/service-identifiers';
|
|
18
|
+
import { Registry } from '../../utils/registry';
|
|
19
|
+
import { ModelState } from '../model/model-state';
|
|
20
|
+
import { ContextEditValidator, ValidateLabelEditAdapter } from './context-edit-validator';
|
|
21
|
+
import { LabelEditValidator } from './label-edit-validator';
|
|
22
|
+
|
|
23
|
+
export const ContextEditValidatorRegistry = Symbol.for('ContextEditValidatorRegistry');
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A registry that keeps track of all registered {@link ContextEditValidator}s.
|
|
27
|
+
*/
|
|
28
|
+
export interface ContextEditValidatorRegistry extends Registry<string, ContextEditValidator> {}
|
|
29
|
+
|
|
30
|
+
@injectable()
|
|
31
|
+
export class DefaultContextEditValidatorRegistry extends Registry<string, ContextEditValidator> implements ContextEditValidatorRegistry {
|
|
32
|
+
constructor(
|
|
33
|
+
@inject(ModelState) modelState: ModelState,
|
|
34
|
+
@multiInject(ContextEditValidators) @optional() contextEditValidators: ContextEditValidator[] = [],
|
|
35
|
+
@inject(LabelEditValidator) @optional() labelEditValidator?: LabelEditValidator
|
|
36
|
+
) {
|
|
37
|
+
super();
|
|
38
|
+
contextEditValidators.forEach(provider => this.register(provider.contextId, provider));
|
|
39
|
+
if (labelEditValidator) {
|
|
40
|
+
this.register(LabelEditValidator.CONTEXT_ID, new ValidateLabelEditAdapter(modelState, labelEditValidator));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -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 { GModelElement } from '@eclipse-glsp/graph/lib/gmodel-element';
|
|
17
|
+
import { RequestEditValidationAction, ValidationStatus } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { ModelState } from '../model/model-state';
|
|
19
|
+
import { LabelEditValidator } from './label-edit-validator';
|
|
20
|
+
|
|
21
|
+
export const ContextEditValidator = Symbol('ContextEditValidator');
|
|
22
|
+
|
|
23
|
+
export interface ContextEditValidator {
|
|
24
|
+
/**
|
|
25
|
+
* Returns the context id of the {@link ContextActionsProvider}.
|
|
26
|
+
*/
|
|
27
|
+
contextId: string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns the {@link ValidationStatus} for a given {@link RequestEditValidationAction}.
|
|
31
|
+
*
|
|
32
|
+
* @param action The RequestEditValidationAction to validate.
|
|
33
|
+
* @returns The {@link ValidationStatus} for a given {@link RequestEditValidationAction}.
|
|
34
|
+
*/
|
|
35
|
+
validate(action: RequestEditValidationAction): ValidationStatus;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class ValidateLabelEditAdapter implements ContextEditValidator {
|
|
39
|
+
labelEditValidator: LabelEditValidator;
|
|
40
|
+
constructor(readonly modelState: ModelState, labelEditValidator: LabelEditValidator) {
|
|
41
|
+
this.labelEditValidator = labelEditValidator;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get contextId(): string {
|
|
45
|
+
return LabelEditValidator.CONTEXT_ID;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
validate(action: RequestEditValidationAction): ValidationStatus {
|
|
49
|
+
const element = this.modelState.index.get(action.modelElementId);
|
|
50
|
+
if (element instanceof GModelElement) {
|
|
51
|
+
return this.labelEditValidator.validate(action.text, element);
|
|
52
|
+
}
|
|
53
|
+
return { severity: ValidationStatus.Severity.OK };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { GModelElement } from '@eclipse-glsp/graph';
|
|
17
|
+
import { ValidationStatus } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { injectable } from 'inversify';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A validator that validates a new label for a given {@link GModelElement}.
|
|
22
|
+
*/
|
|
23
|
+
@injectable()
|
|
24
|
+
export abstract class LabelEditValidator {
|
|
25
|
+
static readonly CONTEXT_ID = 'label-edit';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Returns the {@link ValidationStatus} for a given edited label of a {@link GModelElement}.
|
|
29
|
+
*
|
|
30
|
+
* @param label The edited label to validate.
|
|
31
|
+
* @param element The element for which the label is going to be edited.
|
|
32
|
+
* @returns The {@link ValidationStatus} of the label.
|
|
33
|
+
*/
|
|
34
|
+
abstract validate(label: string, element: GModelElement): ValidationStatus;
|
|
35
|
+
}
|