@eclipse-glsp/client 0.9.0-next.d2f88f00 → 0.9.0-next.e0116720
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 +17 -1
- 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} +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 +119 -153
- 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 +43 -27
- 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 +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.js +10 -28
- 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 +16 -1
- 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.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 +1 -1
- 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.js +10 -28
- 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 +20 -31
- 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 +28 -42
- 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.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.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 +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 +12 -46
- 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 +8 -8
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +17 -1
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +37 -77
- 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 +189 -265
- 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 +95 -89
- 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 +2 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +70 -215
- 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 +26 -26
- 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 +17 -1
- 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 -139
- 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 +102 -142
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +69 -118
- 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 +18 -2
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -208
- 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 +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 -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 +29 -51
- 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 +199 -269
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +18 -2
- 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 +20 -3
- 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 +17 -1
- 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 +0 -15
- 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 +17 -2
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +62 -87
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +17 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +112 -183
- 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 +24 -13
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +86 -195
- 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.js +4 -22
- 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 +60 -90
- 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 +12 -31
- 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 +131 -164
- 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 +83 -77
- 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 +147 -300
- 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 +29 -34
- package/lib/index.js.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 +3 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +60 -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 +75 -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 +4 -4
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +16 -65
- 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 +1 -1
- 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 +36 -50
- 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 +40 -70
- 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 +10 -18
- package/src/base/action-dispatcher.ts +3 -4
- 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 +2 -5
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +33 -18
- package/src/base/drag-aware-mouse-listener.ts +3 -4
- package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
- package/src/base/focus-tracker.ts +2 -4
- package/src/base/model/update-model-command.ts +8 -16
- package/src/base/model-initialization-constraint.ts +3 -2
- package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
- package/src/base/types.ts +4 -2
- package/src/features/change-bounds/model.ts +15 -5
- package/src/features/change-bounds/movement-restrictor.ts +17 -9
- package/src/features/change-bounds/snap.ts +3 -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 +4 -3
- 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 +3 -13
- 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 +23 -90
- package/src/features/hover/di.config.ts +1 -2
- package/src/features/hover/hover.ts +2 -7
- 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 +43 -34
- package/src/features/layout/vbox-layout.ts +256 -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 +33 -23
- 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 +2 -3
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/{save.ts → save-keylistener.ts} +3 -11
- 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 +14 -10
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -20
- package/src/features/tool-feedback/creation-tool-feedback.ts +17 -10
- 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 +19 -18
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +8 -9
- package/src/features/tool-feedback/marquee-tool-feedback.ts +4 -5
- package/src/features/tool-feedback/model.ts +1 -2
- 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 +44 -40
- package/src/features/tools/base-glsp-tool.ts +4 -4
- package/src/features/tools/change-bounds-tool.ts +64 -34
- package/src/features/tools/delete-tool.ts +9 -6
- package/src/features/tools/di.config.ts +2 -3
- package/src/features/tools/edge-creation-tool.ts +5 -10
- package/src/features/tools/edge-edit-tool.ts +10 -20
- 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 +43 -134
- package/src/features/tools/marquee-tool.ts +2 -3
- package/src/features/tools/node-creation-tool.ts +4 -11
- package/src/features/tools/view.tsx +17 -12
- 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 +24 -12
- package/src/features/validation/validate.ts +7 -40
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -12
- package/src/index.ts +30 -19
- package/src/model-source/glsp-diagram-server.ts +12 -28
- 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 +15 -11
- 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 +21 -14
- package/src/views/index.ts +1 -1
- package/src/views/issue-marker-view.tsx +28 -19
- package/src/views/rounded-corner-view.tsx +38 -25
- 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 +0 -24
- 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-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,6 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { isSetContextActionsAction, RequestContextActions, RequestMarkersAction, SetContextActions } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
17
18
|
import {
|
|
18
19
|
AbstractUIExtension,
|
|
@@ -26,20 +27,18 @@ import {
|
|
|
26
27
|
SModelRoot,
|
|
27
28
|
TYPES
|
|
28
29
|
} from 'sprotty';
|
|
30
|
+
import { codiconCSSClasses } from 'sprotty/lib/utils/codicon';
|
|
29
31
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
30
|
-
|
|
31
32
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
32
|
-
import {
|
|
33
|
-
import { EditModeListener, EditorContextService } from '../../base/editor-context';
|
|
33
|
+
import { EditModeListener, EditorContextService } from '../../base/editor-context-service';
|
|
34
34
|
import { MouseDeleteTool } from '../tools/delete-tool';
|
|
35
35
|
import { MarqueeMouseTool } from '../tools/marquee-mouse-tool';
|
|
36
|
-
import { RequestMarkersAction } from '../validation/validate';
|
|
37
36
|
import { PaletteItem } from './palette-item';
|
|
38
37
|
|
|
39
38
|
const CLICKED_CSS_CLASS = 'clicked';
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
39
|
+
const SEARCH_ICON_ID = 'search';
|
|
40
|
+
const PALETTE_ICON_ID = 'symbol-color';
|
|
41
|
+
const CHEVRON_DOWN_ICON_ID = 'chevron-right';
|
|
43
42
|
const PALETTE_HEIGHT = '500px';
|
|
44
43
|
|
|
45
44
|
@injectable()
|
|
@@ -101,7 +100,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
101
100
|
this.containerElement.classList.add('collapsible-palette');
|
|
102
101
|
if (baseDiv) {
|
|
103
102
|
const insertedDiv = baseDiv.insertBefore(minPaletteDiv, baseDiv.firstChild);
|
|
104
|
-
const minimizeIcon = createIcon(
|
|
103
|
+
const minimizeIcon = createIcon(CHEVRON_DOWN_ICON_ID);
|
|
105
104
|
this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
|
|
106
105
|
minimizeIcon.onclick = _event => {
|
|
107
106
|
if (this.isPaletteMaximized()) {
|
|
@@ -110,10 +109,8 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
110
109
|
this.containerElement.style.maxHeight = PALETTE_HEIGHT;
|
|
111
110
|
}
|
|
112
111
|
this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
changeCSSClass(minimizeIcon, 'fas');
|
|
116
|
-
changeCSSClass(minimizeIcon, CHEVRON_DOWN);
|
|
112
|
+
changeCodiconClass(minimizeIcon, PALETTE_ICON_ID);
|
|
113
|
+
changeCodiconClass(minimizeIcon, CHEVRON_DOWN_ICON_ID);
|
|
117
114
|
};
|
|
118
115
|
insertedDiv.appendChild(minimizeIcon);
|
|
119
116
|
}
|
|
@@ -135,16 +132,15 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
135
132
|
const bodyDiv = document.createElement('div');
|
|
136
133
|
bodyDiv.classList.add('palette-body');
|
|
137
134
|
let tabIndex = 0;
|
|
138
|
-
this.paletteItems.sort(compare)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
});
|
|
135
|
+
this.paletteItems.sort(compare).forEach(item => {
|
|
136
|
+
if (item.children) {
|
|
137
|
+
const group = createToolGroup(item);
|
|
138
|
+
item.children.sort(compare).forEach(child => group.appendChild(this.createToolButton(child, tabIndex++)));
|
|
139
|
+
bodyDiv.appendChild(group);
|
|
140
|
+
} else {
|
|
141
|
+
bodyDiv.appendChild(this.createToolButton(item, tabIndex++));
|
|
142
|
+
}
|
|
143
|
+
});
|
|
148
144
|
if (this.paletteItems.length === 0) {
|
|
149
145
|
const noResultsDiv = document.createElement('div');
|
|
150
146
|
noResultsDiv.innerText = 'No results found.';
|
|
@@ -165,7 +161,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
165
161
|
headerCompartment.classList.add('palette-header');
|
|
166
162
|
headerCompartment.append(this.createHeaderTitle());
|
|
167
163
|
headerCompartment.appendChild(this.createHeaderTools());
|
|
168
|
-
headerCompartment.appendChild(this.searchField = this.createHeaderSearchField());
|
|
164
|
+
headerCompartment.appendChild((this.searchField = this.createHeaderSearchField()));
|
|
169
165
|
this.containerElement.appendChild(headerCompartment);
|
|
170
166
|
}
|
|
171
167
|
|
|
@@ -193,7 +189,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
193
189
|
}
|
|
194
190
|
|
|
195
191
|
protected createDefaultToolButton(): HTMLElement {
|
|
196
|
-
const button = createIcon(
|
|
192
|
+
const button = createIcon('inspect');
|
|
197
193
|
button.id = 'btn_default_tools';
|
|
198
194
|
button.title = 'Enable selection tool';
|
|
199
195
|
button.onclick = this.onClickStaticToolButton(this.defaultToolsButton);
|
|
@@ -201,21 +197,21 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
201
197
|
}
|
|
202
198
|
|
|
203
199
|
protected createMouseDeleteToolButton(): HTMLElement {
|
|
204
|
-
const deleteToolButton = createIcon(
|
|
200
|
+
const deleteToolButton = createIcon('chrome-close');
|
|
205
201
|
deleteToolButton.title = 'Enable deletion tool';
|
|
206
202
|
deleteToolButton.onclick = this.onClickStaticToolButton(deleteToolButton, MouseDeleteTool.ID);
|
|
207
203
|
return deleteToolButton;
|
|
208
204
|
}
|
|
209
205
|
|
|
210
206
|
protected createMarqueeToolButton(): HTMLElement {
|
|
211
|
-
const marqueeToolButton = createIcon(
|
|
207
|
+
const marqueeToolButton = createIcon('screen-full');
|
|
212
208
|
marqueeToolButton.title = 'Enable marquee tool';
|
|
213
209
|
marqueeToolButton.onclick = this.onClickStaticToolButton(marqueeToolButton, MarqueeMouseTool.ID);
|
|
214
210
|
return marqueeToolButton;
|
|
215
211
|
}
|
|
216
212
|
|
|
217
213
|
protected createValidateButton(): HTMLElement {
|
|
218
|
-
const validateActionButton = createIcon(
|
|
214
|
+
const validateActionButton = createIcon('pass');
|
|
219
215
|
validateActionButton.title = 'Validate model';
|
|
220
216
|
validateActionButton.onclick = _event => {
|
|
221
217
|
const modelIds: string[] = [this.modelRootId];
|
|
@@ -225,15 +221,15 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
225
221
|
}
|
|
226
222
|
|
|
227
223
|
protected createSearchButton(): HTMLElement {
|
|
228
|
-
const searchIcon = createIcon(
|
|
224
|
+
const searchIcon = createIcon(SEARCH_ICON_ID);
|
|
229
225
|
searchIcon.onclick = _ev => {
|
|
230
226
|
const searchField = document.getElementById(this.containerElement.id + '_search_field');
|
|
231
227
|
if (searchField) {
|
|
232
|
-
if (searchField.style.display === '
|
|
233
|
-
searchField.style.display = '
|
|
234
|
-
} else {
|
|
235
|
-
searchField.style.display = 'inline';
|
|
228
|
+
if (searchField.style.display === 'none') {
|
|
229
|
+
searchField.style.display = '';
|
|
236
230
|
searchField.focus();
|
|
231
|
+
} else {
|
|
232
|
+
searchField.style.display = 'none';
|
|
237
233
|
}
|
|
238
234
|
}
|
|
239
235
|
};
|
|
@@ -257,7 +253,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
257
253
|
protected createHeaderTitle(): HTMLElement {
|
|
258
254
|
const header = document.createElement('div');
|
|
259
255
|
header.classList.add('header-icon');
|
|
260
|
-
header.appendChild(createIcon(
|
|
256
|
+
header.appendChild(createIcon(PALETTE_ICON_ID));
|
|
261
257
|
header.insertAdjacentText('beforeend', 'Palette');
|
|
262
258
|
return header;
|
|
263
259
|
}
|
|
@@ -266,7 +262,10 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
266
262
|
const button = document.createElement('div');
|
|
267
263
|
button.tabIndex = index;
|
|
268
264
|
button.classList.add('tool-button');
|
|
269
|
-
|
|
265
|
+
if (item.icon) {
|
|
266
|
+
button.appendChild(createIcon(item.icon));
|
|
267
|
+
}
|
|
268
|
+
button.insertAdjacentText('beforeend', item.label);
|
|
270
269
|
button.onclick = this.onClickCreateToolButton(button, item);
|
|
271
270
|
button.onkeydown = ev => this.clearToolOnEscape(ev);
|
|
272
271
|
return button;
|
|
@@ -383,9 +382,9 @@ export function compare(a: PaletteItem, b: PaletteItem): number {
|
|
|
383
382
|
return a.label.localeCompare(b.label);
|
|
384
383
|
}
|
|
385
384
|
|
|
386
|
-
export function createIcon(
|
|
385
|
+
export function createIcon(codiconId: string): HTMLElement {
|
|
387
386
|
const icon = document.createElement('i');
|
|
388
|
-
icon.classList.add(...
|
|
387
|
+
icon.classList.add(...codiconCSSClasses(codiconId));
|
|
389
388
|
return icon;
|
|
390
389
|
}
|
|
391
390
|
|
|
@@ -396,7 +395,7 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
|
|
|
396
395
|
const header = document.createElement('div');
|
|
397
396
|
header.classList.add('group-header');
|
|
398
397
|
if (item.icon) {
|
|
399
|
-
header.appendChild(createIcon(
|
|
398
|
+
header.appendChild(createIcon(item.icon));
|
|
400
399
|
}
|
|
401
400
|
header.insertAdjacentText('beforeend', item.label);
|
|
402
401
|
header.ondblclick = _ev => {
|
|
@@ -411,6 +410,11 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
|
|
|
411
410
|
}
|
|
412
411
|
|
|
413
412
|
export function changeCSSClass(element: Element, css: string): void {
|
|
414
|
-
element.classList.contains(css) ? element.classList.remove(css) :
|
|
415
|
-
|
|
413
|
+
element.classList.contains(css) ? element.classList.remove(css) : element.classList.add(css);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export function changeCodiconClass(element: Element, codiconId: string): void {
|
|
417
|
+
element.classList.contains(codiconCSSClasses(codiconId)[1])
|
|
418
|
+
? element.classList.remove(codiconCSSClasses(codiconId)[1])
|
|
419
|
+
: element.classList.add(codiconCSSClasses(codiconId)[1]);
|
|
416
420
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-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,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { EditorContextService } from '../../base/editor-context';
|
|
18
|
+
import { IActionDispatcher, KeyTool, TYPES } from 'sprotty';
|
|
19
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
20
20
|
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
21
21
|
import { GLSP_TYPES } from '../../base/types';
|
|
22
22
|
import { IMouseTool } from '../mouse-tool/mouse-tool';
|
|
@@ -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,7 +34,7 @@ import {
|
|
|
26
34
|
isSelected,
|
|
27
35
|
isViewport,
|
|
28
36
|
MouseListener,
|
|
29
|
-
|
|
37
|
+
SChildElement,
|
|
30
38
|
SConnectableElement,
|
|
31
39
|
SetBoundsAction,
|
|
32
40
|
SModelElement,
|
|
@@ -34,15 +42,7 @@ import {
|
|
|
34
42
|
SParentElement,
|
|
35
43
|
TYPES
|
|
36
44
|
} from 'sprotty';
|
|
37
|
-
|
|
38
45
|
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
46
|
import { GLSP_TYPES } from '../../base/types';
|
|
47
47
|
import { isValidMove, isValidSize, WriteablePoint } from '../../utils/layout-utils';
|
|
48
48
|
import {
|
|
@@ -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
|
|
|
@@ -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[] = [];
|
|
@@ -281,7 +302,12 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
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,14 +328,14 @@ 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;
|
|
@@ -318,7 +344,6 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
318
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();
|
|
@@ -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,9 +458,7 @@ 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 {
|
|
@@ -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 { 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';
|
|
@@ -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
|
}
|
|
@@ -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-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 { 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,
|
|
@@ -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-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 { 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,
|
|
@@ -28,18 +28,10 @@ import {
|
|
|
28
28
|
SRoutableElement,
|
|
29
29
|
SRoutingHandle
|
|
30
30
|
} from 'sprotty';
|
|
31
|
-
|
|
32
31
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
33
|
-
import { ChangeRoutingPointsOperation, ReconnectEdgeOperation } from '../../base/operations/operation';
|
|
34
32
|
import { GLSP_TYPES } from '../../base/types';
|
|
35
33
|
import { isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
36
|
-
import {
|
|
37
|
-
isReconnectable,
|
|
38
|
-
isReconnectHandle,
|
|
39
|
-
isSourceRoutingHandle,
|
|
40
|
-
isTargetRoutingHandle,
|
|
41
|
-
SReconnectHandle
|
|
42
|
-
} from '../reconnect/model';
|
|
34
|
+
import { isReconnectable, isReconnectHandle, isSourceRoutingHandle, isTargetRoutingHandle, SReconnectHandle } from '../reconnect/model';
|
|
43
35
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
44
36
|
import { DrawFeedbackEdgeAction, feedbackEdgeId, RemoveFeedbackEdgeAction } from '../tool-feedback/creation-tool-feedback';
|
|
45
37
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
@@ -239,7 +231,8 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
239
231
|
}
|
|
240
232
|
this.reset();
|
|
241
233
|
} else if (this.edge && this.routingHandle) {
|
|
242
|
-
// we need to re-retrieve the edge as it might have changed due to a server
|
|
234
|
+
// 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
|
|
235
|
+
// reroute actions
|
|
243
236
|
const latestEdge = target.index.getById(this.edge.id);
|
|
244
237
|
if (latestEdge && isRoutable(latestEdge)) {
|
|
245
238
|
result.push(new ChangeRoutingPointsOperation([{ elementId: latestEdge.id, newRoutingPoints: latestEdge.routingPoints }]));
|
|
@@ -255,9 +248,10 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
255
248
|
if (!this.newConnectable || currentTarget !== this.newConnectable) {
|
|
256
249
|
this.setNewConnectable(currentTarget);
|
|
257
250
|
if (currentTarget) {
|
|
258
|
-
if (
|
|
259
|
-
(this.reconnectMode === '
|
|
260
|
-
|
|
251
|
+
if (
|
|
252
|
+
(this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, 'source')) ||
|
|
253
|
+
(this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, 'target'))
|
|
254
|
+
) {
|
|
261
255
|
this.tool.dispatchFeedback([cursorFeedbackAction(CursorCSS.EDGE_RECONNECT)]);
|
|
262
256
|
return [];
|
|
263
257
|
}
|
|
@@ -314,11 +308,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
314
308
|
if (this.edge) {
|
|
315
309
|
result.push(new SwitchRoutingModeAction([], [this.edge.id]));
|
|
316
310
|
}
|
|
317
|
-
result.push(...[
|
|
318
|
-
new HideEdgeReconnectHandlesFeedbackAction(),
|
|
319
|
-
cursorFeedbackAction(),
|
|
320
|
-
new RemoveFeedbackEdgeAction()
|
|
321
|
-
]);
|
|
311
|
+
result.push(...[new HideEdgeReconnectHandlesFeedbackAction(), cursorFeedbackAction(), new RemoveFeedbackEdgeAction()]);
|
|
322
312
|
this.tool.deregisterFeedback(result);
|
|
323
313
|
this.tool.deregisterFeedbackListeners();
|
|
324
314
|
}
|