@eclipse-glsp/client 0.10.0-next.ca17587.154 → 1.1.0-RC01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/decoration.css +5 -1
- package/css/glsp-sprotty.css +149 -8
- package/css/tool-palette.css +2 -2
- package/lib/base/action-dispatcher.d.ts +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +10 -9
- package/lib/base/container-modules.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +15 -4
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +31 -19
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +15 -8
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +43 -53
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.d.ts +2 -17
- package/lib/base/source-uri-aware.d.ts.map +1 -1
- package/lib/base/source-uri-aware.js +4 -6
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +146 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +55 -40
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +60 -4
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +96 -9
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +34 -4
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +37 -31
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -5
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +44 -19
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +3 -3
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +12 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +201 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-elements-action.d.ts +198 -0
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
- package/lib/features/layout/layout-elements-action.js +391 -0
- package/lib/features/layout/layout-elements-action.js.map +1 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
- package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- package/lib/features/layout/layouter.d.ts +37 -0
- package/lib/features/layout/layouter.d.ts.map +1 -0
- package/lib/features/layout/layouter.js +131 -0
- package/lib/features/layout/layouter.js.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.js +201 -0
- package/lib/features/layout/tests/freeform-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/hbox-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts +34 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.js +96 -0
- package/lib/features/layout/tests/layouter-test-util.js.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/vbox-layout.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +18 -2
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +26 -13
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -6
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +10 -48
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +4 -2
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +63 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +14 -5
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +55 -64
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/source-model-watcher/di.config.d.ts +4 -0
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.d.ts.map +1 -1
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.js +4 -4
- package/lib/features/source-model-watcher/di.config.js.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.d.ts → source-model-watcher/source-model-changed-action-handler.d.ts} +10 -10
- package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.js → source-model-watcher/source-model-changed-action-handler.js} +28 -28
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +9 -2
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -15
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +0 -15
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +9 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +11 -5
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +25 -5
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +27 -25
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +64 -91
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +17 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +66 -91
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +10 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +26 -22
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +3 -18
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +6 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +8 -7
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +301 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +6 -22
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +1 -1
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +30 -0
- package/lib/views/glsp-projection-view.d.ts.map +1 -0
- package/lib/views/glsp-projection-view.js +148 -0
- package/lib/views/glsp-projection-view.js.map +1 -0
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +7 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +10 -19
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/src/base/actions/sprotty-actions.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/container-modules.ts +6 -5
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +32 -12
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +54 -41
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/source-uri-aware.ts +5 -4
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +74 -44
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +99 -12
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +51 -29
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +48 -28
- package/src/features/layout/di.config.ts +17 -7
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +273 -0
- package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
- package/src/features/layout/layout-elements-action.ts +486 -0
- package/src/features/layout/layouter.ts +137 -0
- package/src/features/layout/tests/freeform-layout.spec.ts +216 -0
- package/src/features/layout/tests/hbox-layout.spec.ts +171 -0
- package/src/features/layout/tests/layouter-test-util.ts +122 -0
- package/src/features/layout/tests/vbox-layout.spec.ts +171 -0
- package/src/features/layout/vbox-layout.ts +41 -24
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -57
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +82 -3
- package/src/features/select/selection-service.spec.ts +12 -9
- package/src/features/select/selection-service.ts +52 -60
- package/src/features/{model-source-watcher → source-model-watcher}/di.config.ts +5 -5
- package/src/features/{model-source-watcher/model-source-changed-action-handler.ts → source-model-watcher/source-model-changed-action-handler.ts} +17 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
- package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +23 -12
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +13 -11
- package/src/features/validation/issue-marker.ts +34 -12
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +62 -90
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +12 -12
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +288 -0
- package/src/utils/layout-utils.ts +9 -29
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/base-view-module.ts +5 -1
- package/src/views/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/glsp-projection-view.tsx +173 -0
- package/src/views/index.ts +2 -0
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/layout/layout-commands.d.ts +0 -153
- package/lib/features/layout/layout-commands.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.js +0 -412
- package/lib/features/layout/layout-commands.js.map +0 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -3
- package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.spec.js.map +0 -1
- package/lib/features/model-source-watcher/di.config.d.ts +0 -4
- package/lib/features/model-source-watcher/di.config.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +0 -1
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/layout/layout-commands.ts +0 -424
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,17 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Bounds, Dimension, Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Bounds,
|
|
19
19
|
BoundsData,
|
|
20
|
-
Dimension,
|
|
21
|
-
EMPTY_BOUNDS,
|
|
22
20
|
isBoundsAware,
|
|
23
21
|
isLayoutableChild,
|
|
24
|
-
isValidDimension,
|
|
25
22
|
LayoutContainer,
|
|
26
|
-
Point,
|
|
27
23
|
SChildElement,
|
|
28
24
|
SModelElement,
|
|
29
25
|
SParentElement,
|
|
@@ -44,15 +40,18 @@ export interface VBoxLayoutOptionsExt extends VBoxLayoutOptions {
|
|
|
44
40
|
*/
|
|
45
41
|
@injectable()
|
|
46
42
|
export class VBoxLayouterExt extends VBoxLayouter {
|
|
47
|
-
static KIND = VBoxLayouter.KIND;
|
|
43
|
+
static override KIND = VBoxLayouter.KIND;
|
|
48
44
|
|
|
49
|
-
layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
|
|
45
|
+
override layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
|
|
50
46
|
const boundsData = layouter.getBoundsData(container);
|
|
51
47
|
const options = this.getLayoutOptions(container);
|
|
52
48
|
const childrenSize = this.getChildrenSize(container, options, layouter);
|
|
53
49
|
|
|
54
50
|
const fixedSize = this.getFixedContainerBounds(container, options, layouter);
|
|
55
51
|
|
|
52
|
+
const currentWidth = (boundsData.bounds?.width || 0) - options.paddingLeft - options.paddingRight;
|
|
53
|
+
const currentHeight = (boundsData.bounds?.height || 0) - options.paddingTop - options.paddingBottom;
|
|
54
|
+
|
|
56
55
|
const maxWidth =
|
|
57
56
|
options.paddingFactor *
|
|
58
57
|
(options.resizeContainer
|
|
@@ -64,8 +63,11 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
64
63
|
? Math.max(fixedSize.height - options.paddingTop - options.paddingBottom, childrenSize.height)
|
|
65
64
|
: Math.max(0, fixedSize.height - options.paddingTop - options.paddingBottom));
|
|
66
65
|
|
|
66
|
+
const width = Math.max(currentWidth, maxWidth);
|
|
67
|
+
const height = Math.max(currentHeight, maxHeight);
|
|
68
|
+
|
|
67
69
|
// Remaining size that can be grabbed by children with the vGrab option
|
|
68
|
-
const grabHeight: number =
|
|
70
|
+
const grabHeight: number = height - childrenSize.height;
|
|
69
71
|
// Number of children that request vGrab
|
|
70
72
|
// FIXME: This approach works fine when only 1 child uses VGrab, but may cause rounding issues
|
|
71
73
|
// when the grabHeight can't be equally shared by all children.
|
|
@@ -74,13 +76,13 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
74
76
|
.filter(opt => opt.vGrab).length;
|
|
75
77
|
|
|
76
78
|
if (maxWidth > 0 && maxHeight > 0) {
|
|
77
|
-
const offset = this.layoutChildren(container, layouter, options,
|
|
79
|
+
const offset = this.layoutChildren(container, layouter, options, width, height, grabHeight, grabbingChildren);
|
|
78
80
|
boundsData.bounds = this.getFinalContainerBounds(container, offset, options, childrenSize.width, childrenSize.height);
|
|
79
81
|
boundsData.boundsChanged = true;
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
protected getChildrenSize(
|
|
85
|
+
protected override getChildrenSize(
|
|
84
86
|
container: SParentElement & LayoutContainer,
|
|
85
87
|
containerOptions: VBoxLayoutOptionsExt,
|
|
86
88
|
layouter: StatefulLayouter
|
|
@@ -91,7 +93,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
91
93
|
container.children.forEach(child => {
|
|
92
94
|
if (isLayoutableChild(child)) {
|
|
93
95
|
const bounds = layouter.getBoundsData(child).bounds;
|
|
94
|
-
if (bounds !== undefined &&
|
|
96
|
+
if (bounds !== undefined && Dimension.isValid(bounds)) {
|
|
95
97
|
maxHeight += bounds.height;
|
|
96
98
|
if (isFirst) {
|
|
97
99
|
isFirst = false;
|
|
@@ -109,7 +111,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
109
111
|
return result;
|
|
110
112
|
}
|
|
111
113
|
|
|
112
|
-
protected layoutChildren(
|
|
114
|
+
protected override layoutChildren(
|
|
113
115
|
container: SParentElement & LayoutContainer,
|
|
114
116
|
layouter: StatefulLayouter,
|
|
115
117
|
containerOptions: VBoxLayoutOptionsExt,
|
|
@@ -128,7 +130,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
128
130
|
const boundsData = layouter.getBoundsData(child);
|
|
129
131
|
const bounds = boundsData.bounds;
|
|
130
132
|
const childOptions = this.getChildLayoutOptions(child, containerOptions);
|
|
131
|
-
if (bounds !== undefined &&
|
|
133
|
+
if (bounds !== undefined && Dimension.isValid(bounds)) {
|
|
132
134
|
currentOffset = this.layoutChild(
|
|
133
135
|
child,
|
|
134
136
|
boundsData,
|
|
@@ -147,7 +149,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
147
149
|
return currentOffset;
|
|
148
150
|
}
|
|
149
151
|
|
|
150
|
-
protected layoutChild(
|
|
152
|
+
protected override layoutChild(
|
|
151
153
|
child: SChildElement,
|
|
152
154
|
boundsData: BoundsData,
|
|
153
155
|
bounds: Bounds,
|
|
@@ -159,7 +161,14 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
159
161
|
grabHeight?: number,
|
|
160
162
|
grabbingChildren?: number
|
|
161
163
|
): Point {
|
|
164
|
+
const hAlign = childOptions.hGrab ? 'left' : childOptions.hAlign;
|
|
165
|
+
const dx = this.getDx(hAlign, bounds, maxWidth);
|
|
162
166
|
let offset = super.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);
|
|
167
|
+
boundsData.bounds = {
|
|
168
|
+
...boundsData.bounds!,
|
|
169
|
+
x: currentOffset.x + dx,
|
|
170
|
+
y: currentOffset.y
|
|
171
|
+
};
|
|
163
172
|
if (childOptions.hGrab) {
|
|
164
173
|
boundsData.bounds = {
|
|
165
174
|
x: boundsData.bounds!.x,
|
|
@@ -183,7 +192,11 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
183
192
|
return offset;
|
|
184
193
|
}
|
|
185
194
|
|
|
186
|
-
protected getFixedContainerBounds(
|
|
195
|
+
protected override getFixedContainerBounds(
|
|
196
|
+
container: SModelElement,
|
|
197
|
+
layoutOptions: VBoxLayoutOptionsExt,
|
|
198
|
+
layouter: StatefulLayouter
|
|
199
|
+
): Bounds {
|
|
187
200
|
const currentContainer = container;
|
|
188
201
|
// eslint-disable-next-line no-constant-condition
|
|
189
202
|
if (isBoundsAware(currentContainer)) {
|
|
@@ -193,14 +206,14 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
193
206
|
const height = elementOptions?.prefHeight ?? 0;
|
|
194
207
|
return { ...bounds, width, height };
|
|
195
208
|
}
|
|
196
|
-
return
|
|
209
|
+
return Bounds.EMPTY;
|
|
197
210
|
}
|
|
198
211
|
|
|
199
|
-
protected getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
|
|
200
|
-
return super.getChildLayoutOptions(child, containerOptions) as VBoxLayoutOptionsExt;
|
|
212
|
+
protected override getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
|
|
213
|
+
return super.getChildLayoutOptions(child, this.filterContainerOptions(containerOptions)) as VBoxLayoutOptionsExt;
|
|
201
214
|
}
|
|
202
215
|
|
|
203
|
-
protected getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
|
|
216
|
+
protected override getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
|
|
204
217
|
return super.getLayoutOptions(element) as VBoxLayoutOptionsExt;
|
|
205
218
|
}
|
|
206
219
|
|
|
@@ -208,7 +221,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
208
221
|
return (element as any).layoutOptions;
|
|
209
222
|
}
|
|
210
223
|
|
|
211
|
-
protected getFinalContainerBounds(
|
|
224
|
+
protected override getFinalContainerBounds(
|
|
212
225
|
container: SParentElement & LayoutContainer,
|
|
213
226
|
lastOffset: Point,
|
|
214
227
|
options: VBoxLayoutOptionsExt,
|
|
@@ -229,7 +242,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
229
242
|
return result;
|
|
230
243
|
}
|
|
231
244
|
|
|
232
|
-
protected getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
|
|
245
|
+
protected override getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
|
|
233
246
|
return {
|
|
234
247
|
resizeContainer: true,
|
|
235
248
|
paddingTop: 5,
|
|
@@ -250,7 +263,11 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
250
263
|
};
|
|
251
264
|
}
|
|
252
265
|
|
|
253
|
-
protected
|
|
254
|
-
|
|
266
|
+
protected filterContainerOptions(containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
|
|
267
|
+
// Reset object-specific layout options to default before merging,
|
|
268
|
+
// to make sure they won't be inherited (grab, prefSize)
|
|
269
|
+
// eslint-disable-next-line no-null/no-null
|
|
270
|
+
const localOptions = { vGrab: false, hGrab: false, prefHeight: null, prefWidth: null };
|
|
271
|
+
return { ...containerOptions, ...localOptions };
|
|
255
272
|
}
|
|
256
273
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -15,13 +15,12 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
17
|
import { MouseTool } from 'sprotty';
|
|
18
|
-
|
|
19
|
-
import { GLSP_TYPES } from '../../base/types';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
20
19
|
import { RankingMouseTool } from './mouse-tool';
|
|
21
20
|
|
|
22
21
|
const glspMouseToolModule = new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
23
22
|
bind(RankingMouseTool).toSelf().inSingletonScope();
|
|
24
|
-
bind(
|
|
23
|
+
bind(TYPES.MouseTool).toService(RankingMouseTool);
|
|
25
24
|
rebind(MouseTool).toService(RankingMouseTool);
|
|
26
25
|
});
|
|
27
26
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,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
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable, multiInject, optional } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
18
|
+
import { MouseListener, MouseTool, SModelElement, SModelRoot } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
20
|
import { getRank } from '../rank/model';
|
|
21
21
|
|
|
22
22
|
export interface IMouseTool {
|
|
@@ -24,48 +24,32 @@ export interface IMouseTool {
|
|
|
24
24
|
deregister(mouseListener: MouseListener): void;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Custom helper type to declare the explicit mouse listener methods
|
|
29
|
+
* of {@link MouseListener} i.e. omitting the `decorate` method.
|
|
30
|
+
*/
|
|
31
|
+
type MouseListenerMethods = keyof Omit<MouseListener, 'decorate'>;
|
|
32
|
+
|
|
27
33
|
@injectable()
|
|
28
34
|
export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
29
35
|
protected rankedMouseListeners: Map<number, MouseListener[]>;
|
|
30
36
|
|
|
31
|
-
constructor(@multiInject(TYPES.MouseListener) @optional() protected mouseListeners: MouseListener[] = []) {
|
|
37
|
+
constructor(@multiInject(TYPES.MouseListener) @optional() protected override mouseListeners: MouseListener[] = []) {
|
|
32
38
|
super(mouseListeners);
|
|
33
39
|
this.rankedMouseListeners = groupBy(mouseListeners, listener => getRank(listener));
|
|
34
40
|
}
|
|
35
41
|
|
|
36
|
-
register(mouseListener: MouseListener): void {
|
|
42
|
+
override register(mouseListener: MouseListener): void {
|
|
37
43
|
super.register(mouseListener);
|
|
38
44
|
this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
|
|
39
45
|
}
|
|
40
46
|
|
|
41
|
-
deregister(mouseListener: MouseListener): void {
|
|
47
|
+
override deregister(mouseListener: MouseListener): void {
|
|
42
48
|
super.deregister(mouseListener);
|
|
43
49
|
this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
|
|
44
50
|
}
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
// we need to overwrite the existing event handlers registered by the original mouse tool
|
|
48
|
-
if (element instanceof SModelRoot) {
|
|
49
|
-
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
|
|
50
|
-
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
|
|
51
|
-
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
|
|
52
|
-
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
|
|
53
|
-
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
|
|
54
|
-
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
|
|
55
|
-
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
|
|
56
|
-
overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
|
|
57
|
-
overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
|
|
58
|
-
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
|
|
59
|
-
}
|
|
60
|
-
vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
|
|
61
|
-
return vnode;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
contextMenu(model: SModelRoot, event: MouseEvent): void {
|
|
65
|
-
event.preventDefault();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
52
|
+
protected override handleEvent<K extends MouseListenerMethods>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
69
53
|
this.focusOnMouseEvent(methodName, model);
|
|
70
54
|
const element = this.getTargetElement(model, event);
|
|
71
55
|
if (!element) {
|
|
@@ -74,7 +58,7 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
74
58
|
this.notifyListenersByRank(element, methodName, model, event);
|
|
75
59
|
}
|
|
76
60
|
|
|
77
|
-
async notifyListenersByRank<K extends
|
|
61
|
+
async notifyListenersByRank<K extends MouseListenerMethods>(
|
|
78
62
|
element: SModelElement,
|
|
79
63
|
methodName: K,
|
|
80
64
|
model: SModelRoot,
|
|
@@ -85,19 +69,17 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
85
69
|
}
|
|
86
70
|
}
|
|
87
71
|
|
|
88
|
-
async dispatchActions<K extends
|
|
72
|
+
async dispatchActions<K extends MouseListenerMethods>(
|
|
89
73
|
mouseListeners: MouseListener[],
|
|
90
74
|
methodName: K,
|
|
91
75
|
element: SModelElement,
|
|
92
76
|
event: MouseEvent
|
|
93
77
|
): Promise<void> {
|
|
94
|
-
const actions = mouseListeners
|
|
95
|
-
.map(listener => listener[methodName].apply(listener, [element, event]))
|
|
96
|
-
.reduce((a, b) => a.concat(b));
|
|
78
|
+
const actions = mouseListeners.map(listener => listener[methodName](element, event as WheelEvent)).reduce((a, b) => a.concat(b));
|
|
97
79
|
if (actions.length > 0) {
|
|
98
80
|
event.preventDefault();
|
|
99
81
|
for (const actionOrPromise of actions) {
|
|
100
|
-
if (
|
|
82
|
+
if (Action.is(actionOrPromise)) {
|
|
101
83
|
await this.actionDispatcher.dispatch(actionOrPromise);
|
|
102
84
|
} else {
|
|
103
85
|
actionOrPromise.then((action: Action) => {
|
|
@@ -124,24 +106,3 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
|
|
|
124
106
|
}, new Map<K, T[]>());
|
|
125
107
|
return new Map<K, T[]>([...unsortedMap.entries()].sort());
|
|
126
108
|
}
|
|
127
|
-
|
|
128
|
-
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
|
|
129
|
-
const val = getOn(vnode);
|
|
130
|
-
// ignore any previous val[event] registrations
|
|
131
|
-
(val as any)[event] = [listener, element];
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function getOn(vnode: VNode): On {
|
|
135
|
-
const data = getData(vnode);
|
|
136
|
-
if (!data.on) {
|
|
137
|
-
data.on = {};
|
|
138
|
-
}
|
|
139
|
-
return data.on;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function getData(vnode: VNode): VNodeData {
|
|
143
|
-
if (!vnode.data) {
|
|
144
|
-
vnode.data = {};
|
|
145
|
-
}
|
|
146
|
-
return vnode.data;
|
|
147
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -17,10 +17,8 @@ import {
|
|
|
17
17
|
Action,
|
|
18
18
|
Args,
|
|
19
19
|
CenterAction,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
isNavigateToTargetAction,
|
|
23
|
-
isSetNavigationTargetsAction,
|
|
20
|
+
hasObjectProp,
|
|
21
|
+
hasStringProp,
|
|
24
22
|
NavigateToExternalTargetAction,
|
|
25
23
|
NavigateToTargetAction,
|
|
26
24
|
NavigationTarget,
|
|
@@ -28,13 +26,15 @@ import {
|
|
|
28
26
|
SelectAction,
|
|
29
27
|
SelectAllAction,
|
|
30
28
|
ServerMessageAction,
|
|
29
|
+
ServerSeverity,
|
|
30
|
+
ServerStatusAction,
|
|
31
|
+
SetNavigationTargetsAction,
|
|
31
32
|
SetResolvedNavigationTargetAction
|
|
32
33
|
} from '@eclipse-glsp/protocol';
|
|
33
34
|
import { inject, injectable } from 'inversify';
|
|
34
|
-
import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger
|
|
35
|
-
|
|
35
|
+
import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger } from 'sprotty';
|
|
36
36
|
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
37
|
-
import {
|
|
37
|
+
import { TYPES } from '../../base/types';
|
|
38
38
|
import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -48,38 +48,66 @@ import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
|
48
48
|
*
|
|
49
49
|
* This action is typically triggered by a user action.
|
|
50
50
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
|
|
52
|
+
export interface NavigateAction extends Action {
|
|
53
|
+
kind: typeof NavigateAction.KIND;
|
|
54
|
+
/**
|
|
55
|
+
* Navigation target type, such as `documentation`, `implementation`, etc.
|
|
56
|
+
*/
|
|
57
|
+
targetTypeId: string;
|
|
58
|
+
/**
|
|
59
|
+
* Additional arguments for customization.
|
|
60
|
+
*/
|
|
61
|
+
args?: Args;
|
|
55
62
|
}
|
|
56
63
|
|
|
57
|
-
export
|
|
58
|
-
|
|
64
|
+
export namespace NavigateAction {
|
|
65
|
+
export const KIND = 'navigate';
|
|
66
|
+
|
|
67
|
+
export function is(object: any): object is NavigateAction {
|
|
68
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'targetTypeId');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function create(targetTypeId: string, options: { args?: Args } = {}): NavigateAction {
|
|
72
|
+
return {
|
|
73
|
+
kind: KIND,
|
|
74
|
+
targetTypeId,
|
|
75
|
+
...options
|
|
76
|
+
};
|
|
77
|
+
}
|
|
59
78
|
}
|
|
60
79
|
|
|
61
|
-
/**
|
|
62
|
-
*
|
|
80
|
+
/**
|
|
81
|
+
* Action to trigger the processing of additional navigation arguments.
|
|
63
82
|
* The resolution of a `NavigationTarget` may entail additional arguments. In this case, this action is
|
|
64
83
|
* triggered allowing the client to react to those arguments. The default `NavigationActionHandler` will
|
|
65
84
|
* only process the arguments' keys `info`, `warning`, and `error` to present them to the user.
|
|
66
85
|
* Customizations, however, may add domain-specific arguments and register custom handler to also process
|
|
67
86
|
* other arguments and trigger some additional behavior (e.g. update other views, etc.).
|
|
68
87
|
*/
|
|
69
|
-
export class ProcessNavigationArgumentsAction implements Action {
|
|
70
|
-
static readonly KIND = 'processNavigationArguments';
|
|
71
|
-
readonly kind = ProcessNavigationArgumentsAction.KIND;
|
|
72
|
-
constructor(readonly args: Args) {}
|
|
73
|
-
}
|
|
74
88
|
|
|
75
|
-
export
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
export interface ProcessNavigationArgumentsAction extends Action {
|
|
90
|
+
kind: typeof ProcessNavigationArgumentsAction.KIND;
|
|
91
|
+
/**
|
|
92
|
+
* The navigation arguments.
|
|
93
|
+
*/
|
|
94
|
+
args: Args;
|
|
81
95
|
}
|
|
82
96
|
|
|
97
|
+
export namespace ProcessNavigationArgumentsAction {
|
|
98
|
+
export const KIND = 'processNavigationArguments';
|
|
99
|
+
|
|
100
|
+
export function is(object: any): object is ProcessNavigationArgumentsAction {
|
|
101
|
+
return Action.hasKind(object, KIND) && hasObjectProp(object, 'args');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function create(args: Args): ProcessNavigationArgumentsAction {
|
|
105
|
+
return {
|
|
106
|
+
kind: KIND,
|
|
107
|
+
args
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
83
111
|
/**
|
|
84
112
|
* Default handler for all actions that are related to the navigation.
|
|
85
113
|
*
|
|
@@ -109,17 +137,17 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
109
137
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
110
138
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
111
139
|
@inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
|
|
112
|
-
@inject(
|
|
140
|
+
@inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
113
141
|
@inject(NavigationTargetResolver) protected resolver: NavigationTargetResolver;
|
|
114
142
|
|
|
115
143
|
handle(action: Action): ICommand | Action | void {
|
|
116
|
-
if (
|
|
144
|
+
if (NavigateAction.is(action)) {
|
|
117
145
|
this.handleNavigateAction(action);
|
|
118
|
-
} else if (
|
|
146
|
+
} else if (NavigateToTargetAction.is(action)) {
|
|
119
147
|
this.handleNavigateToTarget(action);
|
|
120
|
-
} else if (
|
|
148
|
+
} else if (ProcessNavigationArgumentsAction.is(action)) {
|
|
121
149
|
this.processNavigationArguments(action.args);
|
|
122
|
-
} else if (
|
|
150
|
+
} else if (NavigateToExternalTargetAction.is(action)) {
|
|
123
151
|
this.handleNavigateToExternalTarget(action);
|
|
124
152
|
}
|
|
125
153
|
}
|
|
@@ -127,9 +155,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
127
155
|
protected async handleNavigateAction(action: NavigateAction): Promise<void> {
|
|
128
156
|
try {
|
|
129
157
|
const editorContextService = await this.editorContextService();
|
|
130
|
-
const
|
|
131
|
-
const response = await this.dispatcher.request(
|
|
132
|
-
|
|
158
|
+
const editorContext = editorContextService.get(action.args);
|
|
159
|
+
const response = await this.dispatcher.request(
|
|
160
|
+
RequestNavigationTargetsAction.create({ targetTypeId: action.targetTypeId, editorContext })
|
|
161
|
+
);
|
|
162
|
+
if (SetNavigationTargetsAction.is(response) && response.targets && response.targets.length === 1) {
|
|
133
163
|
if (response.targets.length > 1) {
|
|
134
164
|
this.logger.warn(
|
|
135
165
|
this,
|
|
@@ -137,7 +167,7 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
137
167
|
response.targets
|
|
138
168
|
);
|
|
139
169
|
}
|
|
140
|
-
return this.dispatcher.dispatch(
|
|
170
|
+
return this.dispatcher.dispatch(NavigateToTargetAction.create(response.targets[0]));
|
|
141
171
|
}
|
|
142
172
|
this.warnAboutFailedNavigation('No valid navigation target found');
|
|
143
173
|
} catch (reason) {
|
|
@@ -184,7 +214,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
184
214
|
if (!this.containsElementIds(elementIds)) {
|
|
185
215
|
return;
|
|
186
216
|
}
|
|
187
|
-
this.dispatcher.dispatchAll([
|
|
217
|
+
this.dispatcher.dispatchAll([
|
|
218
|
+
SelectAllAction.create(false),
|
|
219
|
+
SelectAction.create({ selectedElementsIDs: elementIds }),
|
|
220
|
+
CenterAction.create(elementIds)
|
|
221
|
+
]);
|
|
188
222
|
}
|
|
189
223
|
|
|
190
224
|
protected handleResolutionArguments(target: SetResolvedNavigationTargetAction): void {
|
|
@@ -192,11 +226,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
192
226
|
if (!this.containsArguments(args)) {
|
|
193
227
|
return;
|
|
194
228
|
}
|
|
195
|
-
this.dispatcher.dispatch(
|
|
229
|
+
this.dispatcher.dispatch(ProcessNavigationArgumentsAction.create(args));
|
|
196
230
|
}
|
|
197
231
|
|
|
198
232
|
protected navigateToExternal(target: NavigationTarget): Promise<void> {
|
|
199
|
-
return this.dispatcher.dispatch(
|
|
233
|
+
return this.dispatcher.dispatch(NavigateToExternalTargetAction.create(target));
|
|
200
234
|
}
|
|
201
235
|
|
|
202
236
|
protected processNavigationArguments(args: Args): void {
|
|
@@ -226,11 +260,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
226
260
|
this.notify('WARNING', message);
|
|
227
261
|
}
|
|
228
262
|
|
|
229
|
-
private notify(severity:
|
|
263
|
+
private notify(severity: ServerSeverity, message: string): void {
|
|
230
264
|
const timeout = this.notificationTimeout;
|
|
231
265
|
this.dispatcher.dispatchAll([
|
|
232
|
-
|
|
233
|
-
|
|
266
|
+
ServerStatusAction.create(message, { severity, timeout }),
|
|
267
|
+
ServerMessageAction.create(message, { severity, timeout })
|
|
234
268
|
]);
|
|
235
269
|
}
|
|
236
270
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -22,7 +22,7 @@ import 'reflect-metadata';
|
|
|
22
22
|
describe('NavigationTarget', () => {
|
|
23
23
|
it('should be able to set and get element IDs', () => {
|
|
24
24
|
const navigationTarget: NavigationTarget = { uri: 'uri' };
|
|
25
|
-
NavigationTarget.setElementIds(navigationTarget,
|
|
25
|
+
NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
|
|
26
26
|
expect(NavigationTarget.getElementIds(navigationTarget)).to.be.eql(['id1', 'id2']);
|
|
27
27
|
});
|
|
28
28
|
|
|
@@ -46,7 +46,7 @@ describe('NavigationTarget', () => {
|
|
|
46
46
|
|
|
47
47
|
navigationTarget = { uri: 'uri' };
|
|
48
48
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.false;
|
|
49
|
-
NavigationTarget.setElementIds(navigationTarget,
|
|
49
|
+
NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
|
|
50
50
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.true;
|
|
51
51
|
|
|
52
52
|
navigationTarget = { uri: 'uri' };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,16 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
isSetResolvedNavigationTargets,
|
|
18
|
-
NavigationTarget,
|
|
19
|
-
ResolveNavigationTargetAction,
|
|
20
|
-
SetResolvedNavigationTargetAction
|
|
21
|
-
} from '@eclipse-glsp/protocol';
|
|
16
|
+
import { NavigationTarget, ResolveNavigationTargetAction, ResponseAction, SetResolvedNavigationTargetAction } from '@eclipse-glsp/protocol';
|
|
22
17
|
import { inject, injectable } from 'inversify';
|
|
23
|
-
import { IActionDispatcher, ILogger
|
|
18
|
+
import { IActionDispatcher, ILogger } from 'sprotty';
|
|
24
19
|
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
25
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
26
21
|
|
|
27
22
|
/**
|
|
28
23
|
* Resolves `NavigationTargets` to element ids.
|
|
@@ -32,7 +27,7 @@ import { GLSP_TYPES } from '../../base/types';
|
|
|
32
27
|
*/
|
|
33
28
|
@injectable()
|
|
34
29
|
export class NavigationTargetResolver {
|
|
35
|
-
@inject(
|
|
30
|
+
@inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
36
31
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
37
32
|
@inject(TYPES.ILogger) protected readonly logger: ILogger;
|
|
38
33
|
|
|
@@ -53,16 +48,16 @@ export class NavigationTargetResolver {
|
|
|
53
48
|
return undefined;
|
|
54
49
|
}
|
|
55
50
|
if (NavigationTarget.getElementIds(target).length > 0) {
|
|
56
|
-
return
|
|
51
|
+
return SetResolvedNavigationTargetAction.create(NavigationTarget.getElementIds(target));
|
|
57
52
|
}
|
|
58
53
|
const response = await this.requestResolution(target);
|
|
59
|
-
if (
|
|
54
|
+
if (SetResolvedNavigationTargetAction.is(response)) {
|
|
60
55
|
return response;
|
|
61
56
|
}
|
|
62
57
|
return undefined;
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
protected requestResolution(target: NavigationTarget): Promise<ResponseAction> {
|
|
66
|
-
return this.dispatcher.request(
|
|
61
|
+
return this.dispatcher.request(ResolveNavigationTargetAction.create(target));
|
|
67
62
|
}
|
|
68
63
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -69,7 +69,7 @@ export function createReconnectHandle(edge: SRoutableElement, kind: RoutingHandl
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export class SReconnectHandle extends SRoutingHandle {
|
|
72
|
-
hasFeature(feature: symbol): boolean {
|
|
72
|
+
override hasFeature(feature: symbol): boolean {
|
|
73
73
|
return feature !== selectFeature && super.hasFeature(feature);
|
|
74
74
|
}
|
|
75
75
|
}
|