@eclipse-glsp/client 0.9.0-next.d9bed812 → 0.9.0-next.eb280175
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 +2 -1
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +16 -7
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +18 -2
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +41 -61
- 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} +4 -6
- 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-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +121 -152
- 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 +49 -65
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts +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 +13 -3
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +50 -33
- 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-service.d.ts +42 -0
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +109 -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 +19 -39
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts +5 -0
- package/lib/base/model/model-registry.d.ts.map +1 -0
- package/lib/base/model/model-registry.js +43 -0
- package/lib/base/model/model-registry.js.map +1 -0
- package/lib/base/model/update-model-command.d.ts +20 -6
- 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 +17 -2
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +34 -54
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +11 -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 +59 -141
- 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 +23 -21
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +4 -2
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +21 -32
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +34 -46
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -39
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
- 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.d.ts +2 -2
- 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 +19 -3
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +31 -36
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +24 -72
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +2 -2
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +14 -18
- 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 +2 -2
- 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 +29 -67
- 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 +19 -3
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +31 -32
- 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 +21 -4
- 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 +2 -2
- 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 +14 -47
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -6
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
- 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 +18 -3
- 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 +1 -16
- 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 +2 -2
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +21 -49
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +83 -142
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +2 -2
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +8 -8
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +18 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +37 -75
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +6 -2
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +47 -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 +26 -10
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -264
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +2 -17
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +124 -117
- 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 +1 -16
- 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.d.ts +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 +3 -2
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +74 -217
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +1 -16
- 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 -39
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -255
- 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 +2 -17
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +2 -2
- package/lib/features/rank/model.d.ts.map +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 +2 -2
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +10 -28
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +2 -2
- 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/model.d.ts +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.d.ts +1 -1
- 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 +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.d.ts +2 -2
- 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 +19 -3
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +134 -236
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +96 -138
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
- 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 +2 -2
- 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 +21 -4
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
- 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 +18 -2
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +2 -2
- 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 +22 -6
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +30 -51
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +2 -2
- 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 +22 -6
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +225 -291
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +21 -5
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -59
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +26 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +192 -241
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +20 -4
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +71 -104
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +1 -16
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +19 -19
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +20 -5
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +64 -89
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +22 -6
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +125 -189
- 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/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
- 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 +27 -15
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +90 -184
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +18 -2
- 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 +6 -24
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +20 -5
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +60 -90
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +3 -18
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +21 -39
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +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 +3 -3
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +18 -56
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +19 -3
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +131 -164
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +84 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +20 -31
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +148 -299
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +16 -1
- package/lib/features/viewport/di.config.d.ts.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 +3 -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 +32 -35
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +33 -35
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -3
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +11 -27
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +4 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +63 -122
- 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 +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +110 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +4 -3
- 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 +1 -39
- 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 +7 -17
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +18 -67
- 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 +9 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- package/lib/views/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 +27 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +55 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +8 -10
- package/lib/views/index.d.ts.map +1 -0
- package/lib/views/index.js +34 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +9 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +68 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +38 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +24 -32
- package/src/base/action-dispatcher.ts +7 -8
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +3 -4
- package/src/base/auto-complete/auto-complete-actions.ts +2 -2
- package/src/base/auto-complete/auto-complete-widget.ts +66 -48
- package/src/base/auto-complete/validation-decorator.ts +21 -15
- package/src/base/command-stack.ts +4 -7
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +44 -27
- package/src/base/drag-aware-mouse-listener.ts +7 -8
- package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
- package/src/base/focus-tracker.ts +4 -6
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +14 -22
- package/src/base/model-initialization-constraint.ts +16 -11
- package/src/base/selection-clearing-mouse-listener.ts +4 -3
- package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
- package/src/base/types.ts +23 -21
- package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
- package/src/features/change-bounds/model.ts +23 -13
- package/src/features/change-bounds/movement-restrictor.ts +28 -18
- package/src/features/change-bounds/snap.ts +6 -5
- package/src/features/command-palette/command-palette-tool.ts +4 -4
- package/src/features/command-palette/di.config.ts +7 -7
- package/src/features/command-palette/server-command-palette-provider.ts +16 -14
- package/src/features/context-menu/delete-element-context-menu.ts +10 -11
- package/src/features/context-menu/di.config.ts +10 -12
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
- package/src/features/context-menu/server-context-menu-provider.ts +13 -10
- package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
- package/src/features/copy-paste/copy-paste-handler.ts +30 -20
- package/src/features/copy-paste/di.config.ts +6 -7
- package/src/features/decoration/decoration-placer.ts +6 -15
- package/src/features/decoration/di.config.ts +4 -6
- package/src/features/edit-label/di.config.ts +5 -5
- package/src/features/edit-label/edit-label-tool.ts +4 -4
- package/src/features/edit-label/edit-label-validator.ts +18 -19
- package/src/features/hints/di.config.ts +6 -7
- package/src/features/hints/model.ts +7 -6
- package/src/features/hints/type-hints.ts +46 -113
- package/src/features/hover/di.config.ts +6 -7
- package/src/features/hover/hover.ts +11 -14
- package/src/features/layout/di.config.ts +32 -6
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +104 -85
- package/src/features/layout/layout-commands.ts +65 -54
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +5 -6
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
- package/src/features/mouse-tool/di.config.ts +4 -4
- package/src/features/mouse-tool/mouse-tool.ts +44 -32
- package/src/features/navigation/di.config.ts +6 -12
- package/src/features/navigation/navigation-action-handler.ts +46 -78
- package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
- package/src/features/navigation/navigation-target-resolver.ts +16 -94
- package/src/features/rank/model.ts +3 -3
- package/src/features/reconnect/model.ts +9 -11
- package/src/features/save/di.config.ts +4 -5
- package/src/features/save/model.ts +1 -1
- package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
- package/src/features/select/di.config.ts +6 -6
- package/src/features/select/select-feedback-action.ts +6 -8
- package/src/features/select/select-mouse-listener.ts +2 -2
- package/src/features/select/selection-service.spec.ts +25 -19
- package/src/features/select/selection-service.ts +25 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
- package/src/features/tool-feedback/css-feedback.ts +16 -13
- package/src/features/tool-feedback/di.config.ts +12 -15
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
- package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
- package/src/features/tool-feedback/model.ts +2 -3
- package/src/features/tool-feedback/view.tsx +20 -13
- package/src/features/tool-palette/di.config.ts +5 -7
- package/src/features/tool-palette/palette-item.ts +5 -7
- package/src/features/tool-palette/tool-palette.ts +118 -110
- package/src/features/tools/base-glsp-tool.ts +12 -12
- package/src/features/tools/change-bounds-tool.ts +83 -53
- package/src/features/tools/delete-tool.ts +23 -20
- package/src/features/tools/di.config.ts +16 -17
- package/src/features/tools/edge-creation-tool.ts +20 -25
- package/src/features/tools/edge-edit-tool.ts +43 -46
- 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 +67 -118
- package/src/features/tools/marquee-tool.ts +6 -6
- package/src/features/tools/model.ts +1 -2
- package/src/features/tools/node-creation-tool.ts +16 -23
- package/src/features/tools/view.tsx +21 -15
- package/src/features/validation/di.config.ts +5 -5
- package/src/features/validation/issue-marker.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +38 -33
- package/src/features/validation/marker-navigator.ts +39 -26
- package/src/features/validation/validate.ts +25 -59
- package/src/features/viewport/di.config.ts +4 -4
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +53 -38
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +19 -33
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +130 -0
- package/src/utils/layout-utils.ts +19 -11
- package/src/utils/marker.ts +8 -32
- package/src/utils/smodel-util.ts +28 -22
- package/src/utils/viewpoint-util.ts +5 -6
- package/src/views/base-view-module.ts +97 -0
- package/src/views/compartments.tsx +37 -0
- package/src/views/glsp-edge-view.tsx +79 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +65 -0
- package/src/views/rounded-corner-view.tsx +103 -0
- package/src/views/rounded-corner.ts +87 -0
- 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 -82
- 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 +0 -46
- 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/decoration/view.d.ts +0 -8
- package/lib/features/decoration/view.d.ts.map +0 -1
- package/lib/features/decoration/view.js +0 -80
- package/lib/features/decoration/view.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/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-mode-action.ts +0 -33
- package/src/base/actions/edit-validation-actions.ts +0 -102
- 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/decoration/view.tsx +0 -54
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
|
@@ -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,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,
|
|
@@ -26,45 +34,37 @@ import {
|
|
|
26
34
|
isSelected,
|
|
27
35
|
isViewport,
|
|
28
36
|
MouseListener,
|
|
29
|
-
|
|
37
|
+
SChildElement,
|
|
30
38
|
SConnectableElement,
|
|
31
39
|
SetBoundsAction,
|
|
32
40
|
SModelElement,
|
|
33
41
|
SModelRoot,
|
|
34
42
|
SParentElement,
|
|
35
43
|
TYPES
|
|
36
|
-
} from
|
|
37
|
-
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
ChangeBoundsOperation,
|
|
41
|
-
ChangeRoutingPointsOperation,
|
|
42
|
-
CompoundOperation,
|
|
43
|
-
ElementAndRoutingPoints,
|
|
44
|
-
Operation
|
|
45
|
-
} from "../../base/operations/operation";
|
|
46
|
-
import { GLSP_TYPES } from "../../base/types";
|
|
47
|
-
import { isValidMove, isValidSize, WriteablePoint } from "../../utils/layout-utils";
|
|
44
|
+
} from 'sprotty';
|
|
45
|
+
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
46
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
47
|
+
import { isValidMove, isValidSize, WriteablePoint } from '../../utils/layout-utils';
|
|
48
48
|
import {
|
|
49
49
|
forEachElement,
|
|
50
50
|
isNonRoutableSelectedMovableBoundsAware,
|
|
51
51
|
toElementAndBounds,
|
|
52
52
|
toElementAndRoutingPoints
|
|
53
|
-
} from
|
|
54
|
-
import { isBoundsAwareMoveable, isResizable, Resizable, ResizeHandleLocation, SResizeHandle } from
|
|
53
|
+
} from '../../utils/smodel-util';
|
|
54
|
+
import { isBoundsAwareMoveable, isResizable, Resizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
|
|
55
55
|
import {
|
|
56
56
|
createMovementRestrictionFeedback,
|
|
57
57
|
IMovementRestrictor,
|
|
58
58
|
removeMovementRestrictionFeedback
|
|
59
|
-
} from
|
|
60
|
-
import { SelectionListener, SelectionService } from
|
|
59
|
+
} from '../change-bounds/movement-restrictor';
|
|
60
|
+
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
61
61
|
import {
|
|
62
62
|
FeedbackMoveMouseListener,
|
|
63
63
|
HideChangeBoundsToolResizeFeedbackAction,
|
|
64
64
|
ShowChangeBoundsToolResizeFeedbackAction
|
|
65
|
-
} from
|
|
66
|
-
import { applyCssClasses, CursorCSS, cursorFeedbackAction, deleteCssClasses } from
|
|
67
|
-
import { BaseGLSPTool } from
|
|
65
|
+
} from '../tool-feedback/change-bounds-tool-feedback';
|
|
66
|
+
import { applyCssClasses, CursorCSS, cursorFeedbackAction, deleteCssClasses } from '../tool-feedback/css-feedback';
|
|
67
|
+
import { BaseGLSPTool } from './base-glsp-tool';
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* The change bounds tool has the license to move multiple elements or resize a single element by implementing the ChangeBounds operation.
|
|
@@ -76,12 +76,12 @@ 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 {
|
|
84
|
-
static ID =
|
|
84
|
+
static ID = 'glsp.change-bounds-tool';
|
|
85
85
|
|
|
86
86
|
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
87
87
|
@inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
@@ -94,7 +94,7 @@ export class ChangeBoundsTool extends BaseGLSPTool {
|
|
|
94
94
|
return ChangeBoundsTool.ID;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
enable() {
|
|
97
|
+
enable(): void {
|
|
98
98
|
// install feedback move mouse listener for client-side move updates
|
|
99
99
|
this.feedbackMoveMouseListener = this.createMoveMouseListener();
|
|
100
100
|
this.mouseTool.register(this.feedbackMoveMouseListener);
|
|
@@ -113,12 +113,12 @@ export class ChangeBoundsTool extends BaseGLSPTool {
|
|
|
113
113
|
return new ChangeBoundsListener(this);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
disable() {
|
|
116
|
+
disable(): void {
|
|
117
117
|
this.mouseTool.deregister(this.changeBoundsListener);
|
|
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
|
|
|
@@ -162,7 +162,10 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
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[] = [
|
|
165
|
+
const actions: Action[] = [
|
|
166
|
+
cursorFeedbackAction(this.activeResizeHandle.isNwSeResize() ? CursorCSS.RESIZE_NWSE : CursorCSS.RESIZE_NESW),
|
|
167
|
+
applyCssClasses(this.activeResizeHandle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
|
|
168
|
+
];
|
|
166
169
|
const positionUpdate = this.updatePosition(target, event);
|
|
167
170
|
if (positionUpdate) {
|
|
168
171
|
const resizeActions = this.handleResizeOnClient(positionUpdate);
|
|
@@ -205,15 +208,33 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
205
208
|
protected handleMoveElementsOnServer(target: SModelElement): Action[] {
|
|
206
209
|
const result: Operation[] = [];
|
|
207
210
|
const newBounds: ElementAndBounds[] = [];
|
|
211
|
+
const selectedElements: (SModelElement & BoundsAware)[] = [];
|
|
208
212
|
forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
209
|
-
|
|
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[] = [];
|
|
@@ -277,11 +298,16 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
277
298
|
return element !== undefined && this.activeResizeElement !== undefined && element.id === this.activeResizeElement.id;
|
|
278
299
|
}
|
|
279
300
|
|
|
280
|
-
protected initPosition(event: MouseEvent) {
|
|
301
|
+
protected initPosition(event: MouseEvent): void {
|
|
281
302
|
this.lastDragPosition = { 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
|
|
|
@@ -302,29 +328,28 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
302
328
|
|
|
303
329
|
// snap our delta and only send update if the position actually changes
|
|
304
330
|
// otherwise accumulate delta until we do snap to an update
|
|
305
|
-
const positionUpdate = this.snap(this.positionDelta, target, !event.
|
|
331
|
+
const positionUpdate = this.snap(this.positionDelta, target, !event.altKey);
|
|
306
332
|
if (positionUpdate.x === 0 && positionUpdate.y === 0) {
|
|
307
333
|
return undefined;
|
|
308
334
|
}
|
|
309
335
|
|
|
310
|
-
// we update our position so we
|
|
311
|
-
this.positionDelta.x
|
|
312
|
-
this.positionDelta.y
|
|
336
|
+
// we update our position so we update our delta by the snapped position
|
|
337
|
+
this.positionDelta.x -= positionUpdate.x;
|
|
338
|
+
this.positionDelta.y -= positionUpdate.y;
|
|
313
339
|
return positionUpdate;
|
|
314
340
|
}
|
|
315
341
|
return undefined;
|
|
316
342
|
}
|
|
317
343
|
|
|
318
|
-
protected reset() {
|
|
344
|
+
protected reset(): void {
|
|
319
345
|
if (this.activeResizeElement && isResizable(this.activeResizeElement)) {
|
|
320
346
|
this.tool.dispatchFeedback([new HideChangeBoundsToolResizeFeedbackAction()], this);
|
|
321
|
-
|
|
322
347
|
}
|
|
323
348
|
this.tool.dispatchActions([cursorFeedbackAction(CursorCSS.DEFAULT)]);
|
|
324
349
|
this.resetPosition();
|
|
325
350
|
}
|
|
326
351
|
|
|
327
|
-
protected resetPosition() {
|
|
352
|
+
protected resetPosition(): void {
|
|
328
353
|
this.activeResizeHandle = undefined;
|
|
329
354
|
this.lastDragPosition = undefined;
|
|
330
355
|
this.positionDelta = { x: 0, y: 0 };
|
|
@@ -352,35 +377,43 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
352
377
|
}
|
|
353
378
|
|
|
354
379
|
protected handleTopLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
355
|
-
return this.createSetBoundsAction(
|
|
380
|
+
return this.createSetBoundsAction(
|
|
381
|
+
resizeElement,
|
|
356
382
|
resizeElement.bounds.x + positionUpdate.x,
|
|
357
383
|
resizeElement.bounds.y + positionUpdate.y,
|
|
358
384
|
resizeElement.bounds.width - positionUpdate.x,
|
|
359
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
385
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
386
|
+
);
|
|
360
387
|
}
|
|
361
388
|
|
|
362
389
|
protected handleTopRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
363
|
-
return this.createSetBoundsAction(
|
|
390
|
+
return this.createSetBoundsAction(
|
|
391
|
+
resizeElement,
|
|
364
392
|
resizeElement.bounds.x,
|
|
365
393
|
resizeElement.bounds.y + positionUpdate.y,
|
|
366
394
|
resizeElement.bounds.width + positionUpdate.x,
|
|
367
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
395
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
396
|
+
);
|
|
368
397
|
}
|
|
369
398
|
|
|
370
399
|
protected handleBottomLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
371
|
-
return this.createSetBoundsAction(
|
|
400
|
+
return this.createSetBoundsAction(
|
|
401
|
+
resizeElement,
|
|
372
402
|
resizeElement.bounds.x + positionUpdate.x,
|
|
373
403
|
resizeElement.bounds.y,
|
|
374
404
|
resizeElement.bounds.width - positionUpdate.x,
|
|
375
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
405
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
406
|
+
);
|
|
376
407
|
}
|
|
377
408
|
|
|
378
409
|
protected handleBottomRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
379
|
-
return this.createSetBoundsAction(
|
|
410
|
+
return this.createSetBoundsAction(
|
|
411
|
+
resizeElement,
|
|
380
412
|
resizeElement.bounds.x,
|
|
381
413
|
resizeElement.bounds.y,
|
|
382
414
|
resizeElement.bounds.width + positionUpdate.x,
|
|
383
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
415
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
416
|
+
);
|
|
384
417
|
}
|
|
385
418
|
|
|
386
419
|
protected createChangeBoundsAction(element: SModelElement & BoundsAware): Action[] {
|
|
@@ -414,7 +447,6 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
414
447
|
result.push(removeMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
415
448
|
}
|
|
416
449
|
result.push(new SetBoundsAction([{ elementId: element.id, newPosition, newSize }]));
|
|
417
|
-
|
|
418
450
|
} else if (this.isValidSize(element, newSize)) {
|
|
419
451
|
if (this.tool.movementRestrictor) {
|
|
420
452
|
result.push(createMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
@@ -426,20 +458,18 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
426
458
|
}
|
|
427
459
|
|
|
428
460
|
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 };
|
|
461
|
+
return isSnap && this.tool.snapper ? this.tool.snapper.snap(position, element) : { x: position.x, y: position.y };
|
|
432
462
|
}
|
|
433
463
|
|
|
434
464
|
protected isValidBoundChange(element: SModelElement & BoundsAware, newPosition: Point, newSize: Dimension): boolean {
|
|
435
465
|
return this.isValidSize(element, newSize) && this.isValidMove(element, newPosition);
|
|
436
466
|
}
|
|
437
467
|
|
|
438
|
-
protected isValidSize(element: SModelElement & BoundsAware, size: Dimension) {
|
|
468
|
+
protected isValidSize(element: SModelElement & BoundsAware, size: Dimension): boolean {
|
|
439
469
|
return isValidSize(element, size);
|
|
440
470
|
}
|
|
441
471
|
|
|
442
|
-
protected isValidMove(element: SModelElement & BoundsAware, newPosition: Point) {
|
|
472
|
+
protected isValidMove(element: SModelElement & BoundsAware, newPosition: Point): boolean {
|
|
443
473
|
return isValidMove(element, newPosition, this.tool.movementRestrictor);
|
|
444
474
|
}
|
|
445
475
|
}
|
|
@@ -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,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 {
|
|
16
|
+
import { Action, DeleteElementOperation } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
EnableDefaultToolsAction,
|
|
20
20
|
findParentByFeature,
|
|
21
21
|
isCtrlOrCmd,
|
|
@@ -25,22 +25,20 @@ import {
|
|
|
25
25
|
KeyTool,
|
|
26
26
|
MouseListener,
|
|
27
27
|
SModelElement
|
|
28
|
-
} from
|
|
29
|
-
import { matchesKeystroke } from
|
|
30
|
-
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import { CursorCSS, cursorFeedbackAction } from "../tool-feedback/css-feedback";
|
|
36
|
-
import { IFeedbackActionDispatcher } from "../tool-feedback/feedback-action-dispatcher";
|
|
28
|
+
} from 'sprotty';
|
|
29
|
+
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
30
|
+
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
31
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
32
|
+
import { IMouseTool } from '../mouse-tool/mouse-tool';
|
|
33
|
+
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
34
|
+
import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
|
|
37
35
|
|
|
38
36
|
/**
|
|
39
37
|
* Deletes selected elements when hitting the `Del` key.
|
|
40
38
|
*/
|
|
41
39
|
@injectable()
|
|
42
40
|
export class DelKeyDeleteTool implements GLSPTool {
|
|
43
|
-
static ID =
|
|
41
|
+
static ID = 'glsp.delete-keyboard';
|
|
44
42
|
|
|
45
43
|
isEditTool = true;
|
|
46
44
|
protected deleteKeyListener: DeleteKeyListener = new DeleteKeyListener();
|
|
@@ -51,11 +49,11 @@ export class DelKeyDeleteTool implements GLSPTool {
|
|
|
51
49
|
return DelKeyDeleteTool.ID;
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
enable() {
|
|
52
|
+
enable(): void {
|
|
55
53
|
this.keytool.register(this.deleteKeyListener);
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
disable() {
|
|
56
|
+
disable(): void {
|
|
59
57
|
this.keytool.deregister(this.deleteKeyListener);
|
|
60
58
|
}
|
|
61
59
|
}
|
|
@@ -64,8 +62,13 @@ export class DelKeyDeleteTool implements GLSPTool {
|
|
|
64
62
|
export class DeleteKeyListener extends KeyListener {
|
|
65
63
|
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
|
}
|
|
@@ -79,7 +82,7 @@ export class DeleteKeyListener extends KeyListener {
|
|
|
79
82
|
*/
|
|
80
83
|
@injectable()
|
|
81
84
|
export class MouseDeleteTool implements GLSPTool {
|
|
82
|
-
static ID =
|
|
85
|
+
static ID = 'glsp.delete-mouse';
|
|
83
86
|
|
|
84
87
|
isEditTool = true;
|
|
85
88
|
|
|
@@ -92,12 +95,12 @@ export class MouseDeleteTool implements GLSPTool {
|
|
|
92
95
|
return MouseDeleteTool.ID;
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
enable() {
|
|
98
|
+
enable(): void {
|
|
96
99
|
this.mouseTool.register(this.deleteToolMouseListener);
|
|
97
100
|
this.feedbackDispatcher.registerFeedback(this, [cursorFeedbackAction(CursorCSS.ELEMENT_DELETION)]);
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
disable() {
|
|
103
|
+
disable(): void {
|
|
101
104
|
this.mouseTool.deregister(this.deleteToolMouseListener);
|
|
102
105
|
this.feedbackDispatcher.registerFeedback(this, [cursorFeedbackAction()]);
|
|
103
106
|
}
|
|
@@ -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,21 +13,20 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import { MarqueeView } from "./view";
|
|
16
|
+
import { TriggerEdgeCreationAction, TriggerNodeCreationAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { ContainerModule, interfaces } from 'inversify';
|
|
18
|
+
import { configureActionHandler, configureModelElement } from 'sprotty';
|
|
19
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
20
|
+
import { MARQUEE } from '../tool-feedback/marquee-tool-feedback';
|
|
21
|
+
import { ChangeBoundsTool } from './change-bounds-tool';
|
|
22
|
+
import { DelKeyDeleteTool, MouseDeleteTool } from './delete-tool';
|
|
23
|
+
import { EdgeCreationTool } from './edge-creation-tool';
|
|
24
|
+
import { EdgeEditTool } from './edge-edit-tool';
|
|
25
|
+
import { MarqueeMouseTool } from './marquee-mouse-tool';
|
|
26
|
+
import { MarqueeTool } from './marquee-tool';
|
|
27
|
+
import { MarqueeNode } from './model';
|
|
28
|
+
import { NodeCreationTool } from './node-creation-tool';
|
|
29
|
+
import { MarqueeView } from './view';
|
|
31
30
|
|
|
32
31
|
const toolsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
33
32
|
// Register default tools
|
|
@@ -47,7 +46,7 @@ const toolsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
|
47
46
|
configureActionHandler({ bind, isBound }, TriggerEdgeCreationAction.KIND, EdgeCreationTool);
|
|
48
47
|
});
|
|
49
48
|
|
|
50
|
-
export function configureMarqueeTool(context: { bind: interfaces.Bind
|
|
49
|
+
export function configureMarqueeTool(context: { bind: interfaces.Bind; isBound: interfaces.IsBound }): void {
|
|
51
50
|
configureModelElement(context, MARQUEE, MarqueeNode, MarqueeView);
|
|
52
51
|
context.bind(GLSP_TYPES.IDefaultTool).to(MarqueeTool);
|
|
53
52
|
context.bind(GLSP_TYPES.ITool).to(MarqueeMouseTool);
|
|
@@ -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,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 {
|
|
16
|
+
import { Action, CreateEdgeOperation, isTriggerElementTypeCreationAction, TriggerEdgeCreationAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
EnableDefaultToolsAction,
|
|
21
21
|
EnableToolsAction,
|
|
@@ -25,28 +25,22 @@ import {
|
|
|
25
25
|
isCtrlOrCmd,
|
|
26
26
|
SEdge,
|
|
27
27
|
SModelElement
|
|
28
|
-
} from
|
|
29
|
-
|
|
30
|
-
import { DragAwareMouseListener } from "../../base/drag-aware-mouse-listener";
|
|
31
|
-
import {
|
|
32
|
-
CreateEdgeOperation,
|
|
33
|
-
isTriggerElementTypeCreationAction,
|
|
34
|
-
TriggerEdgeCreationAction
|
|
35
|
-
} from "../../base/operations/operation";
|
|
28
|
+
} from 'sprotty';
|
|
29
|
+
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
36
30
|
import {
|
|
37
31
|
DrawFeedbackEdgeAction,
|
|
38
32
|
FeedbackEdgeEndMovingMouseListener,
|
|
39
33
|
RemoveFeedbackEdgeAction
|
|
40
|
-
} from
|
|
41
|
-
import { CursorCSS, cursorFeedbackAction } from
|
|
42
|
-
import { BaseGLSPTool } from
|
|
34
|
+
} from '../tool-feedback/creation-tool-feedback';
|
|
35
|
+
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
36
|
+
import { BaseGLSPTool } from './base-glsp-tool';
|
|
43
37
|
|
|
44
38
|
/**
|
|
45
39
|
* Tool to create connections in a Diagram, by selecting a source and target node.
|
|
46
40
|
*/
|
|
47
41
|
@injectable()
|
|
48
42
|
export class EdgeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
49
|
-
static ID =
|
|
43
|
+
static ID = 'tool_create_edge';
|
|
50
44
|
|
|
51
45
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
52
46
|
|
|
@@ -58,7 +52,7 @@ export class EdgeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
|
58
52
|
return EdgeCreationTool.ID;
|
|
59
53
|
}
|
|
60
54
|
|
|
61
|
-
enable() {
|
|
55
|
+
enable(): void {
|
|
62
56
|
if (this.triggerAction === undefined) {
|
|
63
57
|
throw new TypeError(`Could not enable tool ${this.id}.The triggerAction cannot be undefined.`);
|
|
64
58
|
}
|
|
@@ -69,7 +63,7 @@ export class EdgeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
|
69
63
|
this.dispatchFeedback([cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED)]);
|
|
70
64
|
}
|
|
71
65
|
|
|
72
|
-
disable() {
|
|
66
|
+
disable(): void {
|
|
73
67
|
this.mouseTool.deregister(this.creationToolMouseListener);
|
|
74
68
|
this.mouseTool.deregister(this.feedbackEndMovingMouseListener);
|
|
75
69
|
this.deregisterFeedback([new RemoveFeedbackEdgeAction(), cursorFeedbackAction()]);
|
|
@@ -88,7 +82,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
88
82
|
protected source?: string;
|
|
89
83
|
protected target?: string;
|
|
90
84
|
protected currentTarget?: SModelElement;
|
|
91
|
-
protected allowedTarget
|
|
85
|
+
protected allowedTarget = false;
|
|
92
86
|
protected proxyEdge: SEdge;
|
|
93
87
|
|
|
94
88
|
constructor(protected triggerAction: TriggerEdgeCreationAction, protected tool: EdgeCreationTool) {
|
|
@@ -97,7 +91,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
97
91
|
this.proxyEdge.type = triggerAction.elementTypeId;
|
|
98
92
|
}
|
|
99
93
|
|
|
100
|
-
protected reinitialize() {
|
|
94
|
+
protected reinitialize(): void {
|
|
101
95
|
this.source = undefined;
|
|
102
96
|
this.target = undefined;
|
|
103
97
|
this.currentTarget = undefined;
|
|
@@ -132,11 +126,11 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
132
126
|
return result;
|
|
133
127
|
}
|
|
134
128
|
|
|
135
|
-
protected isSourceSelected() {
|
|
129
|
+
protected isSourceSelected(): boolean {
|
|
136
130
|
return this.source !== undefined;
|
|
137
131
|
}
|
|
138
132
|
|
|
139
|
-
protected isTargetSelected() {
|
|
133
|
+
protected isTargetSelected(): boolean {
|
|
140
134
|
return this.target !== undefined;
|
|
141
135
|
}
|
|
142
136
|
|
|
@@ -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
|
}
|
|
@@ -162,10 +157,10 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
162
157
|
}
|
|
163
158
|
|
|
164
159
|
protected isAllowedSource(element: SModelElement | undefined): boolean {
|
|
165
|
-
return element !== undefined && isConnectable(element) && element.canConnect(this.proxyEdge,
|
|
160
|
+
return element !== undefined && isConnectable(element) && element.canConnect(this.proxyEdge, 'source');
|
|
166
161
|
}
|
|
167
162
|
|
|
168
163
|
protected isAllowedTarget(element: SModelElement | undefined): boolean {
|
|
169
|
-
return element !== undefined && isConnectable(element) && element.canConnect(this.proxyEdge,
|
|
164
|
+
return element !== undefined && isConnectable(element) && element.canConnect(this.proxyEdge, 'target');
|
|
170
165
|
}
|
|
171
166
|
}
|