@eclipse-glsp/client 0.9.0-rc-01 → 0.10.0-next.146a812.165
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +642 -277
- package/README.md +4 -2
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +125 -14
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +19 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +47 -65
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +1 -1
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +4 -5
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/{args.d.ts → argumentable.d.ts} +3 -5
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/{args.js → argumentable.js} +1 -1
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +3 -3
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +123 -157
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +44 -65
- 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 +19 -37
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +12 -2
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +46 -30
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +23 -62
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +110 -0
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +17 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +20 -40
- 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 +11 -29
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +19 -5
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +69 -94
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +18 -3
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +37 -58
- 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 +10 -28
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +2 -5
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +58 -140
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +4 -2
- 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 +11 -29
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +3 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +22 -33
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +29 -43
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +58 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +91 -41
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/{src/features/undo-redo/model.ts → lib/features/change-bounds/snap.spec.d.ts} +3 -12
- 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 +30 -38
- package/lib/features/command-palette/command-palette-tool.js.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 +18 -2
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +28 -33
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -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 +20 -68
- 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 -8
- 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 +16 -0
- 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 +61 -71
- 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 +18 -2
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +30 -31
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +19 -2
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +70 -70
- 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 +11 -11
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +13 -47
- package/lib/features/decoration/decoration-placer.js.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.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +20 -43
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +40 -62
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +0 -15
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +9 -9
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +3 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +17 -45
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +81 -140
- 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 +19 -17
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +28 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +56 -76
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +11 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +19 -3
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +196 -269
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -15
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +101 -95
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +0 -15
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +7 -7
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.js +5 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +10 -5
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +54 -235
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +0 -15
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +11 -10
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -254
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +46 -188
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +27 -27
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +1 -1
- package/lib/features/rank/model.js +2 -2
- package/lib/features/rank/model.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 +9 -27
- 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 +6 -6
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
- package/lib/features/save/save-keylistener.js.map +1 -0
- package/lib/features/select/di.config.js +11 -11
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +45 -71
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.js +7 -23
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +18 -2
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +140 -240
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +111 -154
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +110 -150
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +103 -124
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +37 -81
- 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 +27 -27
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +24 -5
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +185 -239
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +20 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -84
- 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 +11 -27
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +21 -5
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +31 -53
- 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 +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -6
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +19 -3
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +203 -271
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +20 -4
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +39 -61
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +22 -7
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +196 -270
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +17 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +75 -108
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +0 -15
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +20 -20
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +17 -2
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +68 -93
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +18 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +129 -195
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action.d.ts → tools/marquee-behavior.spec.d.ts} +3 -10
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +89 -198
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +17 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +32 -73
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +1 -1
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +5 -23
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +17 -2
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +63 -93
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +13 -32
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +2 -2
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +17 -55
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +17 -1
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +134 -167
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +104 -98
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +18 -29
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +148 -301
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.js +10 -10
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +9 -15
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +36 -37
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +1 -1
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +12 -28
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +3 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +61 -121
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +80 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +3 -3
- package/lib/utils/argument-utils.d.ts.map +1 -1
- package/lib/utils/argument-utils.js +32 -97
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +3 -2
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +5 -5
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.d.ts +0 -38
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +14 -61
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +116 -10
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +131 -75
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -2
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +15 -30
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +0 -15
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +28 -28
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/views/compartments.js +43 -0
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +18 -3
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +32 -77
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.d.ts +1 -1
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +7 -3
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +2 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +37 -51
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts +2 -3
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +41 -71
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/lib/views/rounded-corner.d.ts +2 -1
- package/lib/views/rounded-corner.d.ts.map +1 -1
- package/lib/views/rounded-corner.js +44 -65
- package/lib/views/rounded-corner.js.map +1 -1
- package/package.json +13 -31
- package/src/base/action-dispatcher.ts +15 -15
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +2 -3
- package/src/base/auto-complete/auto-complete-actions.ts +1 -1
- package/src/base/auto-complete/auto-complete-widget.ts +37 -25
- package/src/base/auto-complete/validation-decorator.ts +12 -11
- package/src/base/command-stack.ts +4 -7
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +33 -18
- package/src/base/drag-aware-mouse-listener.ts +6 -7
- package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
- package/src/base/focus-tracker.ts +2 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +9 -17
- package/src/base/model-initialization-constraint.ts +10 -10
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -11
- package/src/base/types.ts +4 -2
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +17 -7
- package/src/features/change-bounds/movement-restrictor.ts +17 -9
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +87 -2
- package/src/features/command-palette/server-command-palette-provider.ts +11 -9
- package/src/features/context-menu/delete-element-context-menu.ts +3 -4
- package/src/features/context-menu/di.config.ts +11 -9
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +41 -11
- package/src/features/context-menu/server-context-menu-provider.ts +10 -7
- package/src/features/copy-paste/copy-paste-context-menu.ts +59 -30
- package/src/features/copy-paste/copy-paste-handler.ts +18 -10
- package/src/features/copy-paste/di.config.ts +2 -3
- package/src/features/decoration/decoration-placer.ts +4 -14
- package/src/features/edit-label/edit-label-validator.ts +11 -12
- package/src/features/hints/di.config.ts +2 -3
- package/src/features/hints/model.ts +4 -3
- package/src/features/hints/type-hints.ts +24 -91
- package/src/features/hover/di.config.ts +4 -3
- package/src/features/hover/hover.ts +27 -8
- package/src/features/layout/di.config.ts +8 -4
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +82 -64
- package/src/features/layout/layout-commands.ts +47 -38
- package/src/features/layout/vbox-layout.ts +260 -0
- package/src/features/model-source-watcher/di.config.ts +3 -4
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +11 -7
- package/src/features/mouse-tool/mouse-tool.ts +28 -54
- package/src/features/navigation/di.config.ts +4 -10
- package/src/features/navigation/navigation-action-handler.ts +33 -69
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -7
- package/src/features/navigation/navigation-target-resolver.ts +13 -91
- package/src/features/rank/model.ts +2 -2
- package/src/features/reconnect/model.ts +3 -4
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
- package/src/features/select/select-feedback-action.ts +4 -6
- package/src/features/select/selection-service.spec.ts +11 -6
- package/src/features/select/selection-service.ts +18 -13
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +33 -26
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -14
- package/src/features/tool-feedback/css-feedback.ts +9 -6
- package/src/features/tool-feedback/di.config.ts +2 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +78 -68
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +9 -10
- package/src/features/tool-feedback/marquee-tool-feedback.ts +6 -7
- package/src/features/tool-feedback/model.ts +1 -4
- package/src/features/tool-feedback/view.tsx +17 -11
- package/src/features/tool-palette/di.config.ts +2 -4
- package/src/features/tool-palette/palette-item.ts +4 -6
- package/src/features/tool-palette/tool-palette.ts +48 -42
- package/src/features/tools/base-glsp-tool.ts +10 -10
- package/src/features/tools/change-bounds-tool.ts +73 -74
- package/src/features/tools/delete-tool.ts +11 -8
- package/src/features/tools/di.config.ts +2 -3
- package/src/features/tools/edge-creation-tool.ts +7 -12
- package/src/features/tools/edge-edit-tool.ts +19 -26
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +48 -139
- package/src/features/tools/marquee-tool.ts +4 -5
- package/src/features/tools/model.ts +2 -2
- package/src/features/tools/node-creation-tool.ts +6 -13
- package/src/features/tools/view.tsx +19 -15
- package/src/features/validation/issue-marker.ts +2 -3
- package/src/features/validation/marker-navigator.spec.ts +18 -14
- package/src/features/validation/marker-navigator.ts +29 -15
- package/src/features/validation/validate.ts +10 -43
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +4 -13
- package/src/index.ts +30 -19
- package/src/lib/model.ts +2 -3
- package/src/model-source/glsp-diagram-server.ts +18 -32
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +14 -11
- package/src/utils/layout-utils.ts +13 -7
- package/src/utils/marker.ts +2 -26
- package/src/utils/smodel-util.ts +140 -38
- package/src/utils/viewpoint-util.ts +4 -4
- package/src/views/base-view-module.ts +1 -2
- package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -14
- package/src/views/glsp-edge-view.tsx +25 -18
- package/src/views/index.ts +1 -1
- package/src/views/issue-marker-view.tsx +29 -20
- package/src/views/rounded-corner-view.tsx +40 -28
- package/src/views/rounded-corner.ts +5 -6
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -51
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js +0 -56
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -83
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- package/lib/base/actions/protocol-actions.d.ts +0 -41
- package/lib/base/actions/protocol-actions.d.ts.map +0 -1
- package/lib/base/actions/protocol-actions.js +0 -151
- package/lib/base/actions/protocol-actions.js.map +0 -1
- package/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js +0 -174
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -135
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -231
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -68
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -30
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js +0 -62
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -22
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -61
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts +0 -28
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js +0 -61
- package/lib/utils/array-utils.js.map +0 -1
- package/lib/views/default-types.d.ts +0 -37
- package/lib/views/default-types.d.ts.map +0 -1
- package/lib/views/default-types.js +0 -47
- package/lib/views/default-types.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-validation-actions.ts +0 -103
- package/src/base/actions/protocol-actions.ts +0 -82
- package/src/base/operations/operation.ts +0 -178
- package/src/features/copy-paste/copy-paste-actions.ts +0 -60
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
- package/src/views/default-types.ts +0 -48
|
@@ -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,10 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { inject, injectable, optional } from 'inversify';
|
|
17
16
|
import {
|
|
18
17
|
Action,
|
|
19
18
|
Bounds,
|
|
19
|
+
ChangeBoundsOperation,
|
|
20
|
+
ChangeRoutingPointsOperation,
|
|
21
|
+
CompoundOperation,
|
|
22
|
+
ElementAndRoutingPoints,
|
|
23
|
+
Operation,
|
|
24
|
+
Point
|
|
25
|
+
} from '@eclipse-glsp/protocol';
|
|
26
|
+
import { inject, injectable, optional } from 'inversify';
|
|
27
|
+
import {
|
|
20
28
|
BoundsAware,
|
|
21
29
|
Dimension,
|
|
22
30
|
EdgeRouterRegistry,
|
|
@@ -24,9 +32,8 @@ import {
|
|
|
24
32
|
findParentByFeature,
|
|
25
33
|
ISnapper,
|
|
26
34
|
isSelected,
|
|
27
|
-
isViewport,
|
|
28
35
|
MouseListener,
|
|
29
|
-
|
|
36
|
+
SChildElement,
|
|
30
37
|
SConnectableElement,
|
|
31
38
|
SetBoundsAction,
|
|
32
39
|
SModelElement,
|
|
@@ -34,17 +41,9 @@ import {
|
|
|
34
41
|
SParentElement,
|
|
35
42
|
TYPES
|
|
36
43
|
} from 'sprotty';
|
|
37
|
-
|
|
38
44
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
39
|
-
import {
|
|
40
|
-
ChangeBoundsOperation,
|
|
41
|
-
ChangeRoutingPointsOperation,
|
|
42
|
-
CompoundOperation,
|
|
43
|
-
ElementAndRoutingPoints,
|
|
44
|
-
Operation
|
|
45
|
-
} from '../../base/operations/operation';
|
|
46
45
|
import { GLSP_TYPES } from '../../base/types';
|
|
47
|
-
import { isValidMove, isValidSize
|
|
46
|
+
import { isValidMove, isValidSize } from '../../utils/layout-utils';
|
|
48
47
|
import {
|
|
49
48
|
forEachElement,
|
|
50
49
|
isNonRoutableSelectedMovableBoundsAware,
|
|
@@ -57,6 +56,7 @@ import {
|
|
|
57
56
|
IMovementRestrictor,
|
|
58
57
|
removeMovementRestrictionFeedback
|
|
59
58
|
} from '../change-bounds/movement-restrictor';
|
|
59
|
+
import { PointPositionUpdater } from '../change-bounds/snap';
|
|
60
60
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
61
61
|
import {
|
|
62
62
|
FeedbackMoveMouseListener,
|
|
@@ -76,8 +76,8 @@ import { BaseGLSPTool } from './base-glsp-tool';
|
|
|
76
76
|
* | Move | MoveAction | ChangeBoundsOperationAction
|
|
77
77
|
* | Resize | SetBoundsAction | ChangeBoundsOperationAction
|
|
78
78
|
*
|
|
79
|
-
* To provide a visual client updates during move we install the `FeedbackMoveMouseListener` and to provide visual client updates during
|
|
80
|
-
* and send the server updates we install the `ChangeBoundsListener`.
|
|
79
|
+
* To provide a visual client updates during move we install the `FeedbackMoveMouseListener` and to provide visual client updates during
|
|
80
|
+
* resize and send the server updates we install the `ChangeBoundsListener`.
|
|
81
81
|
*/
|
|
82
82
|
@injectable()
|
|
83
83
|
export class ChangeBoundsTool extends BaseGLSPTool {
|
|
@@ -118,7 +118,7 @@ export class ChangeBoundsTool extends BaseGLSPTool {
|
|
|
118
118
|
this.selectionService.deregister(this.changeBoundsListener);
|
|
119
119
|
this.mouseTool.deregister(this.feedbackMoveMouseListener);
|
|
120
120
|
this.deregisterFeedback([], this.feedbackMoveMouseListener);
|
|
121
|
-
this.deregisterFeedback([new HideChangeBoundsToolResizeFeedbackAction], this.changeBoundsListener);
|
|
121
|
+
this.deregisterFeedback([new HideChangeBoundsToolResizeFeedbackAction()], this.changeBoundsListener);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
|
|
@@ -127,8 +127,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
127
127
|
|
|
128
128
|
// members for calculating the correct position change
|
|
129
129
|
protected initialBounds: Bounds | undefined;
|
|
130
|
-
protected
|
|
131
|
-
protected positionDelta: WriteablePoint = { x: 0, y: 0 };
|
|
130
|
+
protected pointPositionUpdater: PointPositionUpdater;
|
|
132
131
|
|
|
133
132
|
// members for resize mode
|
|
134
133
|
protected activeResizeElement?: SModelElement;
|
|
@@ -136,9 +135,10 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
136
135
|
|
|
137
136
|
constructor(protected tool: ChangeBoundsTool) {
|
|
138
137
|
super();
|
|
138
|
+
this.pointPositionUpdater = new PointPositionUpdater(tool.snapper);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
141
|
+
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
142
142
|
super.mouseDown(target, event);
|
|
143
143
|
if (event.button !== 0) {
|
|
144
144
|
return [];
|
|
@@ -157,13 +157,16 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
157
157
|
return [];
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
160
|
+
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
161
161
|
super.mouseMove(target, event);
|
|
162
162
|
if (this.isMouseDrag && this.activeResizeHandle) {
|
|
163
163
|
// rely on the FeedbackMoveMouseListener to update the element bounds of selected elements
|
|
164
164
|
// consider resize handles ourselves
|
|
165
|
-
const actions: Action[] = [
|
|
166
|
-
|
|
165
|
+
const actions: Action[] = [
|
|
166
|
+
cursorFeedbackAction(this.activeResizeHandle.isNwSeResize() ? CursorCSS.RESIZE_NWSE : CursorCSS.RESIZE_NESW),
|
|
167
|
+
applyCssClasses(this.activeResizeHandle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
|
|
168
|
+
];
|
|
169
|
+
const positionUpdate = this.pointPositionUpdater.updatePosition(target, { x: event.pageX, y: event.pageY }, !event.altKey);
|
|
167
170
|
if (positionUpdate) {
|
|
168
171
|
const resizeActions = this.handleResizeOnClient(positionUpdate);
|
|
169
172
|
actions.push(...resizeActions);
|
|
@@ -173,8 +176,8 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
173
176
|
return [];
|
|
174
177
|
}
|
|
175
178
|
|
|
176
|
-
draggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
177
|
-
if (this.
|
|
179
|
+
override draggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
180
|
+
if (this.pointPositionUpdater.isLastDragPositionUndefined()) {
|
|
178
181
|
this.resetPosition();
|
|
179
182
|
return [];
|
|
180
183
|
}
|
|
@@ -205,19 +208,37 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
205
208
|
protected handleMoveElementsOnServer(target: SModelElement): Action[] {
|
|
206
209
|
const result: Operation[] = [];
|
|
207
210
|
const newBounds: ElementAndBounds[] = [];
|
|
208
|
-
|
|
209
|
-
|
|
211
|
+
const selectedElements: (SModelElement & BoundsAware)[] = [];
|
|
212
|
+
forEachElement(target.index, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
213
|
+
selectedElements.push(element);
|
|
210
214
|
});
|
|
215
|
+
|
|
216
|
+
const selectionSet: Set<SModelElement & BoundsAware> = new Set(selectedElements);
|
|
217
|
+
selectedElements
|
|
218
|
+
.filter(element => !this.isChildOfSelected(selectionSet, element))
|
|
219
|
+
.map(element => this.createElementAndBounds(element))
|
|
220
|
+
.forEach(bounds => newBounds.push(...bounds));
|
|
221
|
+
|
|
211
222
|
if (newBounds.length > 0) {
|
|
212
223
|
result.push(new ChangeBoundsOperation(newBounds));
|
|
213
224
|
}
|
|
214
225
|
return result;
|
|
215
226
|
}
|
|
216
227
|
|
|
228
|
+
protected isChildOfSelected(selectedElements: Set<SModelElement>, element: SModelElement): boolean {
|
|
229
|
+
while (element instanceof SChildElement) {
|
|
230
|
+
element = element.parent;
|
|
231
|
+
if (selectedElements.has(element)) {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
|
|
217
238
|
protected handleMoveRoutingPointsOnServer(target: SModelElement): Action[] {
|
|
218
239
|
const result: Operation[] = [];
|
|
219
240
|
const newRoutingPoints: ElementAndRoutingPoints[] = [];
|
|
220
|
-
forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
241
|
+
forEachElement(target.index, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
221
242
|
// If client routing is enabled -> delegate routingpoints of connected edges to server
|
|
222
243
|
if (this.tool.edgeRouterRegistry && element instanceof SConnectableElement) {
|
|
223
244
|
element.incomingEdges.map(toElementAndRoutingPoints).forEach(ear => newRoutingPoints.push(ear));
|
|
@@ -278,47 +299,21 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
278
299
|
}
|
|
279
300
|
|
|
280
301
|
protected initPosition(event: MouseEvent): void {
|
|
281
|
-
this.
|
|
302
|
+
this.pointPositionUpdater.updateLastDragPosition({ x: event.pageX, y: event.pageY });
|
|
282
303
|
if (this.activeResizeHandle) {
|
|
283
304
|
const resizeElement = findParentByFeature(this.activeResizeHandle, isResizable);
|
|
284
|
-
this.initialBounds = {
|
|
305
|
+
this.initialBounds = {
|
|
306
|
+
x: resizeElement!.bounds.x,
|
|
307
|
+
y: resizeElement!.bounds.y,
|
|
308
|
+
width: resizeElement!.bounds.width,
|
|
309
|
+
height: resizeElement!.bounds.height
|
|
310
|
+
};
|
|
285
311
|
}
|
|
286
312
|
}
|
|
287
313
|
|
|
288
|
-
protected updatePosition(target: SModelElement, event: MouseEvent): Point | undefined {
|
|
289
|
-
if (this.lastDragPosition) {
|
|
290
|
-
const newDragPosition = { x: event.pageX, y: event.pageY };
|
|
291
|
-
|
|
292
|
-
const viewport = findParentByFeature(target, isViewport);
|
|
293
|
-
const zoom = viewport ? viewport.zoom : 1;
|
|
294
|
-
const dx = (event.pageX - this.lastDragPosition.x) / zoom;
|
|
295
|
-
const dy = (event.pageY - this.lastDragPosition.y) / zoom;
|
|
296
|
-
const deltaToLastPosition = { x: dx, y: dy };
|
|
297
|
-
this.lastDragPosition = newDragPosition;
|
|
298
|
-
|
|
299
|
-
// update position delta with latest delta
|
|
300
|
-
this.positionDelta.x += deltaToLastPosition.x;
|
|
301
|
-
this.positionDelta.y += deltaToLastPosition.y;
|
|
302
|
-
|
|
303
|
-
// snap our delta and only send update if the position actually changes
|
|
304
|
-
// otherwise accumulate delta until we do snap to an update
|
|
305
|
-
const positionUpdate = this.snap(this.positionDelta, target, !event.shiftKey);
|
|
306
|
-
if (positionUpdate.x === 0 && positionUpdate.y === 0) {
|
|
307
|
-
return undefined;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// we update our position so we need to reset our delta
|
|
311
|
-
this.positionDelta.x = 0;
|
|
312
|
-
this.positionDelta.y = 0;
|
|
313
|
-
return positionUpdate;
|
|
314
|
-
}
|
|
315
|
-
return undefined;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
314
|
protected reset(): void {
|
|
319
315
|
if (this.activeResizeElement && isResizable(this.activeResizeElement)) {
|
|
320
316
|
this.tool.dispatchFeedback([new HideChangeBoundsToolResizeFeedbackAction()], this);
|
|
321
|
-
|
|
322
317
|
}
|
|
323
318
|
this.tool.dispatchActions([cursorFeedbackAction(CursorCSS.DEFAULT)]);
|
|
324
319
|
this.resetPosition();
|
|
@@ -326,8 +321,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
326
321
|
|
|
327
322
|
protected resetPosition(): void {
|
|
328
323
|
this.activeResizeHandle = undefined;
|
|
329
|
-
this.
|
|
330
|
-
this.positionDelta = { x: 0, y: 0 };
|
|
324
|
+
this.pointPositionUpdater.resetPosition();
|
|
331
325
|
}
|
|
332
326
|
|
|
333
327
|
protected handleResizeOnClient(positionUpdate: Point): Action[] {
|
|
@@ -352,35 +346,43 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
352
346
|
}
|
|
353
347
|
|
|
354
348
|
protected handleTopLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
355
|
-
return this.createSetBoundsAction(
|
|
349
|
+
return this.createSetBoundsAction(
|
|
350
|
+
resizeElement,
|
|
356
351
|
resizeElement.bounds.x + positionUpdate.x,
|
|
357
352
|
resizeElement.bounds.y + positionUpdate.y,
|
|
358
353
|
resizeElement.bounds.width - positionUpdate.x,
|
|
359
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
354
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
355
|
+
);
|
|
360
356
|
}
|
|
361
357
|
|
|
362
358
|
protected handleTopRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
363
|
-
return this.createSetBoundsAction(
|
|
359
|
+
return this.createSetBoundsAction(
|
|
360
|
+
resizeElement,
|
|
364
361
|
resizeElement.bounds.x,
|
|
365
362
|
resizeElement.bounds.y + positionUpdate.y,
|
|
366
363
|
resizeElement.bounds.width + positionUpdate.x,
|
|
367
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
364
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
365
|
+
);
|
|
368
366
|
}
|
|
369
367
|
|
|
370
368
|
protected handleBottomLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
371
|
-
return this.createSetBoundsAction(
|
|
369
|
+
return this.createSetBoundsAction(
|
|
370
|
+
resizeElement,
|
|
372
371
|
resizeElement.bounds.x + positionUpdate.x,
|
|
373
372
|
resizeElement.bounds.y,
|
|
374
373
|
resizeElement.bounds.width - positionUpdate.x,
|
|
375
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
374
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
375
|
+
);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
protected handleBottomRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
379
|
-
return this.createSetBoundsAction(
|
|
379
|
+
return this.createSetBoundsAction(
|
|
380
|
+
resizeElement,
|
|
380
381
|
resizeElement.bounds.x,
|
|
381
382
|
resizeElement.bounds.y,
|
|
382
383
|
resizeElement.bounds.width + positionUpdate.x,
|
|
383
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
384
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
385
|
+
);
|
|
384
386
|
}
|
|
385
387
|
|
|
386
388
|
protected createChangeBoundsAction(element: SModelElement & BoundsAware): Action[] {
|
|
@@ -414,7 +416,6 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
414
416
|
result.push(removeMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
415
417
|
}
|
|
416
418
|
result.push(new SetBoundsAction([{ elementId: element.id, newPosition, newSize }]));
|
|
417
|
-
|
|
418
419
|
} else if (this.isValidSize(element, newSize)) {
|
|
419
420
|
if (this.tool.movementRestrictor) {
|
|
420
421
|
result.push(createMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
@@ -426,9 +427,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
426
427
|
}
|
|
427
428
|
|
|
428
429
|
protected snap(position: Point, element: SModelElement, isSnap: boolean): Point {
|
|
429
|
-
return isSnap && this.tool.snapper
|
|
430
|
-
? this.tool.snapper.snap(position, element)
|
|
431
|
-
: { x: position.x, y: position.y };
|
|
430
|
+
return isSnap && this.tool.snapper ? this.tool.snapper.snap(position, element) : { x: position.x, y: position.y };
|
|
432
431
|
}
|
|
433
432
|
|
|
434
433
|
protected isValidBoundChange(element: SModelElement & BoundsAware, newPosition: Point, newSize: Dimension): boolean {
|
|
@@ -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,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, DeleteElementOperation } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
EnableDefaultToolsAction,
|
|
20
20
|
findParentByFeature,
|
|
21
21
|
isCtrlOrCmd,
|
|
@@ -27,8 +27,6 @@ import {
|
|
|
27
27
|
SModelElement
|
|
28
28
|
} from 'sprotty';
|
|
29
29
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
30
|
-
|
|
31
|
-
import { DeleteElementOperation } from '../../base/operations/operation';
|
|
32
30
|
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
33
31
|
import { GLSP_TYPES } from '../../base/types';
|
|
34
32
|
import { IMouseTool } from '../mouse-tool/mouse-tool';
|
|
@@ -62,10 +60,15 @@ export class DelKeyDeleteTool implements GLSPTool {
|
|
|
62
60
|
|
|
63
61
|
@injectable()
|
|
64
62
|
export class DeleteKeyListener extends KeyListener {
|
|
65
|
-
keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
63
|
+
override keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
66
64
|
if (matchesKeystroke(event, 'Delete')) {
|
|
67
|
-
const deleteElementIds = Array.from(
|
|
68
|
-
.
|
|
65
|
+
const deleteElementIds = Array.from(
|
|
66
|
+
element.root.index
|
|
67
|
+
.all()
|
|
68
|
+
.filter(e => isDeletable(e) && isSelectable(e) && e.selected)
|
|
69
|
+
.filter(e => e.id !== e.root.id)
|
|
70
|
+
.map(e => e.id)
|
|
71
|
+
);
|
|
69
72
|
if (deleteElementIds.length > 0) {
|
|
70
73
|
return [new DeleteElementOperation(deleteElementIds)];
|
|
71
74
|
}
|
|
@@ -105,7 +108,7 @@ export class MouseDeleteTool implements GLSPTool {
|
|
|
105
108
|
|
|
106
109
|
@injectable()
|
|
107
110
|
export class DeleteToolMouseListener extends MouseListener {
|
|
108
|
-
mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
111
|
+
override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
109
112
|
const deletableParent = findParentByFeature(target, isDeletable);
|
|
110
113
|
if (deletableParent === undefined) {
|
|
111
114
|
return [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { TriggerEdgeCreationAction, TriggerNodeCreationAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { ContainerModule, interfaces } from 'inversify';
|
|
17
18
|
import { configureActionHandler, configureModelElement } from 'sprotty';
|
|
18
|
-
|
|
19
|
-
import { TriggerEdgeCreationAction, TriggerNodeCreationAction } from '../../base/operations/operation';
|
|
20
19
|
import { GLSP_TYPES } from '../../base/types';
|
|
21
20
|
import { MARQUEE } from '../tool-feedback/marquee-tool-feedback';
|
|
22
21
|
import { ChangeBoundsTool } from './change-bounds-tool';
|
|
@@ -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,9 +13,9 @@
|
|
|
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, isTriggerElementTypeCreationAction, TriggerEdgeCreationAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
EnableDefaultToolsAction,
|
|
21
21
|
EnableToolsAction,
|
|
@@ -26,13 +26,7 @@ import {
|
|
|
26
26
|
SEdge,
|
|
27
27
|
SModelElement
|
|
28
28
|
} from 'sprotty';
|
|
29
|
-
|
|
30
29
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
31
|
-
import {
|
|
32
|
-
CreateEdgeOperation,
|
|
33
|
-
isTriggerElementTypeCreationAction,
|
|
34
|
-
TriggerEdgeCreationAction
|
|
35
|
-
} from '../../base/operations/operation';
|
|
36
30
|
import {
|
|
37
31
|
DrawFeedbackEdgeAction,
|
|
38
32
|
FeedbackEdgeEndMovingMouseListener,
|
|
@@ -105,7 +99,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
105
99
|
this.tool.dispatchFeedback([new RemoveFeedbackEdgeAction()]);
|
|
106
100
|
}
|
|
107
101
|
|
|
108
|
-
nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
|
|
102
|
+
override nonDraggingMouseUp(_element: SModelElement, event: MouseEvent): Action[] {
|
|
109
103
|
const result: Action[] = [];
|
|
110
104
|
if (event.button === 0) {
|
|
111
105
|
if (!this.isSourceSelected()) {
|
|
@@ -140,7 +134,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
140
134
|
return this.target !== undefined;
|
|
141
135
|
}
|
|
142
136
|
|
|
143
|
-
mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
137
|
+
override mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
144
138
|
const newCurrentTarget = findParentByFeature(target, isConnectable);
|
|
145
139
|
if (newCurrentTarget !== this.currentTarget) {
|
|
146
140
|
this.currentTarget = newCurrentTarget;
|
|
@@ -151,8 +145,9 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
151
145
|
this.allowedTarget = this.isAllowedTarget(newCurrentTarget);
|
|
152
146
|
}
|
|
153
147
|
if (this.allowedTarget) {
|
|
154
|
-
const action = !this.isSourceSelected()
|
|
155
|
-
cursorFeedbackAction(CursorCSS.
|
|
148
|
+
const action = !this.isSourceSelected()
|
|
149
|
+
? cursorFeedbackAction(CursorCSS.EDGE_CREATION_SOURCE)
|
|
150
|
+
: cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET);
|
|
156
151
|
return [action];
|
|
157
152
|
}
|
|
158
153
|
}
|
|
@@ -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,33 +13,27 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, ChangeRoutingPointsOperation, ReconnectEdgeOperation } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, optional } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
canEditRouting,
|
|
21
21
|
Connectable,
|
|
22
22
|
EdgeRouterRegistry,
|
|
23
23
|
findParentByFeature,
|
|
24
24
|
isConnectable,
|
|
25
|
+
ISnapper,
|
|
25
26
|
isSelected,
|
|
26
27
|
SModelElement,
|
|
27
28
|
SModelRoot,
|
|
28
29
|
SRoutableElement,
|
|
29
|
-
SRoutingHandle
|
|
30
|
+
SRoutingHandle,
|
|
31
|
+
TYPES
|
|
30
32
|
} from 'sprotty';
|
|
31
|
-
|
|
32
33
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
33
|
-
import { ChangeRoutingPointsOperation, ReconnectEdgeOperation } from '../../base/operations/operation';
|
|
34
34
|
import { GLSP_TYPES } from '../../base/types';
|
|
35
35
|
import { isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
36
|
-
import {
|
|
37
|
-
isReconnectable,
|
|
38
|
-
isReconnectHandle,
|
|
39
|
-
isSourceRoutingHandle,
|
|
40
|
-
isTargetRoutingHandle,
|
|
41
|
-
SReconnectHandle
|
|
42
|
-
} from '../reconnect/model';
|
|
36
|
+
import { isReconnectable, isReconnectHandle, isSourceRoutingHandle, isTargetRoutingHandle, SReconnectHandle } from '../reconnect/model';
|
|
43
37
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
44
38
|
import { DrawFeedbackEdgeAction, feedbackEdgeId, RemoveFeedbackEdgeAction } from '../tool-feedback/creation-tool-feedback';
|
|
45
39
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
@@ -61,6 +55,7 @@ export class EdgeEditTool extends BaseGLSPTool {
|
|
|
61
55
|
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
62
56
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
63
57
|
@inject(EdgeRouterRegistry) @optional() protected edgeRouterRegistry?: EdgeRouterRegistry;
|
|
58
|
+
@inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
|
|
64
59
|
|
|
65
60
|
protected feedbackEdgeSourceMovingListener: FeedbackEdgeSourceMovingMouseListener;
|
|
66
61
|
protected feedbackEdgeTargetMovingListener: FeedbackEdgeTargetMovingMouseListener;
|
|
@@ -79,7 +74,7 @@ export class EdgeEditTool extends BaseGLSPTool {
|
|
|
79
74
|
// install feedback move mouse listener for client-side move updates
|
|
80
75
|
this.feedbackEdgeSourceMovingListener = new FeedbackEdgeSourceMovingMouseListener(this.anchorRegistry);
|
|
81
76
|
this.feedbackEdgeTargetMovingListener = new FeedbackEdgeTargetMovingMouseListener(this.anchorRegistry);
|
|
82
|
-
this.feedbackMovingListener = new FeedbackEdgeRouteMovingMouseListener(this.edgeRouterRegistry);
|
|
77
|
+
this.feedbackMovingListener = new FeedbackEdgeRouteMovingMouseListener(this.edgeRouterRegistry, this.snapper);
|
|
83
78
|
}
|
|
84
79
|
|
|
85
80
|
registerFeedbackListeners(): void {
|
|
@@ -193,7 +188,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
193
188
|
return this.routingHandle !== undefined;
|
|
194
189
|
}
|
|
195
190
|
|
|
196
|
-
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
191
|
+
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
197
192
|
const result: Action[] = super.mouseDown(target, event);
|
|
198
193
|
if (event.button === 0) {
|
|
199
194
|
const reconnectHandle = findParentByFeature(target, isReconnectHandle);
|
|
@@ -216,7 +211,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
216
211
|
return result;
|
|
217
212
|
}
|
|
218
213
|
|
|
219
|
-
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
214
|
+
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
220
215
|
const result = super.mouseMove(target, event);
|
|
221
216
|
if (this.isMouseDrag) {
|
|
222
217
|
// reset any selected connectables when we are dragging, maybe the user is just panning
|
|
@@ -225,7 +220,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
225
220
|
return result;
|
|
226
221
|
}
|
|
227
222
|
|
|
228
|
-
mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
223
|
+
override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
229
224
|
const result = super.mouseUp(target, event);
|
|
230
225
|
if (!this.isReadyToReconnect() && !this.isReadyToReroute()) {
|
|
231
226
|
return result;
|
|
@@ -239,7 +234,8 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
239
234
|
}
|
|
240
235
|
this.reset();
|
|
241
236
|
} else if (this.edge && this.routingHandle) {
|
|
242
|
-
// we need to re-retrieve the edge as it might have changed due to a server
|
|
237
|
+
// we need to re-retrieve the edge as it might have changed due to a server update since we do not reset the state between
|
|
238
|
+
// reroute actions
|
|
243
239
|
const latestEdge = target.index.getById(this.edge.id);
|
|
244
240
|
if (latestEdge && isRoutable(latestEdge)) {
|
|
245
241
|
result.push(new ChangeRoutingPointsOperation([{ elementId: latestEdge.id, newRoutingPoints: latestEdge.routingPoints }]));
|
|
@@ -249,15 +245,16 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
249
245
|
return result;
|
|
250
246
|
}
|
|
251
247
|
|
|
252
|
-
mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
248
|
+
override mouseOver(target: SModelElement, event: MouseEvent): Action[] {
|
|
253
249
|
if (this.edge && this.isReconnecting()) {
|
|
254
250
|
const currentTarget = findParentByFeature(target, isConnectable);
|
|
255
251
|
if (!this.newConnectable || currentTarget !== this.newConnectable) {
|
|
256
252
|
this.setNewConnectable(currentTarget);
|
|
257
253
|
if (currentTarget) {
|
|
258
|
-
if (
|
|
259
|
-
(this.reconnectMode === '
|
|
260
|
-
|
|
254
|
+
if (
|
|
255
|
+
(this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, 'source')) ||
|
|
256
|
+
(this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, 'target'))
|
|
257
|
+
) {
|
|
261
258
|
this.tool.dispatchFeedback([cursorFeedbackAction(CursorCSS.EDGE_RECONNECT)]);
|
|
262
259
|
return [];
|
|
263
260
|
}
|
|
@@ -314,11 +311,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
314
311
|
if (this.edge) {
|
|
315
312
|
result.push(new SwitchRoutingModeAction([], [this.edge.id]));
|
|
316
313
|
}
|
|
317
|
-
result.push(...[
|
|
318
|
-
new HideEdgeReconnectHandlesFeedbackAction(),
|
|
319
|
-
cursorFeedbackAction(),
|
|
320
|
-
new RemoveFeedbackEdgeAction()
|
|
321
|
-
]);
|
|
314
|
+
result.push(...[new HideEdgeReconnectHandlesFeedbackAction(), cursorFeedbackAction(), new RemoveFeedbackEdgeAction()]);
|
|
322
315
|
this.tool.deregisterFeedback(result);
|
|
323
316
|
this.tool.deregisterFeedbackListeners();
|
|
324
317
|
}
|