@eclipse-glsp/client 0.10.0-next.ca17587.154 → 1.1.0-RC01
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/css/decoration.css +5 -1
- package/css/glsp-sprotty.css +149 -8
- package/css/tool-palette.css +2 -2
- package/lib/base/action-dispatcher.d.ts +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +10 -9
- package/lib/base/container-modules.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +15 -4
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +31 -19
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +15 -8
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +43 -53
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.d.ts +2 -17
- package/lib/base/source-uri-aware.d.ts.map +1 -1
- package/lib/base/source-uri-aware.js +4 -6
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +146 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +55 -40
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +60 -4
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +96 -9
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +34 -4
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +37 -31
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -5
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +44 -19
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +3 -3
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +12 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +201 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-elements-action.d.ts +198 -0
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
- package/lib/features/layout/layout-elements-action.js +391 -0
- package/lib/features/layout/layout-elements-action.js.map +1 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
- package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- package/lib/features/layout/layouter.d.ts +37 -0
- package/lib/features/layout/layouter.d.ts.map +1 -0
- package/lib/features/layout/layouter.js +131 -0
- package/lib/features/layout/layouter.js.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.js +201 -0
- package/lib/features/layout/tests/freeform-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/hbox-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts +34 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.js +96 -0
- package/lib/features/layout/tests/layouter-test-util.js.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/vbox-layout.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +18 -2
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +26 -13
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -6
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +10 -48
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +4 -2
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +63 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +14 -5
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +55 -64
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/source-model-watcher/di.config.d.ts +4 -0
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.d.ts.map +1 -1
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.js +4 -4
- package/lib/features/source-model-watcher/di.config.js.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.d.ts → source-model-watcher/source-model-changed-action-handler.d.ts} +10 -10
- package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.js → source-model-watcher/source-model-changed-action-handler.js} +28 -28
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +9 -2
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -15
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +0 -15
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +9 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +11 -5
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +25 -5
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +27 -25
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +64 -91
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +17 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +66 -91
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +10 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +26 -22
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +3 -18
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +6 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +8 -7
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +301 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +6 -22
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +1 -1
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +30 -0
- package/lib/views/glsp-projection-view.d.ts.map +1 -0
- package/lib/views/glsp-projection-view.js +148 -0
- package/lib/views/glsp-projection-view.js.map +1 -0
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +7 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +10 -19
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/src/base/actions/sprotty-actions.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/container-modules.ts +6 -5
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +32 -12
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +54 -41
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/source-uri-aware.ts +5 -4
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +74 -44
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +99 -12
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +51 -29
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +48 -28
- package/src/features/layout/di.config.ts +17 -7
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +273 -0
- package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
- package/src/features/layout/layout-elements-action.ts +486 -0
- package/src/features/layout/layouter.ts +137 -0
- package/src/features/layout/tests/freeform-layout.spec.ts +216 -0
- package/src/features/layout/tests/hbox-layout.spec.ts +171 -0
- package/src/features/layout/tests/layouter-test-util.ts +122 -0
- package/src/features/layout/tests/vbox-layout.spec.ts +171 -0
- package/src/features/layout/vbox-layout.ts +41 -24
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -57
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +82 -3
- package/src/features/select/selection-service.spec.ts +12 -9
- package/src/features/select/selection-service.ts +52 -60
- package/src/features/{model-source-watcher → source-model-watcher}/di.config.ts +5 -5
- package/src/features/{model-source-watcher/model-source-changed-action-handler.ts → source-model-watcher/source-model-changed-action-handler.ts} +17 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
- package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +23 -12
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +13 -11
- package/src/features/validation/issue-marker.ts +34 -12
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +62 -90
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +12 -12
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +288 -0
- package/src/utils/layout-utils.ts +9 -29
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/base-view-module.ts +5 -1
- package/src/views/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/glsp-projection-view.tsx +173 -0
- package/src/views/index.ts +2 -0
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/layout/layout-commands.d.ts +0 -153
- package/lib/features/layout/layout-commands.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.js +0 -412
- package/lib/features/layout/layout-commands.js.map +0 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -3
- package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.spec.js.map +0 -1
- package/lib/features/model-source-watcher/di.config.d.ts +0 -4
- package/lib/features/model-source-watcher/di.config.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +0 -1
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/layout/layout-commands.ts +0 -424
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, CreateEdgeOperation,
|
|
16
|
+
import { Action, CreateEdgeOperation, TriggerEdgeCreationAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
AnchorComputerRegistry,
|
|
@@ -66,13 +66,13 @@ export class EdgeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
|
66
66
|
disable(): void {
|
|
67
67
|
this.mouseTool.deregister(this.creationToolMouseListener);
|
|
68
68
|
this.mouseTool.deregister(this.feedbackEndMovingMouseListener);
|
|
69
|
-
this.deregisterFeedback([
|
|
69
|
+
this.deregisterFeedback([RemoveFeedbackEdgeAction.create(), cursorFeedbackAction()]);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
handle(action: Action): Action | void {
|
|
73
|
-
if (
|
|
73
|
+
if (TriggerEdgeCreationAction.is(action)) {
|
|
74
74
|
this.triggerAction = action;
|
|
75
|
-
return
|
|
75
|
+
return EnableToolsAction.create([this.id]);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -96,16 +96,18 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
96
96
|
this.target = undefined;
|
|
97
97
|
this.currentTarget = undefined;
|
|
98
98
|
this.allowedTarget = false;
|
|
99
|
-
this.tool.dispatchFeedback([
|
|
99
|
+
this.tool.dispatchFeedback([RemoveFeedbackEdgeAction.create()]);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
|
|
102
|
+
override nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
|
|
103
103
|
const result: Action[] = [];
|
|
104
104
|
if (event.button === 0) {
|
|
105
105
|
if (!this.isSourceSelected()) {
|
|
106
106
|
if (this.currentTarget && this.allowedTarget) {
|
|
107
107
|
this.source = this.currentTarget.id;
|
|
108
|
-
this.tool.dispatchFeedback([
|
|
108
|
+
this.tool.dispatchFeedback([
|
|
109
|
+
DrawFeedbackEdgeAction.create({ elementTypeId: this.triggerAction.elementTypeId, sourceId: this.source })
|
|
110
|
+
]);
|
|
109
111
|
}
|
|
110
112
|
} else {
|
|
111
113
|
if (this.currentTarget && this.allowedTarget) {
|
|
@@ -113,15 +115,22 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
117
|
if (this.source && this.target) {
|
|
116
|
-
result.push(
|
|
118
|
+
result.push(
|
|
119
|
+
CreateEdgeOperation.create({
|
|
120
|
+
elementTypeId: this.triggerAction.elementTypeId,
|
|
121
|
+
sourceElementId: this.source,
|
|
122
|
+
targetElementId: this.target,
|
|
123
|
+
args: this.triggerAction.args
|
|
124
|
+
})
|
|
125
|
+
);
|
|
117
126
|
if (!isCtrlOrCmd(event)) {
|
|
118
|
-
result.push(
|
|
127
|
+
result.push(EnableDefaultToolsAction.create());
|
|
119
128
|
} else {
|
|
120
129
|
this.reinitialize();
|
|
121
130
|
}
|
|
122
131
|
}
|
|
123
132
|
} else if (event.button === 2) {
|
|
124
|
-
result.push(
|
|
133
|
+
result.push(EnableDefaultToolsAction.create());
|
|
125
134
|
}
|
|
126
135
|
return result;
|
|
127
136
|
}
|
|
@@ -134,7 +143,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
134
143
|
return this.target !== undefined;
|
|
135
144
|
}
|
|
136
145
|
|
|
137
|
-
mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
146
|
+
override mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
138
147
|
const newCurrentTarget = findParentByFeature(target, isConnectable);
|
|
139
148
|
if (newCurrentTarget !== this.currentTarget) {
|
|
140
149
|
this.currentTarget = newCurrentTarget;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
EdgeRouterRegistry,
|
|
23
23
|
findParentByFeature,
|
|
24
24
|
isConnectable,
|
|
25
|
+
ISnapper,
|
|
25
26
|
isSelected,
|
|
26
27
|
SModelElement,
|
|
27
28
|
SModelRoot,
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
SRoutingHandle
|
|
30
31
|
} from 'sprotty';
|
|
31
32
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
32
|
-
import {
|
|
33
|
+
import { TYPES } from '../../base/types';
|
|
33
34
|
import { isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
34
35
|
import { isReconnectable, isReconnectHandle, isSourceRoutingHandle, isTargetRoutingHandle, SReconnectHandle } from '../reconnect/model';
|
|
35
36
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
@@ -50,9 +51,10 @@ import { BaseGLSPTool } from './base-glsp-tool';
|
|
|
50
51
|
export class EdgeEditTool extends BaseGLSPTool {
|
|
51
52
|
static ID = 'glsp.edge-edit-tool';
|
|
52
53
|
|
|
53
|
-
@inject(
|
|
54
|
+
@inject(TYPES.SelectionService) protected selectionService: SelectionService;
|
|
54
55
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
55
56
|
@inject(EdgeRouterRegistry) @optional() protected edgeRouterRegistry?: EdgeRouterRegistry;
|
|
57
|
+
@inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
|
|
56
58
|
|
|
57
59
|
protected feedbackEdgeSourceMovingListener: FeedbackEdgeSourceMovingMouseListener;
|
|
58
60
|
protected feedbackEdgeTargetMovingListener: FeedbackEdgeTargetMovingMouseListener;
|
|
@@ -71,7 +73,7 @@ export class EdgeEditTool extends BaseGLSPTool {
|
|
|
71
73
|
// install feedback move mouse listener for client-side move updates
|
|
72
74
|
this.feedbackEdgeSourceMovingListener = new FeedbackEdgeSourceMovingMouseListener(this.anchorRegistry);
|
|
73
75
|
this.feedbackEdgeTargetMovingListener = new FeedbackEdgeTargetMovingMouseListener(this.anchorRegistry);
|
|
74
|
-
this.feedbackMovingListener = new FeedbackEdgeRouteMovingMouseListener(this.edgeRouterRegistry);
|
|
76
|
+
this.feedbackMovingListener = new FeedbackEdgeRouteMovingMouseListener(this.edgeRouterRegistry, this.snapper);
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
registerFeedbackListeners(): void {
|
|
@@ -123,10 +125,10 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
123
125
|
// note: order is important here as we want the reconnect handles to cover the routing handles
|
|
124
126
|
const feedbackActions = [];
|
|
125
127
|
if (canEditRouting(edge)) {
|
|
126
|
-
feedbackActions.push(
|
|
128
|
+
feedbackActions.push(SwitchRoutingModeAction.create({ elementsToActivate: [this.edge.id] }));
|
|
127
129
|
}
|
|
128
130
|
if (isReconnectable(edge)) {
|
|
129
|
-
feedbackActions.push(
|
|
131
|
+
feedbackActions.push(ShowEdgeReconnectHandlesFeedbackAction.create(this.edge.id));
|
|
130
132
|
}
|
|
131
133
|
this.tool.dispatchFeedback(feedbackActions);
|
|
132
134
|
}
|
|
@@ -139,16 +141,16 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
139
141
|
if (this.edge && this.edge.target && this.edge.source) {
|
|
140
142
|
if (isSourceRoutingHandle(edge, reconnectHandle)) {
|
|
141
143
|
this.tool.dispatchFeedback([
|
|
142
|
-
|
|
144
|
+
HideEdgeReconnectHandlesFeedbackAction.create(),
|
|
143
145
|
cursorFeedbackAction(CursorCSS.EDGE_RECONNECT),
|
|
144
|
-
|
|
146
|
+
DrawFeedbackEdgeSourceAction.create({ elementTypeId: this.edge.type, targetId: this.edge.targetId })
|
|
145
147
|
]);
|
|
146
148
|
this.reconnectMode = 'NEW_SOURCE';
|
|
147
149
|
} else if (isTargetRoutingHandle(edge, reconnectHandle)) {
|
|
148
150
|
this.tool.dispatchFeedback([
|
|
149
|
-
|
|
151
|
+
HideEdgeReconnectHandlesFeedbackAction.create(),
|
|
150
152
|
cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET),
|
|
151
|
-
|
|
153
|
+
DrawFeedbackEdgeAction.create({ elementTypeId: this.edge.type, sourceId: this.edge.sourceId })
|
|
152
154
|
]);
|
|
153
155
|
this.reconnectMode = 'NEW_TARGET';
|
|
154
156
|
}
|
|
@@ -185,7 +187,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
185
187
|
return this.routingHandle !== undefined;
|
|
186
188
|
}
|
|
187
189
|
|
|
188
|
-
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
190
|
+
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
189
191
|
const result: Action[] = super.mouseDown(target, event);
|
|
190
192
|
if (event.button === 0) {
|
|
191
193
|
const reconnectHandle = findParentByFeature(target, isReconnectHandle);
|
|
@@ -208,7 +210,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
208
210
|
return result;
|
|
209
211
|
}
|
|
210
212
|
|
|
211
|
-
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
213
|
+
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
212
214
|
const result = super.mouseMove(target, event);
|
|
213
215
|
if (this.isMouseDrag) {
|
|
214
216
|
// reset any selected connectables when we are dragging, maybe the user is just panning
|
|
@@ -217,17 +219,17 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
217
219
|
return result;
|
|
218
220
|
}
|
|
219
221
|
|
|
220
|
-
mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
222
|
+
override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
221
223
|
const result = super.mouseUp(target, event);
|
|
222
224
|
if (!this.isReadyToReconnect() && !this.isReadyToReroute()) {
|
|
223
225
|
return result;
|
|
224
226
|
}
|
|
225
227
|
|
|
226
228
|
if (this.edge && this.newConnectable) {
|
|
227
|
-
const
|
|
228
|
-
const
|
|
229
|
-
if (this.requiresReconnect(
|
|
230
|
-
result.push(
|
|
229
|
+
const sourceElementId = this.isReconnectingNewSource() ? this.newConnectable.id : this.edge.sourceId;
|
|
230
|
+
const targetElementId = this.isReconnectingNewSource() ? this.edge.targetId : this.newConnectable.id;
|
|
231
|
+
if (this.requiresReconnect(sourceElementId, targetElementId)) {
|
|
232
|
+
result.push(ReconnectEdgeOperation.create({ edgeElementId: this.edge.id, sourceElementId, targetElementId }));
|
|
231
233
|
}
|
|
232
234
|
this.reset();
|
|
233
235
|
} else if (this.edge && this.routingHandle) {
|
|
@@ -235,14 +237,16 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
235
237
|
// reroute actions
|
|
236
238
|
const latestEdge = target.index.getById(this.edge.id);
|
|
237
239
|
if (latestEdge && isRoutable(latestEdge)) {
|
|
238
|
-
result.push(
|
|
240
|
+
result.push(
|
|
241
|
+
ChangeRoutingPointsOperation.create([{ elementId: latestEdge.id, newRoutingPoints: latestEdge.routingPoints }])
|
|
242
|
+
);
|
|
239
243
|
this.routingHandle = undefined;
|
|
240
244
|
}
|
|
241
245
|
}
|
|
242
246
|
return result;
|
|
243
247
|
}
|
|
244
248
|
|
|
245
|
-
mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
249
|
+
override mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
246
250
|
if (this.edge && this.isReconnecting()) {
|
|
247
251
|
const currentTarget = findParentByFeature(target, isConnectable);
|
|
248
252
|
if (!this.newConnectable || currentTarget !== this.newConnectable) {
|
|
@@ -306,9 +310,9 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
306
310
|
protected resetFeedback(): void {
|
|
307
311
|
const result: Action[] = [];
|
|
308
312
|
if (this.edge) {
|
|
309
|
-
result.push(
|
|
313
|
+
result.push(SwitchRoutingModeAction.create({ elementsToDeactivate: [this.edge.id] }));
|
|
310
314
|
}
|
|
311
|
-
result.push(...[
|
|
315
|
+
result.push(...[HideEdgeReconnectHandlesFeedbackAction.create(), cursorFeedbackAction(), RemoveFeedbackEdgeAction.create()]);
|
|
312
316
|
this.tool.deregisterFeedback(result);
|
|
313
317
|
this.tool.deregisterFeedbackListeners();
|
|
314
318
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022 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 } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { EnableDefaultToolsAction, IActionHandler, ICommand } from 'sprotty';
|
|
19
|
+
import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Action handler that enables the default tools when the diagram lost focus.
|
|
23
|
+
* @see FocusTracker
|
|
24
|
+
* @see FocusStateChangedAction
|
|
25
|
+
*/
|
|
26
|
+
@injectable()
|
|
27
|
+
export class EnableDefaultToolsOnFocusLossHandler implements IActionHandler {
|
|
28
|
+
handle(action: Action): void | Action | ICommand {
|
|
29
|
+
if (FocusStateChangedAction.is(action) && !action.hasFocus) {
|
|
30
|
+
return EnableDefaultToolsAction.create();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -45,7 +45,7 @@ export class MarqueeUtil {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
drawMarqueeAction(): DrawMarqueeAction {
|
|
48
|
-
return
|
|
48
|
+
return DrawMarqueeAction.create({ startPoint: this.startPoint, endPoint: this.currentPoint });
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
isEdgePathMarked(path: string | null): boolean {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -24,12 +24,11 @@ import {
|
|
|
24
24
|
SEdge,
|
|
25
25
|
SModelElement,
|
|
26
26
|
SModelRoot,
|
|
27
|
-
SNode
|
|
28
|
-
TYPES
|
|
27
|
+
SNode
|
|
29
28
|
} from 'sprotty';
|
|
30
29
|
import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
|
|
31
|
-
import { GLSP_TYPES } from '../../base/types';
|
|
32
30
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
31
|
+
import { TYPES } from '../../base/types';
|
|
33
32
|
import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
34
33
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
35
34
|
import { RemoveMarqueeAction } from '../tool-feedback/marquee-tool-feedback';
|
|
@@ -41,7 +40,7 @@ export class MarqueeMouseTool extends BaseGLSPTool {
|
|
|
41
40
|
static ID = 'glsp.marquee-mouse-tool';
|
|
42
41
|
|
|
43
42
|
@inject(TYPES.DOMHelper) protected domHelper: DOMHelper;
|
|
44
|
-
@inject(
|
|
43
|
+
@inject(TYPES.IMarqueeBehavior) @optional() protected marqueeBehavior: IMarqueeBehavior;
|
|
45
44
|
|
|
46
45
|
protected marqueeMouseListener: MarqueeMouseListener;
|
|
47
46
|
protected shiftKeyListener: ShiftKeyListener = new ShiftKeyListener();
|
|
@@ -93,7 +92,7 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
93
92
|
this.edges = Array.from(document.querySelectorAll('g')).filter(e => sEdges.includes(this.domHelper.findSModelIdByDOMElement(e)));
|
|
94
93
|
}
|
|
95
94
|
|
|
96
|
-
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
95
|
+
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
97
96
|
this.isActive = true;
|
|
98
97
|
this.marqueeUtil.updateStartPoint(getAbsolutePosition(target, event));
|
|
99
98
|
if (event.ctrlKey) {
|
|
@@ -108,27 +107,27 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
108
107
|
return [];
|
|
109
108
|
}
|
|
110
109
|
|
|
111
|
-
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
110
|
+
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
112
111
|
this.marqueeUtil.updateCurrentPoint(getAbsolutePosition(target, event));
|
|
113
112
|
if (this.isActive) {
|
|
114
113
|
const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isNodeMarked(toAbsoluteBounds(e))).map(e => e.id);
|
|
115
114
|
const edgeIdsSelected = this.edges.filter(e => this.isEdgeMarked(e)).map(e => this.domHelper.findSModelIdByDOMElement(e));
|
|
116
115
|
const selected = nodeIdsSelected.concat(edgeIdsSelected);
|
|
117
116
|
return [
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
SelectAction.create({ deselectedElementsIDs: Array.from(target.root.index.all().map(e => e.id)) }),
|
|
118
|
+
SelectAction.create({ selectedElementsIDs: selected.concat(this.previouslySelected) }),
|
|
120
119
|
this.marqueeUtil.drawMarqueeAction()
|
|
121
120
|
];
|
|
122
121
|
}
|
|
123
122
|
return [];
|
|
124
123
|
}
|
|
125
124
|
|
|
126
|
-
mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
125
|
+
override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
127
126
|
this.isActive = false;
|
|
128
127
|
if (event.shiftKey) {
|
|
129
|
-
return [
|
|
128
|
+
return [RemoveMarqueeAction.create()];
|
|
130
129
|
}
|
|
131
|
-
return [
|
|
130
|
+
return [RemoveMarqueeAction.create(), EnableDefaultToolsAction.create()];
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
isEdgeMarked(element: SVGElement): boolean {
|
|
@@ -144,10 +143,10 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
144
143
|
|
|
145
144
|
@injectable()
|
|
146
145
|
export class ShiftKeyListener extends KeyListener {
|
|
147
|
-
keyUp(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
146
|
+
override keyUp(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
148
147
|
if (event.shiftKey) {
|
|
149
148
|
return [];
|
|
150
149
|
}
|
|
151
|
-
return [
|
|
150
|
+
return [RemoveMarqueeAction.create(), EnableDefaultToolsAction.create()];
|
|
152
151
|
}
|
|
153
152
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -42,9 +42,9 @@ export class MarqueeTool extends BaseGLSPTool {
|
|
|
42
42
|
|
|
43
43
|
@injectable()
|
|
44
44
|
export class MarqueeKeyListener extends KeyListener {
|
|
45
|
-
keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
45
|
+
override keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
46
46
|
if (event.shiftKey) {
|
|
47
|
-
return [
|
|
47
|
+
return [EnableToolsAction.create([MarqueeMouseTool.ID])];
|
|
48
48
|
}
|
|
49
49
|
return [];
|
|
50
50
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { boundsFeature, RectangularNode } from 'sprotty';
|
|
17
18
|
|
|
18
19
|
export class MarqueeNode extends RectangularNode {
|
|
19
|
-
static readonly DEFAULT_FEATURES = [boundsFeature];
|
|
20
|
+
static override readonly DEFAULT_FEATURES = [boundsFeature];
|
|
20
21
|
startPoint: Point;
|
|
21
22
|
endPoint: Point;
|
|
22
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, CreateNodeOperation,
|
|
16
|
+
import { Action, CreateNodeOperation, TriggerNodeCreationAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable, optional } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
EnableDefaultToolsAction,
|
|
@@ -60,9 +60,9 @@ export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
handle(action: Action): Action | void {
|
|
63
|
-
if (
|
|
63
|
+
if (TriggerNodeCreationAction.is(action)) {
|
|
64
64
|
this.triggerAction = action;
|
|
65
|
-
return
|
|
65
|
+
return EnableToolsAction.create([this.id]);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -83,7 +83,7 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
83
83
|
return this.triggerAction.elementTypeId;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
nonDraggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
86
|
+
override nonDraggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
87
87
|
const result: Action[] = [];
|
|
88
88
|
if (this.creationAllowed(this.elementTypeId)) {
|
|
89
89
|
const containerId = this.container ? this.container.id : undefined;
|
|
@@ -94,15 +94,15 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
94
94
|
elementProxy.size = { width: 0, height: 0 };
|
|
95
95
|
location = this.tool.snapper.snap(location, elementProxy);
|
|
96
96
|
}
|
|
97
|
-
result.push(
|
|
97
|
+
result.push(CreateNodeOperation.create(this.elementTypeId, { location, containerId, args: this.triggerAction.args }));
|
|
98
98
|
if (!isCtrlOrCmd(event)) {
|
|
99
|
-
result.push(
|
|
99
|
+
result.push(EnableDefaultToolsAction.create());
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
return result;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
105
|
+
override mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
106
106
|
const currentContainer = findParentByFeature(target, isContainable);
|
|
107
107
|
if (!this.container || currentContainer !== this.container) {
|
|
108
108
|
this.container = currentContainer;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
import { injectable } from 'inversify';
|
|
17
17
|
import { VNode } from 'snabbdom';
|
|
18
18
|
import { RectangularNodeView, RenderingContext, svg } from 'sprotty';
|
|
19
|
-
|
|
20
19
|
import { MarqueeNode } from './model';
|
|
21
20
|
|
|
22
21
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -24,7 +23,7 @@ const JSX = { createElement: svg };
|
|
|
24
23
|
|
|
25
24
|
@injectable()
|
|
26
25
|
export class MarqueeView extends RectangularNodeView {
|
|
27
|
-
render(node: MarqueeNode, context: RenderingContext): VNode {
|
|
26
|
+
override render(node: MarqueeNode, context: RenderingContext): VNode {
|
|
28
27
|
const graph = (
|
|
29
28
|
<g>
|
|
30
29
|
<rect
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,31 +13,33 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { SetMarkersAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { GLSP_TYPES } from '../../base/types';
|
|
18
|
+
import { configureActionHandler, configureCommand } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
20
|
import {
|
|
21
21
|
LeftToRightTopToBottomComparator,
|
|
22
22
|
MarkerNavigator,
|
|
23
23
|
MarkerNavigatorContextMenuItemProvider,
|
|
24
24
|
MarkerNavigatorKeyListener,
|
|
25
|
-
|
|
25
|
+
NavigateToMarkerAction,
|
|
26
|
+
NavigateToMarkerActionHandler,
|
|
26
27
|
SModelElementComparator
|
|
27
28
|
} from './marker-navigator';
|
|
28
|
-
import { ApplyMarkersCommand, DeleteMarkersCommand,
|
|
29
|
+
import { ApplyMarkersCommand, DeleteMarkersCommand, SetMarkersActionHandler, ValidationFeedbackEmitter } from './validate';
|
|
29
30
|
|
|
30
31
|
export const validationModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
configureCommand(
|
|
32
|
+
const context = { bind, isBound };
|
|
33
|
+
configureActionHandler(context, SetMarkersAction.KIND, SetMarkersActionHandler);
|
|
34
|
+
configureCommand(context, ApplyMarkersCommand);
|
|
35
|
+
configureCommand(context, DeleteMarkersCommand);
|
|
34
36
|
bind(ValidationFeedbackEmitter).toSelf().inSingletonScope();
|
|
35
37
|
});
|
|
36
38
|
|
|
37
39
|
export const markerNavigatorModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
38
40
|
bind(SModelElementComparator).to(LeftToRightTopToBottomComparator).inSingletonScope();
|
|
39
41
|
bind(MarkerNavigator).toSelf().inSingletonScope();
|
|
40
|
-
|
|
42
|
+
configureActionHandler({ bind, isBound }, NavigateToMarkerAction.KIND, NavigateToMarkerActionHandler);
|
|
41
43
|
});
|
|
42
44
|
|
|
43
45
|
/**
|
|
@@ -46,6 +48,6 @@ export const markerNavigatorModule = new ContainerModule((bind, _unbind, isBound
|
|
|
46
48
|
* `registerMarkerNavigationCommands()` in `glsp-theia-integration` instead.
|
|
47
49
|
*/
|
|
48
50
|
export const markerNavigatorContextMenuModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
49
|
-
bind(
|
|
51
|
+
bind(TYPES.IContextMenuProvider).to(MarkerNavigatorContextMenuItemProvider).inSingletonScope();
|
|
50
52
|
bind(TYPES.KeyListener).to(MarkerNavigatorKeyListener).inSingletonScope();
|
|
51
53
|
});
|
|
@@ -13,14 +13,23 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Marker, MarkerKind } from '@eclipse-glsp/protocol';
|
|
17
|
-
import { SDecoration, SIssue, SIssueMarker, SParentElement } from 'sprotty';
|
|
16
|
+
import { Bounds, Marker, MarkerKind } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { isBoundsAware, Projectable, SDecoration, SIssue, SIssueMarker, SIssueSeverity, SParentElement } from 'sprotty';
|
|
18
18
|
|
|
19
|
-
export class GIssueMarker extends SIssueMarker {
|
|
19
|
+
export class GIssueMarker extends SIssueMarker implements Projectable {
|
|
20
20
|
constructor() {
|
|
21
21
|
super();
|
|
22
22
|
this.features = new Set<symbol>(SDecoration.DEFAULT_FEATURES);
|
|
23
23
|
}
|
|
24
|
+
projectionCssClasses: string[];
|
|
25
|
+
projectedBounds?: Bounds;
|
|
26
|
+
override issues: SIssue[] = [];
|
|
27
|
+
override type = 'marker';
|
|
28
|
+
|
|
29
|
+
computeProjectionCssClasses(): void {
|
|
30
|
+
const severityCss = getSeverity(this);
|
|
31
|
+
this.projectionCssClasses = ['sprotty-issue', 'sprotty-' + severityCss];
|
|
32
|
+
}
|
|
24
33
|
}
|
|
25
34
|
|
|
26
35
|
/**
|
|
@@ -31,14 +40,15 @@ export class GIssueMarker extends SIssueMarker {
|
|
|
31
40
|
* @returns the child `SIssueMarker` or a new `SIssueMarker` if no such child exists.
|
|
32
41
|
*/
|
|
33
42
|
export function getOrCreateSIssueMarker(modelElement: SParentElement): SIssueMarker {
|
|
34
|
-
let issueMarker:
|
|
43
|
+
let issueMarker: GIssueMarker | undefined;
|
|
35
44
|
|
|
36
45
|
issueMarker = getSIssueMarker(modelElement);
|
|
37
46
|
|
|
38
47
|
if (issueMarker === undefined) {
|
|
39
48
|
issueMarker = new GIssueMarker();
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
if (isBoundsAware(modelElement)) {
|
|
50
|
+
issueMarker.projectedBounds = modelElement.parentToLocal(modelElement.bounds);
|
|
51
|
+
}
|
|
42
52
|
modelElement.add(issueMarker);
|
|
43
53
|
}
|
|
44
54
|
|
|
@@ -51,11 +61,11 @@ export function getOrCreateSIssueMarker(modelElement: SParentElement): SIssueMar
|
|
|
51
61
|
* @param modelElement for which the `SIssueMarker` should be retrieved.
|
|
52
62
|
* @returns the child `SIssueMarker` or `undefined` if no such child exists.
|
|
53
63
|
*/
|
|
54
|
-
export function getSIssueMarker(modelElement: SParentElement):
|
|
55
|
-
let issueMarker:
|
|
64
|
+
export function getSIssueMarker(modelElement: SParentElement): GIssueMarker | undefined {
|
|
65
|
+
let issueMarker: GIssueMarker | undefined;
|
|
56
66
|
|
|
57
67
|
for (const child of modelElement.children) {
|
|
58
|
-
if (child instanceof
|
|
68
|
+
if (child instanceof GIssueMarker) {
|
|
59
69
|
issueMarker = child;
|
|
60
70
|
}
|
|
61
71
|
}
|
|
@@ -69,8 +79,8 @@ export function getSIssueMarker(modelElement: SParentElement): SIssueMarker | un
|
|
|
69
79
|
* @param marker `Marker` for that an `SIssue` should be created.
|
|
70
80
|
* @returns the created `SIssue`.
|
|
71
81
|
*/
|
|
72
|
-
export function createSIssue(marker: Marker): SIssue {
|
|
73
|
-
const issue
|
|
82
|
+
export function createSIssue(marker: Marker, parent?: SParentElement): SIssue {
|
|
83
|
+
const issue = new SIssue();
|
|
74
84
|
issue.message = marker.description;
|
|
75
85
|
|
|
76
86
|
switch (marker.kind) {
|
|
@@ -87,6 +97,18 @@ export function createSIssue(marker: Marker): SIssue {
|
|
|
87
97
|
break;
|
|
88
98
|
}
|
|
89
99
|
}
|
|
90
|
-
|
|
91
100
|
return issue;
|
|
92
101
|
}
|
|
102
|
+
|
|
103
|
+
export function getSeverity(marker: SIssueMarker): SIssueSeverity {
|
|
104
|
+
let currentSeverity: SIssueSeverity = 'info';
|
|
105
|
+
for (const severity of marker.issues.map(s => s.severity)) {
|
|
106
|
+
if (severity === 'error') {
|
|
107
|
+
return severity;
|
|
108
|
+
}
|
|
109
|
+
if (severity === 'warning' && currentSeverity === 'info') {
|
|
110
|
+
currentSeverity = severity;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return currentSeverity;
|
|
114
|
+
}
|