@eclipse-glsp/client 1.1.0-next.698b9de.254 → 1.1.0-next.69a77b0.259
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/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +5 -3
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.js +1 -1
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +1 -1
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts +17 -2
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +43 -3
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +21 -3
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +2 -2
- 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 +10 -7
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +27 -10
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/{features/tool-feedback → base/feedback}/css-feedback.d.ts +1 -1
- package/lib/base/feedback/css-feedback.d.ts.map +1 -0
- package/lib/{features/tool-feedback → base/feedback}/css-feedback.js +5 -6
- package/lib/base/feedback/css-feedback.js.map +1 -0
- package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.d.ts +11 -9
- package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -0
- package/lib/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.js +26 -20
- package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -0
- package/lib/{features/tool-feedback/model.d.ts → base/feedback/feedback-command.d.ts} +1 -1
- package/lib/base/feedback/feedback-command.d.ts.map +1 -0
- package/lib/{features/tool-feedback/model.js → base/feedback/feedback-command.js} +1 -1
- package/lib/base/feedback/feedback-command.js.map +1 -0
- package/lib/base/{model → feedback}/update-model-command.d.ts +3 -15
- package/lib/base/feedback/update-model-command.d.ts.map +1 -0
- package/lib/base/{model → feedback}/update-model-command.js +3 -27
- package/lib/base/feedback/update-model-command.js.map +1 -0
- package/lib/base/focus-tracker.js +2 -3
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.js +2 -3
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model-initialization-constraint.js +4 -6
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/ranked.d.ts +34 -0
- package/lib/base/ranked.d.ts.map +1 -0
- package/lib/base/ranked.js +38 -0
- package/lib/base/ranked.js.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.js +2 -3
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/{features/select → base}/selection-service.d.ts +34 -13
- package/lib/base/selection-service.d.ts.map +1 -0
- package/lib/{features/select → base}/selection-service.js +73 -29
- package/lib/base/selection-service.js.map +1 -0
- package/lib/base/selection-service.spec.d.ts +2 -0
- package/lib/base/selection-service.spec.d.ts.map +1 -0
- package/lib/base/selection-service.spec.js +281 -0
- package/lib/base/selection-service.spec.js.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +3 -3
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +5 -6
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/view/key-tool.d.ts +5 -0
- package/lib/base/view/key-tool.d.ts.map +1 -0
- package/lib/base/view/key-tool.js +36 -0
- package/lib/base/view/key-tool.js.map +1 -0
- package/lib/base/view/mouse-tool.d.ts +19 -0
- package/lib/base/view/mouse-tool.d.ts.map +1 -0
- package/lib/{features/mouse-tool → base/view}/mouse-tool.js +14 -11
- package/lib/base/view/mouse-tool.js.map +1 -0
- package/lib/base/view/view-registry.js +2 -3
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/{base/container-modules.d.ts → container-modules.d.ts} +2 -2
- package/lib/container-modules.d.ts.map +1 -0
- package/lib/{base/container-modules.js → container-modules.js} +49 -41
- package/lib/container-modules.js.map +1 -0
- package/lib/features/accessibility/move-zoom/move-handler.js +6 -8
- package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
- package/lib/features/accessibility/move-zoom/zoom-handler.js +6 -8
- package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +4 -5
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +6 -8
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
- package/lib/features/accessibility/search/search-palette.js +3 -4
- package/lib/features/accessibility/search/search-palette.js.map +1 -1
- package/lib/features/accessibility/search/search-tool.js +2 -3
- package/lib/features/accessibility/search/search-tool.js.map +1 -1
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +2 -3
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +1 -1
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js +5 -6
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +1 -1
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -1
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +5 -6
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
- package/lib/features/autocomplete-palette/base-autocomplete-palette.js +1 -1
- package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -1
- package/lib/features/bounds/freeform-layout.js +2 -3
- package/lib/features/bounds/freeform-layout.js.map +1 -1
- package/lib/features/bounds/freeform-layout.spec.d.ts +3 -0
- package/lib/features/bounds/freeform-layout.spec.d.ts.map +1 -0
- package/lib/features/bounds/freeform-layout.spec.js +201 -0
- package/lib/features/bounds/freeform-layout.spec.js.map +1 -0
- package/lib/features/bounds/glsp-hidden-bounds-updater.js +2 -3
- package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
- package/lib/features/bounds/hbox-layout.js +2 -3
- package/lib/features/bounds/hbox-layout.js.map +1 -1
- package/lib/features/bounds/hbox-layout.spec.d.ts +3 -0
- package/lib/features/bounds/hbox-layout.spec.d.ts.map +1 -0
- package/lib/features/bounds/hbox-layout.spec.js +160 -0
- package/lib/features/bounds/hbox-layout.spec.js.map +1 -0
- package/lib/features/bounds/layouter-test-util.spec.d.ts +32 -0
- package/lib/features/bounds/layouter-test-util.spec.d.ts.map +1 -0
- package/lib/features/bounds/layouter-test-util.spec.js +96 -0
- package/lib/features/bounds/layouter-test-util.spec.js.map +1 -0
- package/lib/features/bounds/layouter.js +2 -3
- package/lib/features/bounds/layouter.js.map +1 -1
- package/lib/features/bounds/vbox-layout.js +2 -3
- package/lib/features/bounds/vbox-layout.js.map +1 -1
- package/lib/features/bounds/vbox-layout.spec.d.ts +3 -0
- package/lib/features/bounds/vbox-layout.spec.d.ts.map +1 -0
- package/lib/features/bounds/vbox-layout.spec.js +160 -0
- package/lib/features/bounds/vbox-layout.spec.js.map +1 -0
- package/lib/features/change-bounds/model.js +2 -2
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +3 -4
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.js +2 -3
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/{rank/model.d.ts → change-bounds/snap.spec.d.ts} +3 -8
- 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 +2 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +3 -4
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +2 -3
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +1 -1
- 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 +4 -5
- 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.js +3 -4
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +6 -8
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +4 -6
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/decoration/decoration-placer.js +2 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +0 -3
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +3 -11
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +5 -7
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/export/glsp-svg-exporter.js +2 -3
- package/lib/features/export/glsp-svg-exporter.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +2 -2
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +9 -11
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +3 -4
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.js +1 -1
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/layout-elements-action.d.ts +1 -1
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
- package/lib/features/layout/layout-elements-action.js +14 -17
- package/lib/features/layout/layout-elements-action.js.map +1 -1
- 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-elements-action.spec.js +321 -0
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- package/lib/features/navigation/navigation-action-handler.js +5 -6
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +2 -3
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +3 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js +53 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
- package/lib/features/routing/di.config.d.ts +22 -0
- package/lib/features/routing/di.config.d.ts.map +1 -0
- package/lib/features/routing/di.config.js +57 -0
- package/lib/features/routing/di.config.js.map +1 -0
- package/lib/features/routing/glsp-manhattan-edge-router.d.ts.map +1 -0
- package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -0
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +3 -5
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-command.d.ts +12 -0
- package/lib/features/select/select-feedback-command.d.ts.map +1 -0
- package/lib/features/select/{select-feedback-action.js → select-feedback-command.js} +6 -30
- package/lib/features/select/select-feedback-command.js.map +1 -0
- package/lib/features/select/select-mouse-listener.d.ts +1 -1
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +2 -2
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js +5 -7
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
- package/lib/features/svg-metadata/metadata-placer.js +2 -3
- package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +4 -4
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +12 -13
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-creation-tool.d.ts +10 -0
- package/lib/features/tools/base-glsp-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/base-glsp-creation-tool.js +45 -0
- package/lib/features/tools/base-glsp-creation-tool.js.map +1 -0
- package/lib/features/tools/base-glsp-tool.d.ts +26 -8
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +34 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.d.ts +12 -5
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -0
- package/lib/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.js +45 -27
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -0
- package/lib/features/tools/{change-bounds-tool.d.ts → change-bounds/change-bounds-tool.d.ts} +13 -14
- package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -0
- package/lib/features/tools/{change-bounds-tool.js → change-bounds/change-bounds-tool.js} +50 -35
- package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -0
- package/lib/features/tools/change-bounds/di.config.d.ts +19 -0
- package/lib/features/tools/change-bounds/di.config.d.ts.map +1 -0
- package/lib/features/tools/change-bounds/di.config.js +32 -0
- package/lib/features/tools/change-bounds/di.config.js.map +1 -0
- package/lib/features/tools/change-bounds/view.d.ts +9 -0
- package/lib/features/tools/change-bounds/view.d.ts.map +1 -0
- package/lib/features/{tool-feedback → tools/change-bounds}/view.js +5 -21
- package/lib/features/tools/change-bounds/view.js.map +1 -0
- package/lib/features/tools/{delete-tool.d.ts → deletion/delete-tool.d.ts} +4 -9
- package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -0
- package/lib/features/tools/{delete-tool.js → deletion/delete-tool.js} +13 -29
- package/lib/features/tools/deletion/delete-tool.js.map +1 -0
- package/lib/features/{tool-feedback → tools/deletion}/di.config.d.ts +2 -2
- package/lib/features/tools/deletion/di.config.d.ts.map +1 -0
- package/lib/features/{mouse-tool → tools/deletion}/di.config.js +7 -7
- package/lib/features/tools/deletion/di.config.js.map +1 -0
- package/lib/features/{tool-feedback/creation-tool-feedback.d.ts → tools/edge-creation/dangling-edge-feedback.d.ts} +5 -10
- package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -0
- package/lib/features/{tool-feedback/creation-tool-feedback.js → tools/edge-creation/dangling-edge-feedback.js} +25 -87
- package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -0
- package/lib/features/tools/edge-creation/di.config.d.ts +19 -0
- package/lib/features/tools/edge-creation/di.config.d.ts.map +1 -0
- package/lib/features/tools/edge-creation/di.config.js +29 -0
- package/lib/features/tools/edge-creation/di.config.js.map +1 -0
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +26 -0
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -0
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +74 -0
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -0
- package/lib/features/tools/{edge-creation-tool.d.ts → edge-creation/edge-creation-tool.d.ts} +6 -11
- package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/{edge-creation-tool.js → edge-creation/edge-creation-tool.js} +29 -40
- package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -0
- package/lib/features/tools/edge-creation/view.d.ts +10 -0
- package/lib/features/tools/edge-creation/view.d.ts.map +1 -0
- package/lib/features/tools/edge-creation/view.js +43 -0
- package/lib/features/tools/edge-creation/view.js.map +1 -0
- package/lib/features/{mouse-tool → tools/edge-edit}/di.config.d.ts +2 -2
- package/lib/features/tools/edge-edit/di.config.d.ts.map +1 -0
- package/lib/features/tools/edge-edit/di.config.js +35 -0
- package/lib/features/tools/edge-edit/di.config.js.map +1 -0
- package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.d.ts +14 -8
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -0
- package/lib/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.js +42 -37
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -0
- package/lib/features/tools/{edge-edit-tool.d.ts → edge-edit/edge-edit-tool.d.ts} +7 -9
- package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -0
- package/lib/features/tools/{edge-edit-tool.js → edge-edit/edge-edit-tool.js} +28 -33
- package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +21 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -1
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +9 -3
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -1
- package/lib/features/tools/marquee-selection/di.config.d.ts +19 -0
- package/lib/features/tools/marquee-selection/di.config.d.ts.map +1 -0
- package/lib/features/tools/marquee-selection/di.config.js +34 -0
- package/lib/features/tools/marquee-selection/di.config.js.map +1 -0
- package/lib/features/tools/{marquee-behavior.d.ts → marquee-selection/marquee-behavior.d.ts} +10 -10
- package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/{marquee-behavior.js → marquee-selection/marquee-behavior.js} +2 -2
- package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -0
- package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +17 -0
- package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/{marquee-mouse-tool.d.ts → marquee-selection/marquee-mouse-tool.d.ts} +4 -6
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -0
- package/lib/features/tools/{marquee-mouse-tool.js → marquee-selection/marquee-mouse-tool.js} +12 -22
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -0
- package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.d.ts +2 -2
- package/lib/features/tools/marquee-selection/marquee-tool-feedback.d.ts.map +1 -0
- package/lib/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.js +8 -10
- package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -0
- package/lib/features/tools/marquee-selection/marquee-tool.d.ts +12 -0
- package/lib/features/tools/marquee-selection/marquee-tool.d.ts.map +1 -0
- package/lib/features/tools/{marquee-tool.js → marquee-selection/marquee-tool.js} +8 -20
- package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -0
- package/lib/features/tools/{model.d.ts → marquee-selection/model.d.ts} +1 -1
- package/lib/features/tools/marquee-selection/model.d.ts.map +1 -0
- package/lib/features/tools/{model.js → marquee-selection/model.js} +2 -2
- package/lib/features/tools/marquee-selection/model.js.map +1 -0
- package/lib/features/tools/{view.d.ts → marquee-selection/view.d.ts} +1 -1
- package/lib/features/tools/marquee-selection/view.d.ts.map +1 -0
- package/lib/features/tools/{view.js → marquee-selection/view.js} +3 -4
- package/lib/features/tools/marquee-selection/view.js.map +1 -0
- package/lib/features/tools/node-creation/di.config.d.ts +19 -0
- package/lib/features/tools/node-creation/di.config.d.ts.map +1 -0
- package/lib/features/{rank/model.js → tools/node-creation/di.config.js} +12 -13
- package/lib/features/tools/node-creation/di.config.js.map +1 -0
- package/lib/features/tools/{node-creation-tool.d.ts → node-creation/node-creation-tool.d.ts} +7 -10
- package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/{node-creation-tool.js → node-creation/node-creation-tool.js} +17 -30
- package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -0
- package/lib/features/validation/marker-navigator.d.ts +4 -3
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +16 -20
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +3 -0
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.spec.js +182 -0
- package/lib/features/validation/marker-navigator.spec.js.map +1 -0
- package/lib/features/validation/validate.d.ts +2 -2
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +12 -17
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -4
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/glsp-sprotty/index.d.ts +1 -1
- package/lib/glsp-sprotty/index.d.ts.map +1 -1
- package/lib/glsp-sprotty/index.js +26 -25
- package/lib/glsp-sprotty/index.js.map +1 -1
- package/lib/glsp-sprotty/types.d.ts +4 -8
- package/lib/glsp-sprotty/types.d.ts.map +1 -1
- package/lib/glsp-sprotty/types.js +1 -1
- package/lib/glsp-sprotty/types.js.map +1 -1
- package/lib/index.d.ts +36 -27
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +58 -46
- package/lib/index.js.map +1 -1
- package/lib/lib/model.js +1 -1
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +5 -3
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/utils/argument-utils.js +3 -3
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/marker.js +1 -1
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.spec.d.ts +2 -0
- package/lib/utils/smodel-util.spec.d.ts.map +1 -0
- package/lib/utils/smodel-util.spec.js +184 -0
- package/lib/utils/smodel-util.spec.js.map +1 -0
- package/lib/utils/viewpoint-util.d.ts +20 -1
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +30 -1
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/compartments.js +2 -3
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.js +2 -3
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.js +2 -3
- package/lib/views/glsp-projection-view.js.map +1 -1
- package/lib/views/issue-marker-view.js +2 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -3
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +3 -3
- package/src/base/action-dispatcher.ts +3 -1
- package/src/base/command-stack.ts +55 -3
- package/src/base/di.config.ts +34 -9
- package/src/base/drag-aware-mouse-listener.ts +2 -2
- package/src/base/editor-context-service.ts +28 -13
- package/src/{features/tool-feedback → base/feedback}/css-feedback.ts +1 -1
- package/src/{features/tool-feedback → base/feedback}/feedback-action-dispatcher.ts +31 -23
- package/src/base/{model → feedback}/update-model-command.ts +3 -29
- package/src/base/ranked.ts +42 -0
- package/src/{features/select → base}/selection-service.spec.ts +51 -121
- package/src/{features/select → base}/selection-service.ts +82 -31
- package/src/base/tool-manager/glsp-tool-manager.ts +4 -4
- package/src/{features/rank/model.ts → base/view/key-tool.ts} +9 -13
- package/src/{features/mouse-tool → base/view}/mouse-tool.ts +14 -15
- package/src/{base/container-modules.ts → container-modules.ts} +33 -26
- package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +2 -2
- package/src/features/accessibility/search/search-palette.ts +1 -1
- package/src/features/accessibility/view-key-tools/movement-key-tool.ts +2 -2
- package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +3 -3
- package/src/features/bounds/layouter-test-util.spec.ts +1 -1
- package/src/features/change-bounds/movement-restrictor.ts +1 -1
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +2 -2
- package/src/features/copy-paste/copy-paste-context-menu.ts +1 -1
- package/src/features/edit-label/edit-label-tool.ts +4 -12
- package/src/features/hints/type-hints.ts +2 -2
- package/src/features/hover/hover.ts +2 -1
- package/src/features/layout/di.config.ts +1 -1
- package/src/features/layout/layout-elements-action.spec.ts +1 -3
- package/src/features/layout/layout-elements-action.ts +2 -2
- package/src/features/navigation/navigation-action-handler.ts +1 -1
- package/src/features/routing/di.config.ts +82 -0
- package/src/features/select/di.config.ts +2 -4
- package/src/features/select/{select-feedback-action.ts → select-feedback-command.ts} +2 -38
- package/src/features/select/select-mouse-listener.ts +2 -2
- package/src/features/source-model-watcher/source-model-changed-action-handler.ts +1 -1
- package/src/features/tool-palette/tool-palette.ts +12 -12
- package/src/features/tools/base-glsp-creation-tool.ts +40 -0
- package/src/features/tools/base-glsp-tool.ts +32 -10
- package/src/features/{tool-feedback → tools/change-bounds}/change-bounds-tool-feedback.ts +52 -21
- package/src/features/tools/{change-bounds-tool.ts → change-bounds/change-bounds-tool.ts} +64 -35
- package/src/features/tools/change-bounds/di.config.ts +31 -0
- package/src/features/{tool-feedback → tools/change-bounds}/view.tsx +2 -14
- package/src/features/tools/{delete-tool.ts → deletion/delete-tool.ts} +8 -18
- package/src/features/{mouse-tool → tools/deletion}/di.config.ts +7 -7
- package/src/features/{tool-feedback/creation-tool-feedback.ts → tools/edge-creation/dangling-edge-feedback.ts} +18 -88
- package/src/features/tools/edge-creation/di.config.ts +28 -0
- package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +89 -0
- package/src/features/tools/{edge-creation-tool.ts → edge-creation/edge-creation-tool.ts} +26 -43
- package/src/features/tools/edge-creation/view.tsx +33 -0
- package/src/features/tools/edge-edit/di.config.ts +41 -0
- package/src/features/{tool-feedback → tools/edge-edit}/edge-edit-tool-feedback.ts +27 -15
- package/src/features/tools/{edge-edit-tool.ts → edge-edit/edge-edit-tool.ts} +29 -27
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +11 -2
- package/src/features/tools/marquee-selection/di.config.ts +35 -0
- package/src/features/tools/{marquee-behavior.ts → marquee-selection/marquee-behavior.ts} +9 -9
- package/src/features/tools/{marquee-mouse-tool.ts → marquee-selection/marquee-mouse-tool.ts} +11 -17
- package/src/features/{tool-feedback → tools/marquee-selection}/marquee-tool-feedback.ts +1 -1
- package/src/features/tools/{marquee-tool.ts → marquee-selection/marquee-tool.ts} +5 -11
- package/{lib/features/tools/di.config.d.ts → src/features/tools/node-creation/di.config.ts} +10 -12
- package/src/features/tools/{node-creation-tool.ts → node-creation/node-creation-tool.ts} +14 -31
- package/src/features/validation/marker-navigator.ts +5 -5
- package/src/features/validation/validate.ts +2 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +1 -1
- package/src/glsp-sprotty/index.ts +1 -1
- package/src/glsp-sprotty/types.ts +2 -4
- package/src/index.ts +63 -49
- package/src/model-source/glsp-diagram-server.ts +7 -1
- package/src/utils/smodel-util.spec.ts +3 -3
- package/src/utils/viewpoint-util.ts +32 -0
- package/lib/base/container-modules.d.ts.map +0 -1
- package/lib/base/container-modules.js.map +0 -1
- package/lib/base/model/update-model-command.d.ts.map +0 -1
- package/lib/base/model/update-model-command.js.map +0 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +0 -1
- package/lib/features/mouse-tool/di.config.js.map +0 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +0 -22
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +0 -1
- package/lib/features/mouse-tool/mouse-tool.js.map +0 -1
- package/lib/features/rank/model.d.ts.map +0 -1
- package/lib/features/rank/model.js.map +0 -1
- package/lib/features/select/select-feedback-action.d.ts +0 -25
- package/lib/features/select/select-feedback-action.d.ts.map +0 -1
- package/lib/features/select/select-feedback-action.js.map +0 -1
- package/lib/features/select/selection-service.d.ts.map +0 -1
- package/lib/features/select/selection-service.js.map +0 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +0 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +0 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +0 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +0 -1
- package/lib/features/tool-feedback/css-feedback.d.ts.map +0 -1
- package/lib/features/tool-feedback/css-feedback.js.map +0 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +0 -1
- package/lib/features/tool-feedback/di.config.js +0 -53
- package/lib/features/tool-feedback/di.config.js.map +0 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +0 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +0 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +0 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +0 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +0 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +0 -1
- package/lib/features/tool-feedback/model.d.ts.map +0 -1
- package/lib/features/tool-feedback/model.js.map +0 -1
- package/lib/features/tool-feedback/view.d.ts +0 -16
- package/lib/features/tool-feedback/view.d.ts.map +0 -1
- package/lib/features/tool-feedback/view.js.map +0 -1
- package/lib/features/tools/change-bounds-tool.d.ts.map +0 -1
- package/lib/features/tools/change-bounds-tool.js.map +0 -1
- package/lib/features/tools/delete-tool.d.ts.map +0 -1
- package/lib/features/tools/delete-tool.js.map +0 -1
- package/lib/features/tools/di.config.d.ts.map +0 -1
- package/lib/features/tools/di.config.js +0 -66
- package/lib/features/tools/di.config.js.map +0 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +0 -1
- package/lib/features/tools/edge-creation-tool.js.map +0 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +0 -1
- package/lib/features/tools/edge-edit-tool.js.map +0 -1
- package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +0 -1
- package/lib/features/tools/glsp-manhattan-edge-router.js.map +0 -1
- package/lib/features/tools/marquee-behavior.d.ts.map +0 -1
- package/lib/features/tools/marquee-behavior.js.map +0 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +0 -1
- package/lib/features/tools/marquee-mouse-tool.js.map +0 -1
- package/lib/features/tools/marquee-tool.d.ts +0 -14
- package/lib/features/tools/marquee-tool.d.ts.map +0 -1
- package/lib/features/tools/marquee-tool.js.map +0 -1
- package/lib/features/tools/model.d.ts.map +0 -1
- package/lib/features/tools/model.js.map +0 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +0 -1
- package/lib/features/tools/node-creation-tool.js.map +0 -1
- package/lib/features/tools/view.d.ts.map +0 -1
- package/lib/features/tools/view.js.map +0 -1
- package/src/features/tool-feedback/di.config.ts +0 -65
- package/src/features/tools/di.config.ts +0 -77
- /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.d.ts +0 -0
- /package/lib/features/{tools → routing}/glsp-manhattan-edge-router.js +0 -0
- /package/src/{features/tool-feedback/model.ts → base/feedback/feedback-command.ts} +0 -0
- /package/src/features/{tools → routing}/glsp-manhattan-edge-router.ts +0 -0
- /package/src/features/tools/{marquee-behavior.spec.ts → marquee-selection/marquee-behavior.spec.ts} +0 -0
- /package/src/features/tools/{model.ts → marquee-selection/model.ts} +0 -0
- /package/src/features/tools/{view.tsx → marquee-selection/view.tsx} +0 -0
|
@@ -19,8 +19,6 @@ import {
|
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
CreateEdgeOperation,
|
|
21
21
|
EnableDefaultToolsAction,
|
|
22
|
-
EnableToolsAction,
|
|
23
|
-
IActionHandler,
|
|
24
22
|
SEdge,
|
|
25
23
|
SModelElement,
|
|
26
24
|
TriggerEdgeCreationAction,
|
|
@@ -28,54 +26,39 @@ import {
|
|
|
28
26
|
isConnectable,
|
|
29
27
|
isCtrlOrCmd
|
|
30
28
|
} from '~glsp-sprotty';
|
|
31
|
-
import { DragAwareMouseListener } from '
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
} from '
|
|
37
|
-
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
38
|
-
import { BaseGLSPTool } from './base-glsp-tool';
|
|
29
|
+
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
30
|
+
|
|
31
|
+
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
32
|
+
import { BaseGLSPCreationTool } from '../base-glsp-creation-tool';
|
|
33
|
+
import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction } from './dangling-edge-feedback';
|
|
34
|
+
import { FeedbackEdgeEndMovingMouseListener } from './edge-creation-tool-feedback';
|
|
39
35
|
|
|
40
36
|
/**
|
|
41
37
|
* Tool to create connections in a Diagram, by selecting a source and target node.
|
|
42
38
|
*/
|
|
43
39
|
@injectable()
|
|
44
|
-
export class EdgeCreationTool extends
|
|
40
|
+
export class EdgeCreationTool extends BaseGLSPCreationTool<TriggerEdgeCreationAction> {
|
|
45
41
|
static ID = 'tool_create_edge';
|
|
46
42
|
|
|
47
43
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
48
44
|
|
|
49
|
-
protected
|
|
50
|
-
protected creationToolMouseListener: EdgeCreationToolMouseListener;
|
|
51
|
-
protected feedbackEndMovingMouseListener: FeedbackEdgeEndMovingMouseListener;
|
|
45
|
+
protected isTriggerAction = TriggerEdgeCreationAction.is;
|
|
52
46
|
|
|
53
47
|
get id(): string {
|
|
54
48
|
return EdgeCreationTool.ID;
|
|
55
49
|
}
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
disable(): void {
|
|
69
|
-
this.mouseTool.deregister(this.creationToolMouseListener);
|
|
70
|
-
this.mouseTool.deregister(this.feedbackEndMovingMouseListener);
|
|
71
|
-
this.deregisterFeedback([RemoveFeedbackEdgeAction.create(), cursorFeedbackAction()]);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
handle(action: Action): Action | void {
|
|
75
|
-
if (TriggerEdgeCreationAction.is(action)) {
|
|
76
|
-
this.triggerAction = action;
|
|
77
|
-
return EnableToolsAction.create([this.id]);
|
|
78
|
-
}
|
|
51
|
+
doEnable(): void {
|
|
52
|
+
const mouseMovingFeedback = new FeedbackEdgeEndMovingMouseListener(this.anchorRegistry, this.feedbackDispatcher);
|
|
53
|
+
this.toDisposeOnDisable.push(
|
|
54
|
+
mouseMovingFeedback,
|
|
55
|
+
this.mouseTool.registerListener(new EdgeCreationToolMouseListener(this.triggerAction, this)),
|
|
56
|
+
this.mouseTool.registerListener(mouseMovingFeedback),
|
|
57
|
+
this.registerFeedback([cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED)], this, [
|
|
58
|
+
RemoveFeedbackEdgeAction.create(),
|
|
59
|
+
cursorFeedbackAction()
|
|
60
|
+
])
|
|
61
|
+
);
|
|
79
62
|
}
|
|
80
63
|
}
|
|
81
64
|
|
|
@@ -98,7 +81,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
98
81
|
this.target = undefined;
|
|
99
82
|
this.currentTarget = undefined;
|
|
100
83
|
this.allowedTarget = false;
|
|
101
|
-
this.tool.
|
|
84
|
+
this.tool.registerFeedback([RemoveFeedbackEdgeAction.create()]);
|
|
102
85
|
}
|
|
103
86
|
|
|
104
87
|
override nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
|
|
@@ -107,7 +90,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
107
90
|
if (!this.isSourceSelected()) {
|
|
108
91
|
if (this.currentTarget && this.allowedTarget) {
|
|
109
92
|
this.source = this.currentTarget.id;
|
|
110
|
-
this.tool.
|
|
93
|
+
this.tool.registerFeedback([
|
|
111
94
|
DrawFeedbackEdgeAction.create({ elementTypeId: this.triggerAction.elementTypeId, sourceId: this.source })
|
|
112
95
|
]);
|
|
113
96
|
}
|
|
@@ -117,6 +100,11 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
117
100
|
}
|
|
118
101
|
}
|
|
119
102
|
if (this.source && this.target) {
|
|
103
|
+
if (!isCtrlOrCmd(event)) {
|
|
104
|
+
result.push(EnableDefaultToolsAction.create());
|
|
105
|
+
} else {
|
|
106
|
+
this.reinitialize();
|
|
107
|
+
}
|
|
120
108
|
result.push(
|
|
121
109
|
CreateEdgeOperation.create({
|
|
122
110
|
elementTypeId: this.triggerAction.elementTypeId,
|
|
@@ -125,11 +113,6 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
125
113
|
args: this.triggerAction.args
|
|
126
114
|
})
|
|
127
115
|
);
|
|
128
|
-
if (!isCtrlOrCmd(event)) {
|
|
129
|
-
result.push(EnableDefaultToolsAction.create());
|
|
130
|
-
} else {
|
|
131
|
-
this.reinitialize();
|
|
132
|
-
}
|
|
133
116
|
}
|
|
134
117
|
} else if (event.button === 2) {
|
|
135
118
|
result.push(EnableDefaultToolsAction.create());
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { VNode } from 'snabbdom';
|
|
18
|
+
import { IView, Point, RenderingContext, SModelElement, svg } from '~glsp-sprotty';
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
|
+
const JSX = { createElement: svg };
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This view is used for the invisible end of the feedback edge.
|
|
25
|
+
* A feedback edge is shown as a visual feedback when creating edges.
|
|
26
|
+
*/
|
|
27
|
+
@injectable()
|
|
28
|
+
export class FeedbackEdgeEndView implements IView {
|
|
29
|
+
render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
|
|
30
|
+
const position: Point = (model as any).position ?? Point.ORIGIN;
|
|
31
|
+
return <g x={position.x} y={position.y} />;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { ContainerModule } from 'inversify';
|
|
17
|
+
import { TYPES, bindAsService, configureCommand } from '~glsp-sprotty';
|
|
18
|
+
import { EdgeEditTool } from './edge-edit-tool';
|
|
19
|
+
import {
|
|
20
|
+
DrawFeedbackEdgeSourceCommand,
|
|
21
|
+
HideEdgeReconnectHandlesFeedbackCommand,
|
|
22
|
+
ShowEdgeReconnectHandlesFeedbackCommand,
|
|
23
|
+
SwitchRoutingModeCommand
|
|
24
|
+
} from './edge-edit-tool-feedback';
|
|
25
|
+
import { configureDanglingFeedbackEdge } from '../edge-creation/dangling-edge-feedback';
|
|
26
|
+
|
|
27
|
+
const edgeEditToolModule = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
28
|
+
const context = { bind, unbind, isBound, rebind };
|
|
29
|
+
bindAsService(context, TYPES.IDefaultTool, EdgeEditTool);
|
|
30
|
+
|
|
31
|
+
// reconnect edge tool feedback
|
|
32
|
+
configureCommand(context, ShowEdgeReconnectHandlesFeedbackCommand);
|
|
33
|
+
configureCommand(context, HideEdgeReconnectHandlesFeedbackCommand);
|
|
34
|
+
configureCommand(context, DrawFeedbackEdgeSourceCommand);
|
|
35
|
+
configureCommand(context, SwitchRoutingModeCommand);
|
|
36
|
+
|
|
37
|
+
// dangling edge feedback
|
|
38
|
+
configureDanglingFeedbackEdge(context);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export default edgeEditToolModule;
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
Bounds,
|
|
22
22
|
CommandExecutionContext,
|
|
23
23
|
CommandReturn,
|
|
24
|
+
Disposable,
|
|
24
25
|
EdgeRouterRegistry,
|
|
25
26
|
ElementMove,
|
|
26
27
|
ISnapper,
|
|
@@ -41,12 +42,14 @@ import {
|
|
|
41
42
|
isConnectable,
|
|
42
43
|
isSelected
|
|
43
44
|
} from '~glsp-sprotty';
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
45
|
+
import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
|
|
46
|
+
import { FeedbackCommand } from '../../../base/feedback/feedback-command';
|
|
47
|
+
import { forEachElement, isRoutable, isRoutingHandle } from '../../../utils/smodel-util';
|
|
48
|
+
import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
|
|
49
|
+
import { PointPositionUpdater } from '../../change-bounds/snap';
|
|
50
|
+
import { addReconnectHandles, removeReconnectHandles } from '../../reconnect/model';
|
|
51
|
+
import { FeedbackEdgeEnd, feedbackEdgeEndId, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
|
|
52
|
+
import { FeedbackEdgeEndMovingMouseListener } from '../edge-creation/edge-creation-tool-feedback';
|
|
50
53
|
|
|
51
54
|
/**
|
|
52
55
|
* RECONNECT HANDLES FEEDBACK
|
|
@@ -67,6 +70,7 @@ export namespace ShowEdgeReconnectHandlesFeedbackAction {
|
|
|
67
70
|
return { kind: KIND, elementId };
|
|
68
71
|
}
|
|
69
72
|
}
|
|
73
|
+
|
|
70
74
|
export interface HideEdgeReconnectHandlesFeedbackAction extends Action {
|
|
71
75
|
kind: typeof HideEdgeReconnectHandlesFeedbackAction.KIND;
|
|
72
76
|
}
|
|
@@ -135,6 +139,7 @@ export namespace SwitchRoutingModeAction {
|
|
|
135
139
|
};
|
|
136
140
|
}
|
|
137
141
|
}
|
|
142
|
+
|
|
138
143
|
@injectable()
|
|
139
144
|
export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
|
|
140
145
|
static override KIND = SwitchRoutingModeAction.KIND;
|
|
@@ -187,13 +192,13 @@ export class DrawFeedbackEdgeSourceCommand extends FeedbackCommand {
|
|
|
187
192
|
*/
|
|
188
193
|
|
|
189
194
|
export class FeedbackEdgeTargetMovingMouseListener extends FeedbackEdgeEndMovingMouseListener {
|
|
190
|
-
constructor(
|
|
191
|
-
super(anchorRegistry);
|
|
195
|
+
constructor(anchorRegistry: AnchorComputerRegistry, feedbackDispatcher: IFeedbackActionDispatcher) {
|
|
196
|
+
super(anchorRegistry, feedbackDispatcher);
|
|
192
197
|
}
|
|
193
198
|
}
|
|
194
199
|
|
|
195
|
-
export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
196
|
-
constructor(protected anchorRegistry: AnchorComputerRegistry) {
|
|
200
|
+
export class FeedbackEdgeSourceMovingMouseListener extends MouseListener implements Disposable {
|
|
201
|
+
constructor(protected anchorRegistry: AnchorComputerRegistry, protected feedbackDispatcher: IFeedbackActionDispatcher) {
|
|
197
202
|
super();
|
|
198
203
|
}
|
|
199
204
|
|
|
@@ -207,16 +212,20 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
|
207
212
|
const edge = edgeEnd.feedbackEdge;
|
|
208
213
|
const position = getAbsolutePosition(edgeEnd, event);
|
|
209
214
|
const endAtMousePosition = findChildrenAtPosition(target.root, position).find(
|
|
210
|
-
|
|
215
|
+
element => isConnectable(element) && element.canConnect(edge, 'source')
|
|
211
216
|
);
|
|
212
217
|
|
|
213
218
|
if (endAtMousePosition instanceof SConnectableElement && edge.target && isBoundsAware(edge.target)) {
|
|
214
219
|
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(edge.target.bounds));
|
|
215
220
|
if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
216
|
-
|
|
221
|
+
this.feedbackDispatcher.registerFeedback(this, [
|
|
222
|
+
MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })
|
|
223
|
+
]);
|
|
217
224
|
}
|
|
218
225
|
} else {
|
|
219
|
-
|
|
226
|
+
this.feedbackDispatcher.registerFeedback(this, [
|
|
227
|
+
MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })
|
|
228
|
+
]);
|
|
220
229
|
}
|
|
221
230
|
|
|
222
231
|
return [];
|
|
@@ -236,6 +245,10 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
|
236
245
|
}
|
|
237
246
|
return anchor;
|
|
238
247
|
}
|
|
248
|
+
|
|
249
|
+
dispose(): void {
|
|
250
|
+
this.feedbackDispatcher.deregisterFeedback(this);
|
|
251
|
+
}
|
|
239
252
|
}
|
|
240
253
|
|
|
241
254
|
export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
@@ -341,8 +354,7 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
|
341
354
|
/**
|
|
342
355
|
* UTILITY FUNCTIONS
|
|
343
356
|
*/
|
|
344
|
-
|
|
345
|
-
function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
|
|
357
|
+
export function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
|
|
346
358
|
const root = context.root;
|
|
347
359
|
const targetChild = root.index.getById(targetId);
|
|
348
360
|
if (!targetChild) {
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
ChangeRoutingPointsOperation,
|
|
21
21
|
Connectable,
|
|
22
|
+
Disposable,
|
|
22
23
|
EdgeRouterRegistry,
|
|
23
24
|
ISnapper,
|
|
24
25
|
ReconnectEdgeOperation,
|
|
@@ -32,12 +33,13 @@ import {
|
|
|
32
33
|
isConnectable,
|
|
33
34
|
isSelected
|
|
34
35
|
} from '~glsp-sprotty';
|
|
35
|
-
import { DragAwareMouseListener } from '
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
36
|
+
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
37
|
+
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
38
|
+
import { ISelectionListener, SelectionService } from '../../../base/selection-service';
|
|
39
|
+
import { calcElementAndRoutingPoints, isRoutable, isRoutingHandle } from '../../../utils/smodel-util';
|
|
40
|
+
import { SReconnectHandle, isReconnectHandle, isReconnectable, isSourceRoutingHandle, isTargetRoutingHandle } from '../../reconnect/model';
|
|
41
|
+
import { BaseGLSPTool } from '../base-glsp-tool';
|
|
42
|
+
import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
|
|
41
43
|
import {
|
|
42
44
|
DrawFeedbackEdgeSourceAction,
|
|
43
45
|
FeedbackEdgeRouteMovingMouseListener,
|
|
@@ -46,14 +48,13 @@ import {
|
|
|
46
48
|
HideEdgeReconnectHandlesFeedbackAction,
|
|
47
49
|
ShowEdgeReconnectHandlesFeedbackAction,
|
|
48
50
|
SwitchRoutingModeAction
|
|
49
|
-
} from '
|
|
50
|
-
import { BaseGLSPTool } from './base-glsp-tool';
|
|
51
|
+
} from './edge-edit-tool-feedback';
|
|
51
52
|
|
|
52
53
|
@injectable()
|
|
53
54
|
export class EdgeEditTool extends BaseGLSPTool {
|
|
54
55
|
static ID = 'glsp.edge-edit-tool';
|
|
55
56
|
|
|
56
|
-
@inject(
|
|
57
|
+
@inject(SelectionService) protected selectionService: SelectionService;
|
|
57
58
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
58
59
|
@inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
59
60
|
@inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
|
|
@@ -69,13 +70,19 @@ export class EdgeEditTool extends BaseGLSPTool {
|
|
|
69
70
|
|
|
70
71
|
enable(): void {
|
|
71
72
|
this.edgeEditListener = new EdgeEditListener(this);
|
|
72
|
-
this.mouseTool.register(this.edgeEditListener);
|
|
73
|
-
this.selectionService.register(this.edgeEditListener);
|
|
74
73
|
|
|
75
74
|
// install feedback move mouse listener for client-side move updates
|
|
76
|
-
this.feedbackEdgeSourceMovingListener = new FeedbackEdgeSourceMovingMouseListener(this.anchorRegistry);
|
|
77
|
-
this.feedbackEdgeTargetMovingListener = new FeedbackEdgeTargetMovingMouseListener(this.anchorRegistry);
|
|
75
|
+
this.feedbackEdgeSourceMovingListener = new FeedbackEdgeSourceMovingMouseListener(this.anchorRegistry, this.feedbackDispatcher);
|
|
76
|
+
this.feedbackEdgeTargetMovingListener = new FeedbackEdgeTargetMovingMouseListener(this.anchorRegistry, this.feedbackDispatcher);
|
|
78
77
|
this.feedbackMovingListener = new FeedbackEdgeRouteMovingMouseListener(this.edgeRouterRegistry, this.snapper);
|
|
78
|
+
|
|
79
|
+
this.toDisposeOnDisable.push(
|
|
80
|
+
Disposable.create(() => this.edgeEditListener.reset()),
|
|
81
|
+
this.mouseTool.registerListener(this.edgeEditListener),
|
|
82
|
+
this.feedbackEdgeSourceMovingListener,
|
|
83
|
+
this.feedbackEdgeTargetMovingListener,
|
|
84
|
+
this.selectionService.onSelectionChanged(change => this.edgeEditListener.selectionChanged(change.root, change.selectedElements))
|
|
85
|
+
);
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
registerFeedbackListeners(): void {
|
|
@@ -85,20 +92,15 @@ export class EdgeEditTool extends BaseGLSPTool {
|
|
|
85
92
|
}
|
|
86
93
|
|
|
87
94
|
deregisterFeedbackListeners(): void {
|
|
95
|
+
this.feedbackEdgeSourceMovingListener.dispose();
|
|
96
|
+
this.feedbackEdgeTargetMovingListener.dispose();
|
|
88
97
|
this.mouseTool.deregister(this.feedbackEdgeSourceMovingListener);
|
|
89
98
|
this.mouseTool.deregister(this.feedbackEdgeTargetMovingListener);
|
|
90
99
|
this.mouseTool.deregister(this.feedbackMovingListener);
|
|
91
100
|
}
|
|
92
|
-
|
|
93
|
-
disable(): void {
|
|
94
|
-
this.edgeEditListener.reset();
|
|
95
|
-
this.selectionService.deregister(this.edgeEditListener);
|
|
96
|
-
this.deregisterFeedbackListeners();
|
|
97
|
-
this.mouseTool.deregister(this.edgeEditListener);
|
|
98
|
-
}
|
|
99
101
|
}
|
|
100
102
|
|
|
101
|
-
class EdgeEditListener extends DragAwareMouseListener implements
|
|
103
|
+
export class EdgeEditListener extends DragAwareMouseListener implements ISelectionListener {
|
|
102
104
|
// active selection data
|
|
103
105
|
protected edge?: SRoutableElement;
|
|
104
106
|
protected routingHandle?: SRoutingHandle;
|
|
@@ -132,7 +134,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
132
134
|
if (isReconnectable(edge)) {
|
|
133
135
|
feedbackActions.push(ShowEdgeReconnectHandlesFeedbackAction.create(this.edge.id));
|
|
134
136
|
}
|
|
135
|
-
this.tool.
|
|
137
|
+
this.tool.registerFeedback(feedbackActions);
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
protected isEdgeSelected(): boolean {
|
|
@@ -142,14 +144,14 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
142
144
|
protected setReconnectHandleSelected(edge: SRoutableElement, reconnectHandle: SReconnectHandle): void {
|
|
143
145
|
if (this.edge && this.edge.target && this.edge.source) {
|
|
144
146
|
if (isSourceRoutingHandle(edge, reconnectHandle)) {
|
|
145
|
-
this.tool.
|
|
147
|
+
this.tool.registerFeedback([
|
|
146
148
|
HideEdgeReconnectHandlesFeedbackAction.create(),
|
|
147
149
|
cursorFeedbackAction(CursorCSS.EDGE_RECONNECT),
|
|
148
150
|
DrawFeedbackEdgeSourceAction.create({ elementTypeId: this.edge.type, targetId: this.edge.targetId })
|
|
149
151
|
]);
|
|
150
152
|
this.reconnectMode = 'NEW_SOURCE';
|
|
151
153
|
} else if (isTargetRoutingHandle(edge, reconnectHandle)) {
|
|
152
|
-
this.tool.
|
|
154
|
+
this.tool.registerFeedback([
|
|
153
155
|
HideEdgeReconnectHandlesFeedbackAction.create(),
|
|
154
156
|
cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET),
|
|
155
157
|
DrawFeedbackEdgeAction.create({ elementTypeId: this.edge.type, sourceId: this.edge.sourceId })
|
|
@@ -257,11 +259,11 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
257
259
|
(this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, 'source')) ||
|
|
258
260
|
(this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, 'target'))
|
|
259
261
|
) {
|
|
260
|
-
this.tool.
|
|
262
|
+
this.tool.registerFeedback([cursorFeedbackAction(CursorCSS.EDGE_RECONNECT)]);
|
|
261
263
|
return [];
|
|
262
264
|
}
|
|
263
265
|
}
|
|
264
|
-
this.tool.
|
|
266
|
+
this.tool.registerFeedback([cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED)]);
|
|
265
267
|
}
|
|
266
268
|
}
|
|
267
269
|
return [];
|
|
@@ -314,7 +316,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
314
316
|
result.push(SwitchRoutingModeAction.create({ elementsToDeactivate: [this.edge.id] }));
|
|
315
317
|
}
|
|
316
318
|
result.push(...[HideEdgeReconnectHandlesFeedbackAction.create(), cursorFeedbackAction(), RemoveFeedbackEdgeAction.create()]);
|
|
317
|
-
this.tool.deregisterFeedback(result);
|
|
319
|
+
this.tool.deregisterFeedback(undefined, result);
|
|
318
320
|
this.tool.deregisterFeedbackListeners();
|
|
319
321
|
}
|
|
320
322
|
}
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { injectable } from 'inversify';
|
|
17
|
-
import { Action, EnableDefaultToolsAction, IActionHandler, ICommand } from '~glsp-sprotty';
|
|
16
|
+
import { ContainerModule, injectable } from 'inversify';
|
|
17
|
+
import { Action, EnableDefaultToolsAction, IActionHandler, ICommand, configureActionHandler } from '~glsp-sprotty';
|
|
18
18
|
import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -30,3 +30,12 @@ export class EnableDefaultToolsOnFocusLossHandler implements IActionHandler {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Enables the default tools in the tool manager if the diagram looses focus.
|
|
36
|
+
*/
|
|
37
|
+
const enableDefaultToolsOnFocusLossModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
38
|
+
configureActionHandler({ bind, isBound }, FocusStateChangedAction.KIND, EnableDefaultToolsOnFocusLossHandler);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export default enableDefaultToolsOnFocusLossModule;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { ContainerModule } from 'inversify';
|
|
17
|
+
import { TYPES, bindAsService, configureCommand, configureModelElement } from '~glsp-sprotty';
|
|
18
|
+
import { MarqueeMouseTool } from './marquee-mouse-tool';
|
|
19
|
+
import { MarqueeTool } from './marquee-tool';
|
|
20
|
+
import { DrawMarqueeCommand, MARQUEE, RemoveMarqueeCommand } from './marquee-tool-feedback';
|
|
21
|
+
import { MarqueeNode } from './model';
|
|
22
|
+
import { MarqueeView } from './view';
|
|
23
|
+
|
|
24
|
+
const marqueeSelectionToolModule = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
25
|
+
const context = { bind, unbind, isBound, rebind };
|
|
26
|
+
bindAsService(context, TYPES.IDefaultTool, MarqueeTool);
|
|
27
|
+
bindAsService(context, TYPES.ITool, MarqueeMouseTool);
|
|
28
|
+
|
|
29
|
+
configureCommand(context, DrawMarqueeCommand);
|
|
30
|
+
configureCommand(context, RemoveMarqueeCommand);
|
|
31
|
+
|
|
32
|
+
configureModelElement(context, MARQUEE, MarqueeNode, MarqueeView);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export default marqueeSelectionToolModule;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
17
|
import { Bounds, Point, PointToPointLine } from '~glsp-sprotty';
|
|
18
|
-
import { DrawMarqueeAction } from '
|
|
18
|
+
import { DrawMarqueeAction } from './marquee-tool-feedback';
|
|
19
19
|
|
|
20
20
|
export interface IMarqueeBehavior {
|
|
21
21
|
readonly entireElement: boolean;
|
|
@@ -77,7 +77,7 @@ export class MarqueeUtil {
|
|
|
77
77
|
return horizontallyIn && verticallyIn;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
protected isEntireEdgeMarked(points: Point[]): boolean {
|
|
81
81
|
for (let i = 0; i < points.length; i++) {
|
|
82
82
|
if (!this.pointInRect(points[i])) {
|
|
83
83
|
return false;
|
|
@@ -86,7 +86,7 @@ export class MarqueeUtil {
|
|
|
86
86
|
return true;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
protected isPartOfEdgeMarked(points: Point[]): boolean {
|
|
90
90
|
for (let i = 0; i < points.length - 1; i++) {
|
|
91
91
|
if (this.isLineMarked(points[i], points[i + 1])) {
|
|
92
92
|
return true;
|
|
@@ -95,7 +95,7 @@ export class MarqueeUtil {
|
|
|
95
95
|
return false;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
protected isLineMarked(point1: Point, point2: Point): boolean {
|
|
99
99
|
const line = new PointToPointLine(point1, point2);
|
|
100
100
|
return (
|
|
101
101
|
this.pointInRect(point1) ||
|
|
@@ -107,11 +107,11 @@ export class MarqueeUtil {
|
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
protected lineIntersect(line: PointToPointLine, p1: Point, p2: Point): boolean {
|
|
111
111
|
return line.intersection(new PointToPointLine(p1, p2)) !== undefined;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
protected pointInRect(point: Point): boolean {
|
|
115
115
|
const boolX =
|
|
116
116
|
this.startPoint.x <= this.currentPoint.x
|
|
117
117
|
? this.isBetween(point.x, this.startPoint.x, this.currentPoint.x)
|
|
@@ -123,7 +123,7 @@ export class MarqueeUtil {
|
|
|
123
123
|
return boolX && boolY;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
|
|
126
|
+
protected isElementBetweenXAxis(elementBounds: Bounds, marqueeLeft: number, marqueeRight: number): boolean {
|
|
127
127
|
const leftEdge = this.isBetween(elementBounds.x, marqueeLeft, marqueeRight);
|
|
128
128
|
const rightEdge = this.isBetween(elementBounds.x + elementBounds.width, marqueeLeft, marqueeRight);
|
|
129
129
|
if (this.marqueeBehavior.entireElement) {
|
|
@@ -137,7 +137,7 @@ export class MarqueeUtil {
|
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
protected isElementBetweenYAxis(elementBounds: Bounds, marqueeTop: number, marqueeBottom: number): boolean {
|
|
141
141
|
const topEdge = this.isBetween(elementBounds.y, marqueeTop, marqueeBottom);
|
|
142
142
|
const bottomEdge = this.isBetween(elementBounds.y + elementBounds.height, marqueeTop, marqueeBottom);
|
|
143
143
|
if (this.marqueeBehavior.entireElement) {
|
|
@@ -151,7 +151,7 @@ export class MarqueeUtil {
|
|
|
151
151
|
);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
protected isBetween(x: number, lower: number, upper: number): boolean {
|
|
155
155
|
return lower <= x && x <= upper;
|
|
156
156
|
}
|
|
157
157
|
}
|
package/src/features/tools/{marquee-mouse-tool.ts → marquee-selection/marquee-mouse-tool.ts}
RENAMED
|
@@ -29,12 +29,12 @@ import {
|
|
|
29
29
|
isSelectable,
|
|
30
30
|
isSelected
|
|
31
31
|
} from '~glsp-sprotty';
|
|
32
|
-
import { DragAwareMouseListener } from '
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import { BaseGLSPTool } from './base-glsp-tool';
|
|
32
|
+
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
33
|
+
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
34
|
+
import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
|
|
35
|
+
import { BaseGLSPTool } from '../base-glsp-tool';
|
|
37
36
|
import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
|
|
37
|
+
import { RemoveMarqueeAction } from './marquee-tool-feedback';
|
|
38
38
|
|
|
39
39
|
@injectable()
|
|
40
40
|
export class MarqueeMouseTool extends BaseGLSPTool {
|
|
@@ -43,7 +43,6 @@ export class MarqueeMouseTool extends BaseGLSPTool {
|
|
|
43
43
|
@inject(TYPES.DOMHelper) protected domHelper: DOMHelper;
|
|
44
44
|
@inject(TYPES.IMarqueeBehavior) @optional() protected marqueeBehavior: IMarqueeBehavior;
|
|
45
45
|
|
|
46
|
-
protected marqueeMouseListener: MarqueeMouseListener;
|
|
47
46
|
protected shiftKeyListener: ShiftKeyListener = new ShiftKeyListener();
|
|
48
47
|
|
|
49
48
|
get id(): string {
|
|
@@ -51,16 +50,11 @@ export class MarqueeMouseTool extends BaseGLSPTool {
|
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
enable(): void {
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
disable(): void {
|
|
61
|
-
this.mouseTool.deregister(this.marqueeMouseListener);
|
|
62
|
-
this.keyTool.deregister(this.shiftKeyListener);
|
|
63
|
-
this.deregisterFeedback([cursorFeedbackAction()]);
|
|
53
|
+
this.toDisposeOnDisable.push(
|
|
54
|
+
this.mouseTool.registerListener(new MarqueeMouseListener(this.domHelper, this.editorContext.modelRoot, this.marqueeBehavior)),
|
|
55
|
+
this.keyTool.registerListener(this.shiftKeyListener),
|
|
56
|
+
this.registerFeedback([cursorFeedbackAction(CursorCSS.MARQUEE)], this, [cursorFeedbackAction()])
|
|
57
|
+
);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
60
|
|
|
@@ -119,7 +113,7 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
119
113
|
return [];
|
|
120
114
|
}
|
|
121
115
|
|
|
122
|
-
override mouseUp(
|
|
116
|
+
override mouseUp(_target: SModelElement, event: MouseEvent): Action[] {
|
|
123
117
|
this.isActive = false;
|
|
124
118
|
if (event.shiftKey) {
|
|
125
119
|
return [RemoveMarqueeAction.create()];
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
TYPES,
|
|
28
28
|
hasObjectProp
|
|
29
29
|
} from '~glsp-sprotty';
|
|
30
|
-
import { FeedbackCommand } from '
|
|
30
|
+
import { FeedbackCommand } from '../../../base/feedback/feedback-command';
|
|
31
31
|
|
|
32
32
|
export interface DrawMarqueeAction extends Action {
|
|
33
33
|
kind: typeof DrawMarqueeAction.KIND;
|