@eclipse-glsp/client 0.9.0-next.c5944e10
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 +277 -0
- package/README.md +12 -0
- package/css/command-palette.css +58 -0
- package/css/decoration.css +37 -0
- package/css/glsp-sprotty.css +106 -0
- package/css/tool-palette.css +138 -0
- package/lib/base/action-dispatcher.d.ts +25 -0
- package/lib/base/action-dispatcher.d.ts.map +1 -0
- package/lib/base/action-dispatcher.js +110 -0
- package/lib/base/action-dispatcher.js.map +1 -0
- package/lib/base/actions/context-actions.d.ts +36 -0
- package/lib/base/actions/context-actions.d.ts.map +1 -0
- package/lib/base/actions/context-actions.js +45 -0
- package/lib/base/actions/context-actions.js.map +1 -0
- package/lib/base/actions/edit-mode-action.d.ts +13 -0
- package/lib/base/actions/edit-mode-action.d.ts.map +1 -0
- package/lib/base/actions/edit-mode-action.js +52 -0
- package/lib/base/actions/edit-mode-action.js.map +1 -0
- package/lib/base/actions/edit-validation-actions.d.ts +78 -0
- package/lib/base/actions/edit-validation-actions.d.ts.map +1 -0
- package/lib/base/actions/edit-validation-actions.js +77 -0
- package/lib/base/actions/edit-validation-actions.js.map +1 -0
- package/lib/base/actions/focus-change-action.d.ts +24 -0
- package/lib/base/actions/focus-change-action.d.ts.map +1 -0
- package/lib/base/actions/focus-change-action.js +16 -0
- package/lib/base/actions/focus-change-action.js.map +1 -0
- package/lib/base/args.d.ts +24 -0
- package/lib/base/args.d.ts.map +1 -0
- package/lib/base/args.js +8 -0
- package/lib/base/args.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +21 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.js +8 -0
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts +88 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.js +233 -0
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -0
- package/lib/base/auto-complete/validation-decorator.d.ts +47 -0
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -0
- package/lib/base/auto-complete/validation-decorator.js +113 -0
- package/lib/base/auto-complete/validation-decorator.js.map +1 -0
- package/lib/base/command-stack.d.ts +7 -0
- package/lib/base/command-stack.d.ts.map +1 -0
- package/lib/base/command-stack.js +49 -0
- package/lib/base/command-stack.js.map +1 -0
- package/lib/base/di.config.d.ts +28 -0
- package/lib/base/di.config.d.ts.map +1 -0
- package/lib/base/di.config.js +81 -0
- package/lib/base/di.config.js.map +1 -0
- package/lib/base/drag-aware-mouse-listener.d.ts +36 -0
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -0
- package/lib/base/drag-aware-mouse-listener.js +66 -0
- package/lib/base/drag-aware-mouse-listener.js.map +1 -0
- package/lib/base/editor-context.d.ts +46 -0
- package/lib/base/editor-context.d.ts.map +1 -0
- package/lib/base/editor-context.js +110 -0
- package/lib/base/editor-context.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +9 -0
- package/lib/base/focus-tracker.d.ts.map +1 -0
- package/lib/base/focus-tracker.js +65 -0
- package/lib/base/focus-tracker.js.map +1 -0
- package/lib/base/model/model-registry.d.ts +5 -0
- package/lib/base/model/model-registry.d.ts.map +1 -0
- package/lib/base/model/model-registry.js +43 -0
- package/lib/base/model/model-registry.js.map +1 -0
- package/lib/base/model/update-model-command.d.ts +26 -0
- package/lib/base/model/update-model-command.d.ts.map +1 -0
- package/lib/base/model/update-model-command.js +132 -0
- package/lib/base/model/update-model-command.js.map +1 -0
- package/lib/base/model-initialization-constraint.d.ts +39 -0
- package/lib/base/model-initialization-constraint.d.ts.map +1 -0
- package/lib/base/model-initialization-constraint.js +106 -0
- package/lib/base/model-initialization-constraint.js.map +1 -0
- package/lib/base/operations/operation.d.ts +135 -0
- package/lib/base/operations/operation.d.ts.map +1 -0
- package/lib/base/operations/operation.js +182 -0
- package/lib/base/operations/operation.js.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts +17 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.js +55 -0
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -0
- package/lib/base/source-uri-aware.d.ts +20 -0
- package/lib/base/source-uri-aware.d.ts.map +1 -0
- package/lib/base/source-uri-aware.js +26 -0
- package/lib/base/source-uri-aware.js.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +22 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.js +110 -0
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -0
- package/lib/base/types.d.ts +38 -0
- package/lib/base/types.d.ts.map +1 -0
- package/lib/base/types.js +41 -0
- package/lib/base/types.js.map +1 -0
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +38 -0
- package/lib/features/change-bounds/model.d.ts.map +1 -0
- package/lib/features/change-bounds/model.js +61 -0
- package/lib/features/change-bounds/model.js.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts +14 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.js +90 -0
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -0
- package/lib/features/change-bounds/snap.d.ts +7 -0
- package/lib/features/change-bounds/snap.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.js +44 -0
- package/lib/features/change-bounds/snap.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.d.ts +12 -0
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +63 -0
- package/lib/features/command-palette/command-palette-tool.js.map +1 -0
- package/lib/features/command-palette/di.config.d.ts +20 -0
- package/lib/features/command-palette/di.config.d.ts.map +1 -0
- package/lib/features/command-palette/di.config.js +33 -0
- package/lib/features/command-palette/di.config.js.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts +15 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.js +66 -0
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts +8 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.js +55 -0
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -0
- package/lib/features/context-menu/di.config.d.ts +19 -0
- package/lib/features/context-menu/di.config.d.ts.map +1 -0
- package/lib/features/context-menu/di.config.js +36 -0
- package/lib/features/context-menu/di.config.js.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +9 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +65 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts +13 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.js +63 -0
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.js +58 -0
- package/lib/features/copy-paste/copy-paste-actions.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +32 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js +151 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.js +149 -0
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -0
- package/lib/features/copy-paste/di.config.d.ts +24 -0
- package/lib/features/copy-paste/di.config.d.ts.map +1 -0
- package/lib/features/copy-paste/di.config.js +40 -0
- package/lib/features/copy-paste/di.config.js.map +1 -0
- package/lib/features/decoration/decoration-placer.d.ts +6 -0
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -0
- package/lib/features/decoration/decoration-placer.js +47 -0
- package/lib/features/decoration/decoration-placer.js.map +1 -0
- package/lib/features/decoration/di.config.d.ts +20 -0
- package/lib/features/decoration/di.config.d.ts.map +1 -0
- package/lib/features/decoration/di.config.js +27 -0
- package/lib/features/decoration/di.config.js.map +1 -0
- package/lib/features/edit-label/di.config.d.ts +19 -0
- package/lib/features/edit-label/di.config.d.ts.map +1 -0
- package/lib/features/edit-label/di.config.js +30 -0
- package/lib/features/edit-label/di.config.js.map +1 -0
- package/lib/features/edit-label/edit-label-tool.d.ts +13 -0
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-tool.js +55 -0
- package/lib/features/edit-label/edit-label-tool.js.map +1 -0
- package/lib/features/edit-label/edit-label-validator.d.ts +20 -0
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-validator.js +111 -0
- package/lib/features/edit-label/edit-label-validator.js.map +1 -0
- package/lib/features/hints/di.config.d.ts +19 -0
- package/lib/features/hints/di.config.d.ts.map +1 -0
- package/lib/features/hints/di.config.js +30 -0
- package/lib/features/hints/di.config.js.map +1 -0
- package/lib/features/hints/model.d.ts +26 -0
- package/lib/features/hints/model.d.ts.map +1 -0
- package/lib/features/hints/model.js +14 -0
- package/lib/features/hints/model.js.map +1 -0
- package/lib/features/hints/request-type-hints-action.d.ts +32 -0
- package/lib/features/hints/request-type-hints-action.d.ts.map +1 -0
- package/lib/features/hints/request-type-hints-action.js +26 -0
- package/lib/features/hints/request-type-hints-action.js.map +1 -0
- package/lib/features/hints/type-hints.d.ts +75 -0
- package/lib/features/hints/type-hints.d.ts.map +1 -0
- package/lib/features/hints/type-hints.js +199 -0
- package/lib/features/hints/type-hints.js.map +1 -0
- package/lib/features/hover/di.config.d.ts +19 -0
- package/lib/features/hover/di.config.d.ts.map +1 -0
- package/lib/features/hover/di.config.js +46 -0
- package/lib/features/hover/di.config.js.map +1 -0
- package/lib/features/hover/hover.d.ts +11 -0
- package/lib/features/hover/hover.d.ts.map +1 -0
- package/lib/features/hover/hover.js +88 -0
- package/lib/features/hover/hover.js.map +1 -0
- package/lib/features/layout/di.config.d.ts +19 -0
- package/lib/features/layout/di.config.d.ts.map +1 -0
- package/lib/features/layout/di.config.js +26 -0
- package/lib/features/layout/di.config.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +137 -0
- package/lib/features/layout/layout-commands.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.js +411 -0
- package/lib/features/layout/layout-commands.js.map +1 -0
- package/lib/features/layout/layout-commands.spec.d.ts +18 -0
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.spec.js +297 -0
- package/lib/features/layout/layout-commands.spec.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +19 -0
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -0
- package/lib/features/model-source-watcher/di.config.js +26 -0
- package/lib/features/model-source-watcher/di.config.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +23 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +83 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +24 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js +16 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +1 -0
- package/lib/features/mouse-tool/di.config.d.ts +19 -0
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -0
- package/lib/features/mouse-tool/di.config.js +28 -0
- package/lib/features/mouse-tool/di.config.js.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts +19 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.js +140 -0
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -0
- package/lib/features/navigation/di.config.d.ts +18 -0
- package/lib/features/navigation/di.config.d.ts.map +1 -0
- package/lib/features/navigation/di.config.js +31 -0
- package/lib/features/navigation/di.config.js.map +1 -0
- package/lib/features/navigation/navigation-action-handler.d.ts +117 -0
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -0
- package/lib/features/navigation/navigation-action-handler.js +293 -0
- package/lib/features/navigation/navigation-action-handler.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts +55 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.js +157 -0
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +18 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js +54 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
- package/lib/features/rank/model.d.ts +22 -0
- package/lib/features/rank/model.d.ts.map +1 -0
- package/lib/features/rank/model.js +28 -0
- package/lib/features/rank/model.js.map +1 -0
- package/lib/features/reconnect/model.d.ts +30 -0
- package/lib/features/reconnect/model.d.ts.map +1 -0
- package/lib/features/reconnect/model.js +66 -0
- package/lib/features/reconnect/model.js.map +1 -0
- package/lib/features/save/di.config.d.ts +23 -0
- package/lib/features/save/di.config.d.ts.map +1 -0
- package/lib/features/save/di.config.js +29 -0
- package/lib/features/save/di.config.js.map +1 -0
- package/lib/features/save/model.d.ts +22 -0
- package/lib/features/save/model.d.ts.map +1 -0
- package/lib/features/save/model.js +9 -0
- package/lib/features/save/model.js.map +1 -0
- package/lib/features/save/save.d.ts +27 -0
- package/lib/features/save/save.d.ts.map +1 -0
- package/lib/features/save/save.js +42 -0
- package/lib/features/save/save.js.map +1 -0
- package/lib/features/select/di.config.d.ts +19 -0
- package/lib/features/select/di.config.d.ts.map +1 -0
- package/lib/features/select/di.config.js +35 -0
- package/lib/features/select/di.config.js.map +1 -0
- package/lib/features/select/select-feedback-action.d.ts +34 -0
- package/lib/features/select/select-feedback-action.d.ts.map +1 -0
- package/lib/features/select/select-feedback-action.js +97 -0
- package/lib/features/select/select-feedback-action.js.map +1 -0
- package/lib/features/select/select-mouse-listener.d.ts +25 -0
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -0
- package/lib/features/select/select-mouse-listener.js +32 -0
- package/lib/features/select/select-mouse-listener.js.map +1 -0
- package/lib/features/select/selection-service.d.ts +52 -0
- package/lib/features/select/selection-service.d.ts.map +1 -0
- package/lib/features/select/selection-service.js +226 -0
- package/lib/features/select/selection-service.js.map +1 -0
- package/lib/features/select/selection-service.spec.d.ts +2 -0
- package/lib/features/select/selection-service.spec.d.ts.map +1 -0
- package/lib/features/select/selection-service.spec.js +360 -0
- package/lib/features/select/selection-service.spec.js.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +47 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +236 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +43 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js +181 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/css-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/css-feedback.js +111 -0
- package/lib/features/tool-feedback/css-feedback.js.map +1 -0
- package/lib/features/tool-feedback/di.config.d.ts +19 -0
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -0
- package/lib/features/tool-feedback/di.config.js +53 -0
- package/lib/features/tool-feedback/di.config.js.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +82 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +315 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +50 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +75 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js +111 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/model.d.ts +23 -0
- package/lib/features/tool-feedback/model.d.ts.map +1 -0
- package/lib/features/tool-feedback/model.js +34 -0
- package/lib/features/tool-feedback/model.js.map +1 -0
- package/lib/features/tool-feedback/view.d.ts +16 -0
- package/lib/features/tool-feedback/view.d.ts.map +1 -0
- package/lib/features/tool-feedback/view.js +81 -0
- package/lib/features/tool-feedback/view.js.map +1 -0
- package/lib/features/tool-palette/di.config.d.ts +20 -0
- package/lib/features/tool-palette/di.config.d.ts.map +1 -0
- package/lib/features/tool-palette/di.config.js +29 -0
- package/lib/features/tool-palette/di.config.js.map +1 -0
- package/lib/features/tool-palette/palette-item.d.ts +27 -0
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -0
- package/lib/features/tool-palette/palette-item.js +37 -0
- package/lib/features/tool-palette/palette-item.js.map +1 -0
- package/lib/features/tool-palette/tool-palette.d.ts +56 -0
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -0
- package/lib/features/tool-palette/tool-palette.js +401 -0
- package/lib/features/tool-palette/tool-palette.js.map +1 -0
- package/lib/features/tools/base-glsp-tool.d.ts +20 -0
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -0
- package/lib/features/tools/base-glsp-tool.js +70 -0
- package/lib/features/tools/base-glsp-tool.js.map +1 -0
- package/lib/features/tools/change-bounds-tool.d.ts +71 -0
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -0
- package/lib/features/tools/change-bounds-tool.js +371 -0
- package/lib/features/tools/change-bounds-tool.js.map +1 -0
- package/lib/features/tools/delete-tool.d.ts +36 -0
- package/lib/features/tools/delete-tool.d.ts.map +1 -0
- package/lib/features/tools/delete-tool.js +129 -0
- package/lib/features/tools/delete-tool.js.map +1 -0
- package/lib/features/tools/di.config.d.ts +23 -0
- package/lib/features/tools/di.config.d.ts.map +1 -0
- package/lib/features/tools/di.config.js +55 -0
- package/lib/features/tools/di.config.js.map +1 -0
- package/lib/features/tools/edge-creation-tool.d.ts +37 -0
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-creation-tool.js +158 -0
- package/lib/features/tools/edge-creation-tool.js.map +1 -0
- package/lib/features/tools/edge-edit-tool.d.ts +50 -0
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-edit-tool.js +281 -0
- package/lib/features/tools/edge-edit-tool.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +37 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.js +226 -0
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
- package/lib/features/tools/marquee-tool.d.ts +14 -0
- package/lib/features/tools/marquee-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-tool.js +69 -0
- package/lib/features/tools/marquee-tool.js.map +1 -0
- package/lib/features/tools/model.d.ts +22 -0
- package/lib/features/tools/model.d.ts.map +1 -0
- package/lib/features/tools/model.js +24 -0
- package/lib/features/tools/model.js.map +1 -0
- package/lib/features/tools/node-creation-tool.d.ts +26 -0
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/node-creation-tool.js +117 -0
- package/lib/features/tools/node-creation-tool.js.map +1 -0
- package/lib/features/tools/view.d.ts +7 -0
- package/lib/features/tools/view.d.ts.map +1 -0
- package/lib/features/tools/view.js +40 -0
- package/lib/features/tools/view.js.map +1 -0
- package/lib/features/undo-redo/model.d.ts +27 -0
- package/lib/features/undo-redo/model.d.ts.map +1 -0
- package/lib/features/undo-redo/model.js +18 -0
- package/lib/features/undo-redo/model.js.map +1 -0
- package/lib/features/validation/di.config.d.ts +25 -0
- package/lib/features/validation/di.config.d.ts.map +1 -0
- package/lib/features/validation/di.config.js +44 -0
- package/lib/features/validation/di.config.js.map +1 -0
- package/lib/features/validation/issue-marker.d.ts +43 -0
- package/lib/features/validation/issue-marker.d.ts.map +1 -0
- package/lib/features/validation/issue-marker.js +89 -0
- package/lib/features/validation/issue-marker.js.map +1 -0
- package/lib/features/validation/marker-navigator.d.ts +55 -0
- package/lib/features/validation/marker-navigator.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.js +247 -0
- package/lib/features/validation/marker-navigator.js.map +1 -0
- package/lib/features/validation/marker-navigator.spec.d.ts +18 -0
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.spec.js +177 -0
- package/lib/features/validation/marker-navigator.spec.js.map +1 -0
- package/lib/features/validation/validate.d.ts +111 -0
- package/lib/features/validation/validate.d.ts.map +1 -0
- package/lib/features/validation/validate.js +290 -0
- package/lib/features/validation/validate.js.map +1 -0
- package/lib/features/viewport/di.config.d.ts +19 -0
- package/lib/features/viewport/di.config.d.ts.map +1 -0
- package/lib/features/viewport/di.config.js +34 -0
- package/lib/features/viewport/di.config.js.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +7 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +54 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
- package/lib/index.d.ts +110 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +144 -0
- package/lib/index.js.map +1 -0
- package/lib/lib/model.d.ts +24 -0
- package/lib/lib/model.d.ts.map +1 -0
- package/lib/lib/model.js +33 -0
- package/lib/lib/model.js.map +1 -0
- package/lib/model-source/glsp-diagram-server.d.ts +38 -0
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -0
- package/lib/model-source/glsp-diagram-server.js +88 -0
- package/lib/model-source/glsp-diagram-server.js.map +1 -0
- package/lib/model-source/glsp-server-status.d.ts +30 -0
- package/lib/model-source/glsp-server-status.d.ts.map +1 -0
- package/lib/model-source/glsp-server-status.js +44 -0
- package/lib/model-source/glsp-server-status.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +112 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/array-utils.d.ts +28 -0
- package/lib/utils/array-utils.d.ts.map +1 -0
- package/lib/utils/array-utils.js +56 -0
- package/lib/utils/array-utils.js.map +1 -0
- package/lib/utils/html-utils.d.ts +17 -0
- package/lib/utils/html-utils.d.ts.map +1 -0
- package/lib/utils/html-utils.js +30 -0
- package/lib/utils/html-utils.js.map +1 -0
- package/lib/utils/layout-utils.d.ts +41 -0
- package/lib/utils/layout-utils.d.ts.map +1 -0
- package/lib/utils/layout-utils.js +61 -0
- package/lib/utils/layout-utils.js.map +1 -0
- package/lib/utils/marker.d.ts +48 -0
- package/lib/utils/marker.d.ts.map +1 -0
- package/lib/utils/marker.js +48 -0
- package/lib/utils/marker.js.map +1 -0
- package/lib/utils/smodel-util.d.ts +41 -0
- package/lib/utils/smodel-util.d.ts.map +1 -0
- package/lib/utils/smodel-util.js +134 -0
- package/lib/utils/smodel-util.js.map +1 -0
- package/lib/utils/viewpoint-util.d.ts +52 -0
- package/lib/utils/viewpoint-util.d.ts.map +1 -0
- package/lib/utils/viewpoint-util.js +89 -0
- package/lib/utils/viewpoint-util.js.map +1 -0
- package/lib/views/base-view-module.d.ts +24 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- package/lib/views/default-types.d.ts +37 -0
- package/lib/views/default-types.d.ts.map +1 -0
- package/lib/views/default-types.js +47 -0
- package/lib/views/default-types.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +11 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +70 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/views/index.d.ts +22 -0
- package/lib/views/index.d.ts.map +1 -0
- package/lib/views/index.js +34 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +8 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +59 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +37 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +68 -0
- package/src/base/action-dispatcher.ts +103 -0
- package/src/base/actions/context-actions.ts +43 -0
- package/src/base/actions/edit-mode-action.ts +33 -0
- package/src/base/actions/edit-validation-actions.ts +103 -0
- package/src/base/actions/focus-change-action.ts +26 -0
- package/src/base/args.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +24 -0
- package/src/base/auto-complete/auto-complete-widget.ts +314 -0
- package/src/base/auto-complete/validation-decorator.ts +126 -0
- package/src/base/command-stack.ts +36 -0
- package/src/base/di.config.ts +96 -0
- package/src/base/drag-aware-mouse-listener.ts +69 -0
- package/src/base/editor-context.ts +124 -0
- package/src/base/focus-tracker.ts +50 -0
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +118 -0
- package/src/base/model-initialization-constraint.ts +94 -0
- package/src/base/operations/operation.ts +178 -0
- package/src/base/selection-clearing-mouse-listener.ts +43 -0
- package/src/base/source-uri-aware.ts +22 -0
- package/src/base/tool-manager/glsp-tool-manager.ts +97 -0
- package/src/base/types.ts +37 -0
- package/src/base/view/view-registry.ts +31 -0
- package/src/features/change-bounds/model.ts +74 -0
- package/src/features/change-bounds/movement-restrictor.ts +89 -0
- package/src/features/change-bounds/snap.ts +35 -0
- package/src/features/command-palette/command-palette-tool.ts +46 -0
- package/src/features/command-palette/di.config.ts +34 -0
- package/src/features/command-palette/server-command-palette-provider.ts +48 -0
- package/src/features/context-menu/delete-element-context-menu.ts +42 -0
- package/src/features/context-menu/di.config.ts +35 -0
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +50 -0
- package/src/features/context-menu/server-context-menu-provider.ts +46 -0
- package/src/features/copy-paste/copy-paste-actions.ts +60 -0
- package/src/features/copy-paste/copy-paste-context-menu.ts +138 -0
- package/src/features/copy-paste/copy-paste-handler.ts +152 -0
- package/src/features/copy-paste/di.config.ts +45 -0
- package/src/features/decoration/decoration-placer.ts +46 -0
- package/src/features/decoration/di.config.ts +28 -0
- package/src/features/edit-label/di.config.ts +30 -0
- package/src/features/edit-label/edit-label-tool.ts +51 -0
- package/src/features/edit-label/edit-label-validator.ts +104 -0
- package/src/features/hints/di.config.ts +30 -0
- package/src/features/hints/model.ts +34 -0
- package/src/features/hints/request-type-hints-action.ts +36 -0
- package/src/features/hints/type-hints.ts +257 -0
- package/src/features/hover/di.config.ts +61 -0
- package/src/features/hover/hover.ts +95 -0
- package/src/features/layout/di.config.ts +26 -0
- package/src/features/layout/layout-commands.spec.ts +366 -0
- package/src/features/layout/layout-commands.ts +415 -0
- package/src/features/model-source-watcher/di.config.ts +26 -0
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +70 -0
- package/src/features/model-source-watcher/model-source-changed-action.ts +26 -0
- package/src/features/mouse-tool/di.config.ts +28 -0
- package/src/features/mouse-tool/mouse-tool.ts +139 -0
- package/src/features/navigation/di.config.ts +35 -0
- package/src/features/navigation/navigation-action-handler.ts +272 -0
- package/src/features/navigation/navigation-target-resolver.spec.ts +61 -0
- package/src/features/navigation/navigation-target-resolver.ts +146 -0
- package/src/features/rank/model.ts +29 -0
- package/src/features/reconnect/model.ts +76 -0
- package/src/features/save/di.config.ts +30 -0
- package/src/features/save/model.ts +26 -0
- package/src/features/save/save.ts +35 -0
- package/src/features/select/di.config.ts +35 -0
- package/src/features/select/select-feedback-action.ts +87 -0
- package/src/features/select/select-mouse-listener.ts +26 -0
- package/src/features/select/selection-service.spec.ts +372 -0
- package/src/features/select/selection-service.ts +239 -0
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +244 -0
- package/src/features/tool-feedback/creation-tool-feedback.ts +190 -0
- package/src/features/tool-feedback/css-feedback.ts +98 -0
- package/src/features/tool-feedback/di.config.ts +69 -0
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +327 -0
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +101 -0
- package/src/features/tool-feedback/marquee-tool-feedback.ts +104 -0
- package/src/features/tool-feedback/model.ts +32 -0
- package/src/features/tool-feedback/view.tsx +70 -0
- package/src/features/tool-palette/di.config.ts +30 -0
- package/src/features/tool-palette/palette-item.ts +40 -0
- package/src/features/tool-palette/tool-palette.ts +416 -0
- package/src/features/tools/base-glsp-tool.ts +53 -0
- package/src/features/tools/change-bounds-tool.ts +445 -0
- package/src/features/tools/delete-tool.ts +120 -0
- package/src/features/tools/di.config.ts +56 -0
- package/src/features/tools/edge-creation-tool.ts +171 -0
- package/src/features/tools/edge-edit-tool.ts +325 -0
- package/src/features/tools/marquee-mouse-tool.ts +244 -0
- package/src/features/tools/marquee-tool.ts +52 -0
- package/src/features/tools/model.ts +22 -0
- package/src/features/tools/node-creation-tool.ts +123 -0
- package/src/features/tools/view.tsx +38 -0
- package/src/features/undo-redo/model.ts +26 -0
- package/src/features/validation/di.config.ts +51 -0
- package/src/features/validation/issue-marker.ts +93 -0
- package/src/features/validation/marker-navigator.spec.ts +207 -0
- package/src/features/validation/marker-navigator.ts +249 -0
- package/src/features/validation/validate.ts +274 -0
- package/src/features/viewport/di.config.ts +47 -0
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +50 -0
- package/src/index.ts +115 -0
- package/src/lib/model.ts +27 -0
- package/src/model-source/glsp-diagram-server.ts +114 -0
- package/src/model-source/glsp-server-status.ts +38 -0
- package/src/utils/argument-utils.ts +127 -0
- package/src/utils/array-utils.ts +55 -0
- package/src/utils/html-utils.ts +25 -0
- package/src/utils/layout-utils.ts +97 -0
- package/src/utils/marker.ts +63 -0
- package/src/utils/smodel-util.ts +149 -0
- package/src/utils/viewpoint-util.ts +99 -0
- package/src/views/base-view-module.ts +98 -0
- package/src/views/default-types.ts +48 -0
- package/src/views/glsp-edge-view.tsx +70 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +55 -0
- package/src/views/rounded-corner-view.tsx +88 -0
- package/src/views/rounded-corner.ts +88 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import '../../css/glsp-sprotty.css';
|
|
17
|
+
|
|
18
|
+
import { InitializeResult } from '@eclipse-glsp/protocol';
|
|
19
|
+
import { Container, ContainerModule } from 'inversify';
|
|
20
|
+
import {
|
|
21
|
+
ActionHandlerRegistry,
|
|
22
|
+
configureActionHandler,
|
|
23
|
+
configureCommand,
|
|
24
|
+
ModelSource,
|
|
25
|
+
SetModelCommand,
|
|
26
|
+
TYPES
|
|
27
|
+
} from 'sprotty';
|
|
28
|
+
|
|
29
|
+
import { GLSPActionDispatcher } from './action-dispatcher';
|
|
30
|
+
import { SetEditModeAction } from './actions/edit-mode-action';
|
|
31
|
+
import { FocusStateChangedAction } from './actions/focus-change-action';
|
|
32
|
+
import { GLSPCommandStack } from './command-stack';
|
|
33
|
+
import { EditorContextService } from './editor-context';
|
|
34
|
+
import { FocusTracker } from './focus-tracker';
|
|
35
|
+
import { DefaultModelInitializationConstraint, ModelInitializationConstraint } from './model-initialization-constraint';
|
|
36
|
+
import { GLSPModelRegistry } from './model/model-registry';
|
|
37
|
+
import { FeedbackAwareUpdateModelCommand, SetModelActionHandler } from './model/update-model-command';
|
|
38
|
+
import { SelectionClearingMouseListener } from './selection-clearing-mouse-listener';
|
|
39
|
+
import { GLSPToolManager } from './tool-manager/glsp-tool-manager';
|
|
40
|
+
import { GLSP_TYPES } from './types';
|
|
41
|
+
import { GLSPViewRegistry } from './view/view-registry';
|
|
42
|
+
|
|
43
|
+
const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
44
|
+
const context = { bind, _unbind, isBound, rebind };
|
|
45
|
+
bind(EditorContextService).toSelf().inSingletonScope();
|
|
46
|
+
bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(ctx => () => new Promise<EditorContextService>((resolve, reject) => {
|
|
47
|
+
if (ctx.container.isBound(EditorContextService)) {
|
|
48
|
+
resolve(ctx.container.get<EditorContextService>(EditorContextService));
|
|
49
|
+
} else {
|
|
50
|
+
reject();
|
|
51
|
+
}
|
|
52
|
+
}));
|
|
53
|
+
|
|
54
|
+
configureActionHandler(context, SetEditModeAction.KIND, EditorContextService);
|
|
55
|
+
|
|
56
|
+
bind(FocusTracker).toSelf().inSingletonScope();
|
|
57
|
+
configureActionHandler(context, FocusStateChangedAction.KIND, FocusTracker);
|
|
58
|
+
|
|
59
|
+
// Model update initialization ------------------------------------
|
|
60
|
+
configureCommand(context, FeedbackAwareUpdateModelCommand);
|
|
61
|
+
configureActionHandler(context, SetModelCommand.KIND, SetModelActionHandler);
|
|
62
|
+
|
|
63
|
+
bind(TYPES.MouseListener).to(SelectionClearingMouseListener);
|
|
64
|
+
|
|
65
|
+
rebind(TYPES.ICommandStack).to(GLSPCommandStack);
|
|
66
|
+
bind(GLSPToolManager).toSelf().inSingletonScope();
|
|
67
|
+
bind(GLSP_TYPES.IGLSPToolManager).toService(GLSPToolManager);
|
|
68
|
+
rebind(TYPES.IToolManager).toService(GLSPToolManager);
|
|
69
|
+
bind(GLSPActionDispatcher).toSelf().inSingletonScope();
|
|
70
|
+
rebind(TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
|
|
71
|
+
|
|
72
|
+
bind(ModelInitializationConstraint).to(DefaultModelInitializationConstraint).inSingletonScope();
|
|
73
|
+
|
|
74
|
+
// support re-registration of model elements and views
|
|
75
|
+
rebind(TYPES.SModelRegistry).to(GLSPModelRegistry).inSingletonScope();
|
|
76
|
+
rebind(TYPES.ViewRegistry).to(GLSPViewRegistry).inSingletonScope();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
export default defaultGLSPModule;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Utility function to configure the {@link ModelSource}, i.e. the `DiagramServer`, as action handler for all server actions for the given diagramType.
|
|
83
|
+
* @param result A promise that resolves after all server actions have been registered.
|
|
84
|
+
* @param diagramType The diagram type.
|
|
85
|
+
* @param container The di container.
|
|
86
|
+
*/
|
|
87
|
+
export async function configureServerActions(result: InitializeResult, diagramType: string, container: Container): Promise<void> {
|
|
88
|
+
const modelSource = container.get<ModelSource>(TYPES.ModelSource);
|
|
89
|
+
const actionHandlerRegistry = container.get<ActionHandlerRegistry>(ActionHandlerRegistry);
|
|
90
|
+
const serverActions = result.serverActions[diagramType];
|
|
91
|
+
if (serverActions.length === 0) {
|
|
92
|
+
throw new Error(`No server-handled actions could be derived from the initialize result for diagramType: ${diagramType}!`);
|
|
93
|
+
}
|
|
94
|
+
serverActions.forEach(actionKind => actionHandlerRegistry.register(actionKind, modelSource));
|
|
95
|
+
}
|
|
96
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { Action, MouseListener, SModelElement } from 'sprotty';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A mouse listener that is aware of prior mouse dragging.
|
|
20
|
+
*
|
|
21
|
+
* Therefore, this listener distinguishes between mouse up events after dragging and
|
|
22
|
+
* mouse up events without prior dragging. Subclasses may override the methods
|
|
23
|
+
* `draggingMouseUp` and/or `nonDraggingMouseUp` to react to only these specific kinds
|
|
24
|
+
* of mouse up events.
|
|
25
|
+
*/
|
|
26
|
+
export class DragAwareMouseListener extends MouseListener {
|
|
27
|
+
|
|
28
|
+
private _isMouseDown = false;
|
|
29
|
+
private _isMouseDrag = false;
|
|
30
|
+
|
|
31
|
+
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
32
|
+
this._isMouseDown = true;
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
37
|
+
if (this._isMouseDown) {
|
|
38
|
+
this._isMouseDrag = true;
|
|
39
|
+
}
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
mouseUp(element: SModelElement, event: MouseEvent): Action[] {
|
|
44
|
+
this._isMouseDown = false;
|
|
45
|
+
if (this._isMouseDrag) {
|
|
46
|
+
this._isMouseDrag = false;
|
|
47
|
+
return this.draggingMouseUp(element, event);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return this.nonDraggingMouseUp(element, event);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
nonDraggingMouseUp(element: SModelElement, event: MouseEvent): Action[] {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
draggingMouseUp(element: SModelElement, event: MouseEvent): Action[] {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
get isMouseDrag(): boolean {
|
|
62
|
+
return this._isMouseDrag;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
get isMouseDown(): boolean {
|
|
66
|
+
return this._isMouseDown;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable, multiInject, optional } from 'inversify';
|
|
17
|
+
import { Action, IActionHandler, ModelSource, MousePositionTracker, Point, SModelElement, SModelRoot, TYPES } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
import { SelectionService } from '../features/select/selection-service';
|
|
20
|
+
import { distinctAdd, remove } from '../utils/array-utils';
|
|
21
|
+
import { EditMode, isSetEditModeAction } from './actions/edit-mode-action';
|
|
22
|
+
import { Args } from './args';
|
|
23
|
+
import { isSourceUriAware } from './source-uri-aware';
|
|
24
|
+
import { GLSP_TYPES } from './types';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The `EditorContext` may be used to represent the current state of the editor for particular actions.
|
|
28
|
+
* It encompasses the last recorded mouse position, the list of selected elements, and may contain
|
|
29
|
+
* custom arguments to encode additional state information.
|
|
30
|
+
*/
|
|
31
|
+
export interface EditorContext {
|
|
32
|
+
/**
|
|
33
|
+
* The list of selected element identifiers.
|
|
34
|
+
*/
|
|
35
|
+
readonly selectedElementIds: string[];
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The last recorded mouse position.
|
|
39
|
+
*/
|
|
40
|
+
readonly lastMousePosition?: Point;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Custom arguments.
|
|
44
|
+
*/
|
|
45
|
+
readonly args?: Args;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface EditModeListener {
|
|
49
|
+
editModeChanged(newValue: string, oldvalue: string): void;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@injectable()
|
|
53
|
+
export class EditorContextService implements IActionHandler {
|
|
54
|
+
|
|
55
|
+
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
56
|
+
@inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
|
|
57
|
+
@inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
|
|
58
|
+
protected _editMode: string;
|
|
59
|
+
|
|
60
|
+
constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) { }
|
|
61
|
+
|
|
62
|
+
register(editModeListener: EditModeListener): void {
|
|
63
|
+
distinctAdd(this.editModeListeners, editModeListener);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
deregister(editModeListener: EditModeListener): void {
|
|
67
|
+
remove(this.editModeListeners, editModeListener);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
get(args?: Args): EditorContext {
|
|
71
|
+
return {
|
|
72
|
+
selectedElementIds: Array.from(this.selectionService.getSelectedElementIDs()),
|
|
73
|
+
lastMousePosition: this.mousePositionTracker.lastPositionOnDiagram,
|
|
74
|
+
args
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
getWithSelection(selectedElementIds: string[], args?: Args): EditorContext {
|
|
79
|
+
return {
|
|
80
|
+
selectedElementIds,
|
|
81
|
+
lastMousePosition: this.mousePositionTracker.lastPositionOnDiagram,
|
|
82
|
+
args
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
handle(action: Action): void {
|
|
87
|
+
if (isSetEditModeAction(action)) {
|
|
88
|
+
const oldValue = this._editMode;
|
|
89
|
+
this._editMode = action.editMode;
|
|
90
|
+
this.notifiyEditModeListeners(oldValue);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
protected notifiyEditModeListeners(oldValue: string): void {
|
|
95
|
+
this.editModeListeners.forEach(listener => listener.editModeChanged(oldValue, this.editMode));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async getSourceUri(): Promise<string | undefined> {
|
|
99
|
+
const modelSource = await this.modelSource();
|
|
100
|
+
if (isSourceUriAware(modelSource)) {
|
|
101
|
+
return modelSource.getSourceURI();
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
get editMode(): string {
|
|
107
|
+
return this._editMode;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
get modelRoot(): Readonly<SModelRoot> {
|
|
111
|
+
return this.selectionService.getModelRoot();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
get selectedElements(): Readonly<SModelElement>[] {
|
|
115
|
+
return this.selectionService.getSelectedElements();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
get isReadonly(): boolean {
|
|
119
|
+
return this.editMode === EditMode.READONLY;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export type EditorContextServiceProvider = () => Promise<EditorContextService>;
|
|
124
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable } from 'inversify';
|
|
17
|
+
import { Action, IActionHandler, ICommand, TYPES, ViewerOptions } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
import { isFocusStateChangedAction } from './actions/focus-change-action';
|
|
20
|
+
|
|
21
|
+
@injectable()
|
|
22
|
+
export class FocusTracker implements IActionHandler {
|
|
23
|
+
|
|
24
|
+
protected inActiveCssClass = 'inactive';
|
|
25
|
+
protected _hasFocus = true;
|
|
26
|
+
|
|
27
|
+
@inject(TYPES.ViewerOptions) protected options: ViewerOptions;
|
|
28
|
+
|
|
29
|
+
get hasFocus(): boolean {
|
|
30
|
+
return this._hasFocus;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
handle(action: Action): void | Action | ICommand {
|
|
34
|
+
if (isFocusStateChangedAction(action)) {
|
|
35
|
+
this._hasFocus = action.hasFocus;
|
|
36
|
+
const placeholder = document.getElementById(this.options.baseDiv);
|
|
37
|
+
if (!placeholder) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (this.hasFocus) {
|
|
41
|
+
if (placeholder.classList.contains(this.inActiveCssClass)) {
|
|
42
|
+
placeholder.classList.remove(this.inActiveCssClass);
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
placeholder.classList.add(this.inActiveCssClass);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { SModelElement, SModelRegistry } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
@injectable()
|
|
20
|
+
export class GLSPModelRegistry extends SModelRegistry {
|
|
21
|
+
register(key: string, factory: (u: void) => SModelElement): void {
|
|
22
|
+
if (key === undefined) {
|
|
23
|
+
throw new Error('Key is undefined');
|
|
24
|
+
}
|
|
25
|
+
if (this.hasKey(key)) {
|
|
26
|
+
// do not throw error but log overwriting
|
|
27
|
+
console.log(`Factory for model element '${key}' will be overwritten.`);
|
|
28
|
+
}
|
|
29
|
+
this.elements.set(key, factory);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
|
+
import {
|
|
18
|
+
Action,
|
|
19
|
+
ActionHandlerRegistry,
|
|
20
|
+
Command,
|
|
21
|
+
CommandActionHandler,
|
|
22
|
+
CommandExecutionContext,
|
|
23
|
+
CommandReturn,
|
|
24
|
+
IActionHandler,
|
|
25
|
+
ILogger,
|
|
26
|
+
SetModelAction,
|
|
27
|
+
SetModelCommand,
|
|
28
|
+
SModelRoot,
|
|
29
|
+
TYPES
|
|
30
|
+
} from 'sprotty';
|
|
31
|
+
import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
|
|
32
|
+
|
|
33
|
+
import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
|
|
34
|
+
import { FeedbackCommand } from '../../features/tool-feedback/model';
|
|
35
|
+
import { GLSP_TYPES } from '../types';
|
|
36
|
+
|
|
37
|
+
/* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
|
|
38
|
+
* UpdateModel behaves the same as SetModel if no model is present yet.*/
|
|
39
|
+
@injectable()
|
|
40
|
+
export class SetModelActionHandler implements IActionHandler {
|
|
41
|
+
handle(action: Action): Action | void {
|
|
42
|
+
if (isSetModelAction(action)) {
|
|
43
|
+
return new UpdateModelAction(action.newRoot, false);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function isSetModelAction(action: Action): action is SetModelAction {
|
|
49
|
+
return action !== undefined && (action.kind === SetModelCommand.KIND)
|
|
50
|
+
&& (action as SetModelAction).newRoot !== undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface SModelRootListener {
|
|
54
|
+
modelRootChanged(root: Readonly<SModelRoot>): void;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their feedback
|
|
59
|
+
* to the `newRoot` before performing the update
|
|
60
|
+
*/
|
|
61
|
+
@injectable()
|
|
62
|
+
export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
63
|
+
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
64
|
+
@inject(GLSP_TYPES.IFeedbackActionDispatcher) @optional() protected readonly feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
65
|
+
@inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
|
|
66
|
+
@multiInject(GLSP_TYPES.SModelRootListener) @optional() protected modelRootListeners: SModelRootListener[] = [];
|
|
67
|
+
|
|
68
|
+
protected actionHandlerRegistry?: ActionHandlerRegistry;
|
|
69
|
+
|
|
70
|
+
constructor(@inject(TYPES.Action) action: UpdateModelAction) {
|
|
71
|
+
super(action);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@postConstruct()
|
|
75
|
+
protected initialize(): void {
|
|
76
|
+
this.actionHandlerRegistryProvider().then(registry => this.actionHandlerRegistry = registry);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
|
|
80
|
+
if (this.feedbackActionDispatcher && this.actionHandlerRegistry) {
|
|
81
|
+
// Create a temporary context wich defines the `newRoot` as `root`
|
|
82
|
+
// This way we do not corrupt the redo/undo behavior of the super class
|
|
83
|
+
const tempContext: CommandExecutionContext = {
|
|
84
|
+
root: newRoot,
|
|
85
|
+
duration: context.duration,
|
|
86
|
+
logger: context.logger,
|
|
87
|
+
modelChanged: context.modelChanged,
|
|
88
|
+
modelFactory: context.modelFactory,
|
|
89
|
+
syncer: context.syncer
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const feedbackCommands = this.getFeedbackCommands(this.actionHandlerRegistry);
|
|
93
|
+
feedbackCommands.forEach(command => command.execute(tempContext));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
this.modelRootListeners.forEach(listener => listener.modelRootChanged(newRoot));
|
|
97
|
+
return super.performUpdate(oldRoot, newRoot, context);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
protected getFeedbackCommands(registry: ActionHandlerRegistry): Command[] {
|
|
101
|
+
const result: Command[] = [];
|
|
102
|
+
this.feedbackActionDispatcher.getRegisteredFeedback().forEach(action => {
|
|
103
|
+
const handler = registry.get(action.kind).find(h => h instanceof CommandActionHandler);
|
|
104
|
+
if (handler instanceof CommandActionHandler) {
|
|
105
|
+
result.push(handler.handle(action));
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
// sort commands descanding by priority
|
|
109
|
+
return result.sort((a, b) => getPriority(b) - getPriority(a));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function getPriority(command: Command): number {
|
|
114
|
+
if (command instanceof FeedbackCommand) {
|
|
115
|
+
return command.priority;
|
|
116
|
+
}
|
|
117
|
+
return 0;
|
|
118
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { Action, InitializeCanvasBoundsAction, UpdateModelAction } from 'sprotty';
|
|
18
|
+
import { Deferred } from 'sprotty/lib/utils/async';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The constraint defining when the initialization of the GLSP model is completed.
|
|
22
|
+
*
|
|
23
|
+
* Many actions, such as the `CenterAction`, can only be successfully processed if
|
|
24
|
+
* the GLSP model initialization is completed, that is, the model has been set,
|
|
25
|
+
* its bounds have been computed, the canvas bounds are available, etc.
|
|
26
|
+
*
|
|
27
|
+
* An injectable implementation of this constraint will be used by the
|
|
28
|
+
* `GLSPActionDispatcher` to determine when the initialization is completed.
|
|
29
|
+
* The action dispatcher therefore provides a promise via `onceInitialized()`
|
|
30
|
+
* to trigger clients that want to dispatch an action, once the initialization
|
|
31
|
+
* is done.
|
|
32
|
+
*
|
|
33
|
+
* For most of the cases `DefaultInitializationConstraint` can be used. In fact,
|
|
34
|
+
* it is bound by default. However, custom implementations can rebind other
|
|
35
|
+
* implementations of this constraint to, for instance, delay further before the
|
|
36
|
+
* `onceInitialized()` promise is fulfilled by the `GLSPActionDispatcher`.
|
|
37
|
+
*/
|
|
38
|
+
@injectable()
|
|
39
|
+
export abstract class ModelInitializationConstraint {
|
|
40
|
+
protected completion: Deferred<void> = new Deferred();
|
|
41
|
+
protected completed = false;
|
|
42
|
+
|
|
43
|
+
get isCompleted(): boolean {
|
|
44
|
+
return this.completed;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected setCompleted(isCompleted: boolean): void {
|
|
48
|
+
this.completed = isCompleted;
|
|
49
|
+
if (isCompleted) {
|
|
50
|
+
this.completion.resolve();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
onInitialized(): Promise<void> {
|
|
55
|
+
return this.completion.promise;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
notifyDispatched(action: Action): void {
|
|
59
|
+
if (this.isCompleted) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (this.isInitializedAfter(action)) {
|
|
63
|
+
this.setCompleted(true);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
abstract isInitializedAfter(action: Action): boolean;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Default initialization constraint triggers after a non-empty `UpdateModelAction`
|
|
72
|
+
* and a subsequent `InitializeCanvasBoundsAction`.
|
|
73
|
+
*/
|
|
74
|
+
@injectable()
|
|
75
|
+
export class DefaultModelInitializationConstraint extends ModelInitializationConstraint {
|
|
76
|
+
protected seenNonEmptyUpdateModel = false;
|
|
77
|
+
|
|
78
|
+
isInitializedAfter(action: Action): boolean {
|
|
79
|
+
if (this.isNonEmptyUpdateModel(action)) {
|
|
80
|
+
this.seenNonEmptyUpdateModel = true;
|
|
81
|
+
} else if (this.seenNonEmptyUpdateModel && action.kind === InitializeCanvasBoundsAction.KIND) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
protected isNonEmptyUpdateModel(action: Action): boolean {
|
|
88
|
+
if (action && action.kind === UpdateModelAction.KIND) {
|
|
89
|
+
const updateModelAction = action as UpdateModelAction;
|
|
90
|
+
return updateModelAction.newRoot !== undefined && updateModelAction.newRoot.type !== 'NONE';
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|