@eclipse-glsp/client 0.9.0-next.c5944e10
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 +277 -0
- package/README.md +12 -0
- package/css/command-palette.css +58 -0
- package/css/decoration.css +37 -0
- package/css/glsp-sprotty.css +106 -0
- package/css/tool-palette.css +138 -0
- package/lib/base/action-dispatcher.d.ts +25 -0
- package/lib/base/action-dispatcher.d.ts.map +1 -0
- package/lib/base/action-dispatcher.js +110 -0
- package/lib/base/action-dispatcher.js.map +1 -0
- package/lib/base/actions/context-actions.d.ts +36 -0
- package/lib/base/actions/context-actions.d.ts.map +1 -0
- package/lib/base/actions/context-actions.js +45 -0
- package/lib/base/actions/context-actions.js.map +1 -0
- package/lib/base/actions/edit-mode-action.d.ts +13 -0
- package/lib/base/actions/edit-mode-action.d.ts.map +1 -0
- package/lib/base/actions/edit-mode-action.js +52 -0
- package/lib/base/actions/edit-mode-action.js.map +1 -0
- package/lib/base/actions/edit-validation-actions.d.ts +78 -0
- package/lib/base/actions/edit-validation-actions.d.ts.map +1 -0
- package/lib/base/actions/edit-validation-actions.js +77 -0
- package/lib/base/actions/edit-validation-actions.js.map +1 -0
- package/lib/base/actions/focus-change-action.d.ts +24 -0
- package/lib/base/actions/focus-change-action.d.ts.map +1 -0
- package/lib/base/actions/focus-change-action.js +16 -0
- package/lib/base/actions/focus-change-action.js.map +1 -0
- package/lib/base/args.d.ts +24 -0
- package/lib/base/args.d.ts.map +1 -0
- package/lib/base/args.js +8 -0
- package/lib/base/args.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +21 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.js +8 -0
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts +88 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.js +233 -0
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -0
- package/lib/base/auto-complete/validation-decorator.d.ts +47 -0
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -0
- package/lib/base/auto-complete/validation-decorator.js +113 -0
- package/lib/base/auto-complete/validation-decorator.js.map +1 -0
- package/lib/base/command-stack.d.ts +7 -0
- package/lib/base/command-stack.d.ts.map +1 -0
- package/lib/base/command-stack.js +49 -0
- package/lib/base/command-stack.js.map +1 -0
- package/lib/base/di.config.d.ts +28 -0
- package/lib/base/di.config.d.ts.map +1 -0
- package/lib/base/di.config.js +81 -0
- package/lib/base/di.config.js.map +1 -0
- package/lib/base/drag-aware-mouse-listener.d.ts +36 -0
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -0
- package/lib/base/drag-aware-mouse-listener.js +66 -0
- package/lib/base/drag-aware-mouse-listener.js.map +1 -0
- package/lib/base/editor-context.d.ts +46 -0
- package/lib/base/editor-context.d.ts.map +1 -0
- package/lib/base/editor-context.js +110 -0
- package/lib/base/editor-context.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +9 -0
- package/lib/base/focus-tracker.d.ts.map +1 -0
- package/lib/base/focus-tracker.js +65 -0
- package/lib/base/focus-tracker.js.map +1 -0
- package/lib/base/model/model-registry.d.ts +5 -0
- package/lib/base/model/model-registry.d.ts.map +1 -0
- package/lib/base/model/model-registry.js +43 -0
- package/lib/base/model/model-registry.js.map +1 -0
- package/lib/base/model/update-model-command.d.ts +26 -0
- package/lib/base/model/update-model-command.d.ts.map +1 -0
- package/lib/base/model/update-model-command.js +132 -0
- package/lib/base/model/update-model-command.js.map +1 -0
- package/lib/base/model-initialization-constraint.d.ts +39 -0
- package/lib/base/model-initialization-constraint.d.ts.map +1 -0
- package/lib/base/model-initialization-constraint.js +106 -0
- package/lib/base/model-initialization-constraint.js.map +1 -0
- package/lib/base/operations/operation.d.ts +135 -0
- package/lib/base/operations/operation.d.ts.map +1 -0
- package/lib/base/operations/operation.js +182 -0
- package/lib/base/operations/operation.js.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts +17 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.js +55 -0
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -0
- package/lib/base/source-uri-aware.d.ts +20 -0
- package/lib/base/source-uri-aware.d.ts.map +1 -0
- package/lib/base/source-uri-aware.js +26 -0
- package/lib/base/source-uri-aware.js.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +22 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.js +110 -0
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -0
- package/lib/base/types.d.ts +38 -0
- package/lib/base/types.d.ts.map +1 -0
- package/lib/base/types.js +41 -0
- package/lib/base/types.js.map +1 -0
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +38 -0
- package/lib/features/change-bounds/model.d.ts.map +1 -0
- package/lib/features/change-bounds/model.js +61 -0
- package/lib/features/change-bounds/model.js.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts +14 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.js +90 -0
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -0
- package/lib/features/change-bounds/snap.d.ts +7 -0
- package/lib/features/change-bounds/snap.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.js +44 -0
- package/lib/features/change-bounds/snap.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.d.ts +12 -0
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +63 -0
- package/lib/features/command-palette/command-palette-tool.js.map +1 -0
- package/lib/features/command-palette/di.config.d.ts +20 -0
- package/lib/features/command-palette/di.config.d.ts.map +1 -0
- package/lib/features/command-palette/di.config.js +33 -0
- package/lib/features/command-palette/di.config.js.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts +15 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.js +66 -0
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts +8 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.js +55 -0
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -0
- package/lib/features/context-menu/di.config.d.ts +19 -0
- package/lib/features/context-menu/di.config.d.ts.map +1 -0
- package/lib/features/context-menu/di.config.js +36 -0
- package/lib/features/context-menu/di.config.js.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +9 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +65 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts +13 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.js +63 -0
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.js +58 -0
- package/lib/features/copy-paste/copy-paste-actions.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +32 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js +151 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.js +149 -0
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -0
- package/lib/features/copy-paste/di.config.d.ts +24 -0
- package/lib/features/copy-paste/di.config.d.ts.map +1 -0
- package/lib/features/copy-paste/di.config.js +40 -0
- package/lib/features/copy-paste/di.config.js.map +1 -0
- package/lib/features/decoration/decoration-placer.d.ts +6 -0
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -0
- package/lib/features/decoration/decoration-placer.js +47 -0
- package/lib/features/decoration/decoration-placer.js.map +1 -0
- package/lib/features/decoration/di.config.d.ts +20 -0
- package/lib/features/decoration/di.config.d.ts.map +1 -0
- package/lib/features/decoration/di.config.js +27 -0
- package/lib/features/decoration/di.config.js.map +1 -0
- package/lib/features/edit-label/di.config.d.ts +19 -0
- package/lib/features/edit-label/di.config.d.ts.map +1 -0
- package/lib/features/edit-label/di.config.js +30 -0
- package/lib/features/edit-label/di.config.js.map +1 -0
- package/lib/features/edit-label/edit-label-tool.d.ts +13 -0
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-tool.js +55 -0
- package/lib/features/edit-label/edit-label-tool.js.map +1 -0
- package/lib/features/edit-label/edit-label-validator.d.ts +20 -0
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-validator.js +111 -0
- package/lib/features/edit-label/edit-label-validator.js.map +1 -0
- package/lib/features/hints/di.config.d.ts +19 -0
- package/lib/features/hints/di.config.d.ts.map +1 -0
- package/lib/features/hints/di.config.js +30 -0
- package/lib/features/hints/di.config.js.map +1 -0
- package/lib/features/hints/model.d.ts +26 -0
- package/lib/features/hints/model.d.ts.map +1 -0
- package/lib/features/hints/model.js +14 -0
- package/lib/features/hints/model.js.map +1 -0
- package/lib/features/hints/request-type-hints-action.d.ts +32 -0
- package/lib/features/hints/request-type-hints-action.d.ts.map +1 -0
- package/lib/features/hints/request-type-hints-action.js +26 -0
- package/lib/features/hints/request-type-hints-action.js.map +1 -0
- package/lib/features/hints/type-hints.d.ts +75 -0
- package/lib/features/hints/type-hints.d.ts.map +1 -0
- package/lib/features/hints/type-hints.js +199 -0
- package/lib/features/hints/type-hints.js.map +1 -0
- package/lib/features/hover/di.config.d.ts +19 -0
- package/lib/features/hover/di.config.d.ts.map +1 -0
- package/lib/features/hover/di.config.js +46 -0
- package/lib/features/hover/di.config.js.map +1 -0
- package/lib/features/hover/hover.d.ts +11 -0
- package/lib/features/hover/hover.d.ts.map +1 -0
- package/lib/features/hover/hover.js +88 -0
- package/lib/features/hover/hover.js.map +1 -0
- package/lib/features/layout/di.config.d.ts +19 -0
- package/lib/features/layout/di.config.d.ts.map +1 -0
- package/lib/features/layout/di.config.js +26 -0
- package/lib/features/layout/di.config.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +137 -0
- package/lib/features/layout/layout-commands.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.js +411 -0
- package/lib/features/layout/layout-commands.js.map +1 -0
- package/lib/features/layout/layout-commands.spec.d.ts +18 -0
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.spec.js +297 -0
- package/lib/features/layout/layout-commands.spec.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +19 -0
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -0
- package/lib/features/model-source-watcher/di.config.js +26 -0
- package/lib/features/model-source-watcher/di.config.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +23 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +83 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +24 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js +16 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +1 -0
- package/lib/features/mouse-tool/di.config.d.ts +19 -0
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -0
- package/lib/features/mouse-tool/di.config.js +28 -0
- package/lib/features/mouse-tool/di.config.js.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts +19 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.js +140 -0
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -0
- package/lib/features/navigation/di.config.d.ts +18 -0
- package/lib/features/navigation/di.config.d.ts.map +1 -0
- package/lib/features/navigation/di.config.js +31 -0
- package/lib/features/navigation/di.config.js.map +1 -0
- package/lib/features/navigation/navigation-action-handler.d.ts +117 -0
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -0
- package/lib/features/navigation/navigation-action-handler.js +293 -0
- package/lib/features/navigation/navigation-action-handler.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts +55 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.js +157 -0
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +18 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js +54 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
- package/lib/features/rank/model.d.ts +22 -0
- package/lib/features/rank/model.d.ts.map +1 -0
- package/lib/features/rank/model.js +28 -0
- package/lib/features/rank/model.js.map +1 -0
- package/lib/features/reconnect/model.d.ts +30 -0
- package/lib/features/reconnect/model.d.ts.map +1 -0
- package/lib/features/reconnect/model.js +66 -0
- package/lib/features/reconnect/model.js.map +1 -0
- package/lib/features/save/di.config.d.ts +23 -0
- package/lib/features/save/di.config.d.ts.map +1 -0
- package/lib/features/save/di.config.js +29 -0
- package/lib/features/save/di.config.js.map +1 -0
- package/lib/features/save/model.d.ts +22 -0
- package/lib/features/save/model.d.ts.map +1 -0
- package/lib/features/save/model.js +9 -0
- package/lib/features/save/model.js.map +1 -0
- package/lib/features/save/save.d.ts +27 -0
- package/lib/features/save/save.d.ts.map +1 -0
- package/lib/features/save/save.js +42 -0
- package/lib/features/save/save.js.map +1 -0
- package/lib/features/select/di.config.d.ts +19 -0
- package/lib/features/select/di.config.d.ts.map +1 -0
- package/lib/features/select/di.config.js +35 -0
- package/lib/features/select/di.config.js.map +1 -0
- package/lib/features/select/select-feedback-action.d.ts +34 -0
- package/lib/features/select/select-feedback-action.d.ts.map +1 -0
- package/lib/features/select/select-feedback-action.js +97 -0
- package/lib/features/select/select-feedback-action.js.map +1 -0
- package/lib/features/select/select-mouse-listener.d.ts +25 -0
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -0
- package/lib/features/select/select-mouse-listener.js +32 -0
- package/lib/features/select/select-mouse-listener.js.map +1 -0
- package/lib/features/select/selection-service.d.ts +52 -0
- package/lib/features/select/selection-service.d.ts.map +1 -0
- package/lib/features/select/selection-service.js +226 -0
- package/lib/features/select/selection-service.js.map +1 -0
- package/lib/features/select/selection-service.spec.d.ts +2 -0
- package/lib/features/select/selection-service.spec.d.ts.map +1 -0
- package/lib/features/select/selection-service.spec.js +360 -0
- package/lib/features/select/selection-service.spec.js.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +47 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +236 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +43 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js +181 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/css-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/css-feedback.js +111 -0
- package/lib/features/tool-feedback/css-feedback.js.map +1 -0
- package/lib/features/tool-feedback/di.config.d.ts +19 -0
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -0
- package/lib/features/tool-feedback/di.config.js +53 -0
- package/lib/features/tool-feedback/di.config.js.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +82 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +315 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +50 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +75 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js +111 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/model.d.ts +23 -0
- package/lib/features/tool-feedback/model.d.ts.map +1 -0
- package/lib/features/tool-feedback/model.js +34 -0
- package/lib/features/tool-feedback/model.js.map +1 -0
- package/lib/features/tool-feedback/view.d.ts +16 -0
- package/lib/features/tool-feedback/view.d.ts.map +1 -0
- package/lib/features/tool-feedback/view.js +81 -0
- package/lib/features/tool-feedback/view.js.map +1 -0
- package/lib/features/tool-palette/di.config.d.ts +20 -0
- package/lib/features/tool-palette/di.config.d.ts.map +1 -0
- package/lib/features/tool-palette/di.config.js +29 -0
- package/lib/features/tool-palette/di.config.js.map +1 -0
- package/lib/features/tool-palette/palette-item.d.ts +27 -0
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -0
- package/lib/features/tool-palette/palette-item.js +37 -0
- package/lib/features/tool-palette/palette-item.js.map +1 -0
- package/lib/features/tool-palette/tool-palette.d.ts +56 -0
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -0
- package/lib/features/tool-palette/tool-palette.js +401 -0
- package/lib/features/tool-palette/tool-palette.js.map +1 -0
- package/lib/features/tools/base-glsp-tool.d.ts +20 -0
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -0
- package/lib/features/tools/base-glsp-tool.js +70 -0
- package/lib/features/tools/base-glsp-tool.js.map +1 -0
- package/lib/features/tools/change-bounds-tool.d.ts +71 -0
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -0
- package/lib/features/tools/change-bounds-tool.js +371 -0
- package/lib/features/tools/change-bounds-tool.js.map +1 -0
- package/lib/features/tools/delete-tool.d.ts +36 -0
- package/lib/features/tools/delete-tool.d.ts.map +1 -0
- package/lib/features/tools/delete-tool.js +129 -0
- package/lib/features/tools/delete-tool.js.map +1 -0
- package/lib/features/tools/di.config.d.ts +23 -0
- package/lib/features/tools/di.config.d.ts.map +1 -0
- package/lib/features/tools/di.config.js +55 -0
- package/lib/features/tools/di.config.js.map +1 -0
- package/lib/features/tools/edge-creation-tool.d.ts +37 -0
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-creation-tool.js +158 -0
- package/lib/features/tools/edge-creation-tool.js.map +1 -0
- package/lib/features/tools/edge-edit-tool.d.ts +50 -0
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-edit-tool.js +281 -0
- package/lib/features/tools/edge-edit-tool.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +37 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.js +226 -0
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
- package/lib/features/tools/marquee-tool.d.ts +14 -0
- package/lib/features/tools/marquee-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-tool.js +69 -0
- package/lib/features/tools/marquee-tool.js.map +1 -0
- package/lib/features/tools/model.d.ts +22 -0
- package/lib/features/tools/model.d.ts.map +1 -0
- package/lib/features/tools/model.js +24 -0
- package/lib/features/tools/model.js.map +1 -0
- package/lib/features/tools/node-creation-tool.d.ts +26 -0
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/node-creation-tool.js +117 -0
- package/lib/features/tools/node-creation-tool.js.map +1 -0
- package/lib/features/tools/view.d.ts +7 -0
- package/lib/features/tools/view.d.ts.map +1 -0
- package/lib/features/tools/view.js +40 -0
- package/lib/features/tools/view.js.map +1 -0
- package/lib/features/undo-redo/model.d.ts +27 -0
- package/lib/features/undo-redo/model.d.ts.map +1 -0
- package/lib/features/undo-redo/model.js +18 -0
- package/lib/features/undo-redo/model.js.map +1 -0
- package/lib/features/validation/di.config.d.ts +25 -0
- package/lib/features/validation/di.config.d.ts.map +1 -0
- package/lib/features/validation/di.config.js +44 -0
- package/lib/features/validation/di.config.js.map +1 -0
- package/lib/features/validation/issue-marker.d.ts +43 -0
- package/lib/features/validation/issue-marker.d.ts.map +1 -0
- package/lib/features/validation/issue-marker.js +89 -0
- package/lib/features/validation/issue-marker.js.map +1 -0
- package/lib/features/validation/marker-navigator.d.ts +55 -0
- package/lib/features/validation/marker-navigator.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.js +247 -0
- package/lib/features/validation/marker-navigator.js.map +1 -0
- package/lib/features/validation/marker-navigator.spec.d.ts +18 -0
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.spec.js +177 -0
- package/lib/features/validation/marker-navigator.spec.js.map +1 -0
- package/lib/features/validation/validate.d.ts +111 -0
- package/lib/features/validation/validate.d.ts.map +1 -0
- package/lib/features/validation/validate.js +290 -0
- package/lib/features/validation/validate.js.map +1 -0
- package/lib/features/viewport/di.config.d.ts +19 -0
- package/lib/features/viewport/di.config.d.ts.map +1 -0
- package/lib/features/viewport/di.config.js +34 -0
- package/lib/features/viewport/di.config.js.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +7 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +54 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
- package/lib/index.d.ts +110 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +144 -0
- package/lib/index.js.map +1 -0
- package/lib/lib/model.d.ts +24 -0
- package/lib/lib/model.d.ts.map +1 -0
- package/lib/lib/model.js +33 -0
- package/lib/lib/model.js.map +1 -0
- package/lib/model-source/glsp-diagram-server.d.ts +38 -0
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -0
- package/lib/model-source/glsp-diagram-server.js +88 -0
- package/lib/model-source/glsp-diagram-server.js.map +1 -0
- package/lib/model-source/glsp-server-status.d.ts +30 -0
- package/lib/model-source/glsp-server-status.d.ts.map +1 -0
- package/lib/model-source/glsp-server-status.js +44 -0
- package/lib/model-source/glsp-server-status.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +112 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/array-utils.d.ts +28 -0
- package/lib/utils/array-utils.d.ts.map +1 -0
- package/lib/utils/array-utils.js +56 -0
- package/lib/utils/array-utils.js.map +1 -0
- package/lib/utils/html-utils.d.ts +17 -0
- package/lib/utils/html-utils.d.ts.map +1 -0
- package/lib/utils/html-utils.js +30 -0
- package/lib/utils/html-utils.js.map +1 -0
- package/lib/utils/layout-utils.d.ts +41 -0
- package/lib/utils/layout-utils.d.ts.map +1 -0
- package/lib/utils/layout-utils.js +61 -0
- package/lib/utils/layout-utils.js.map +1 -0
- package/lib/utils/marker.d.ts +48 -0
- package/lib/utils/marker.d.ts.map +1 -0
- package/lib/utils/marker.js +48 -0
- package/lib/utils/marker.js.map +1 -0
- package/lib/utils/smodel-util.d.ts +41 -0
- package/lib/utils/smodel-util.d.ts.map +1 -0
- package/lib/utils/smodel-util.js +134 -0
- package/lib/utils/smodel-util.js.map +1 -0
- package/lib/utils/viewpoint-util.d.ts +52 -0
- package/lib/utils/viewpoint-util.d.ts.map +1 -0
- package/lib/utils/viewpoint-util.js +89 -0
- package/lib/utils/viewpoint-util.js.map +1 -0
- package/lib/views/base-view-module.d.ts +24 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- package/lib/views/default-types.d.ts +37 -0
- package/lib/views/default-types.d.ts.map +1 -0
- package/lib/views/default-types.js +47 -0
- package/lib/views/default-types.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +11 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +70 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/views/index.d.ts +22 -0
- package/lib/views/index.d.ts.map +1 -0
- package/lib/views/index.js +34 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +8 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +59 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +37 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +68 -0
- package/src/base/action-dispatcher.ts +103 -0
- package/src/base/actions/context-actions.ts +43 -0
- package/src/base/actions/edit-mode-action.ts +33 -0
- package/src/base/actions/edit-validation-actions.ts +103 -0
- package/src/base/actions/focus-change-action.ts +26 -0
- package/src/base/args.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +24 -0
- package/src/base/auto-complete/auto-complete-widget.ts +314 -0
- package/src/base/auto-complete/validation-decorator.ts +126 -0
- package/src/base/command-stack.ts +36 -0
- package/src/base/di.config.ts +96 -0
- package/src/base/drag-aware-mouse-listener.ts +69 -0
- package/src/base/editor-context.ts +124 -0
- package/src/base/focus-tracker.ts +50 -0
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +118 -0
- package/src/base/model-initialization-constraint.ts +94 -0
- package/src/base/operations/operation.ts +178 -0
- package/src/base/selection-clearing-mouse-listener.ts +43 -0
- package/src/base/source-uri-aware.ts +22 -0
- package/src/base/tool-manager/glsp-tool-manager.ts +97 -0
- package/src/base/types.ts +37 -0
- package/src/base/view/view-registry.ts +31 -0
- package/src/features/change-bounds/model.ts +74 -0
- package/src/features/change-bounds/movement-restrictor.ts +89 -0
- package/src/features/change-bounds/snap.ts +35 -0
- package/src/features/command-palette/command-palette-tool.ts +46 -0
- package/src/features/command-palette/di.config.ts +34 -0
- package/src/features/command-palette/server-command-palette-provider.ts +48 -0
- package/src/features/context-menu/delete-element-context-menu.ts +42 -0
- package/src/features/context-menu/di.config.ts +35 -0
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +50 -0
- package/src/features/context-menu/server-context-menu-provider.ts +46 -0
- package/src/features/copy-paste/copy-paste-actions.ts +60 -0
- package/src/features/copy-paste/copy-paste-context-menu.ts +138 -0
- package/src/features/copy-paste/copy-paste-handler.ts +152 -0
- package/src/features/copy-paste/di.config.ts +45 -0
- package/src/features/decoration/decoration-placer.ts +46 -0
- package/src/features/decoration/di.config.ts +28 -0
- package/src/features/edit-label/di.config.ts +30 -0
- package/src/features/edit-label/edit-label-tool.ts +51 -0
- package/src/features/edit-label/edit-label-validator.ts +104 -0
- package/src/features/hints/di.config.ts +30 -0
- package/src/features/hints/model.ts +34 -0
- package/src/features/hints/request-type-hints-action.ts +36 -0
- package/src/features/hints/type-hints.ts +257 -0
- package/src/features/hover/di.config.ts +61 -0
- package/src/features/hover/hover.ts +95 -0
- package/src/features/layout/di.config.ts +26 -0
- package/src/features/layout/layout-commands.spec.ts +366 -0
- package/src/features/layout/layout-commands.ts +415 -0
- package/src/features/model-source-watcher/di.config.ts +26 -0
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +70 -0
- package/src/features/model-source-watcher/model-source-changed-action.ts +26 -0
- package/src/features/mouse-tool/di.config.ts +28 -0
- package/src/features/mouse-tool/mouse-tool.ts +139 -0
- package/src/features/navigation/di.config.ts +35 -0
- package/src/features/navigation/navigation-action-handler.ts +272 -0
- package/src/features/navigation/navigation-target-resolver.spec.ts +61 -0
- package/src/features/navigation/navigation-target-resolver.ts +146 -0
- package/src/features/rank/model.ts +29 -0
- package/src/features/reconnect/model.ts +76 -0
- package/src/features/save/di.config.ts +30 -0
- package/src/features/save/model.ts +26 -0
- package/src/features/save/save.ts +35 -0
- package/src/features/select/di.config.ts +35 -0
- package/src/features/select/select-feedback-action.ts +87 -0
- package/src/features/select/select-mouse-listener.ts +26 -0
- package/src/features/select/selection-service.spec.ts +372 -0
- package/src/features/select/selection-service.ts +239 -0
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +244 -0
- package/src/features/tool-feedback/creation-tool-feedback.ts +190 -0
- package/src/features/tool-feedback/css-feedback.ts +98 -0
- package/src/features/tool-feedback/di.config.ts +69 -0
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +327 -0
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +101 -0
- package/src/features/tool-feedback/marquee-tool-feedback.ts +104 -0
- package/src/features/tool-feedback/model.ts +32 -0
- package/src/features/tool-feedback/view.tsx +70 -0
- package/src/features/tool-palette/di.config.ts +30 -0
- package/src/features/tool-palette/palette-item.ts +40 -0
- package/src/features/tool-palette/tool-palette.ts +416 -0
- package/src/features/tools/base-glsp-tool.ts +53 -0
- package/src/features/tools/change-bounds-tool.ts +445 -0
- package/src/features/tools/delete-tool.ts +120 -0
- package/src/features/tools/di.config.ts +56 -0
- package/src/features/tools/edge-creation-tool.ts +171 -0
- package/src/features/tools/edge-edit-tool.ts +325 -0
- package/src/features/tools/marquee-mouse-tool.ts +244 -0
- package/src/features/tools/marquee-tool.ts +52 -0
- package/src/features/tools/model.ts +22 -0
- package/src/features/tools/node-creation-tool.ts +123 -0
- package/src/features/tools/view.tsx +38 -0
- package/src/features/undo-redo/model.ts +26 -0
- package/src/features/validation/di.config.ts +51 -0
- package/src/features/validation/issue-marker.ts +93 -0
- package/src/features/validation/marker-navigator.spec.ts +207 -0
- package/src/features/validation/marker-navigator.ts +249 -0
- package/src/features/validation/validate.ts +274 -0
- package/src/features/viewport/di.config.ts +47 -0
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +50 -0
- package/src/index.ts +115 -0
- package/src/lib/model.ts +27 -0
- package/src/model-source/glsp-diagram-server.ts +114 -0
- package/src/model-source/glsp-server-status.ts +38 -0
- package/src/utils/argument-utils.ts +127 -0
- package/src/utils/array-utils.ts +55 -0
- package/src/utils/html-utils.ts +25 -0
- package/src/utils/layout-utils.ts +97 -0
- package/src/utils/marker.ts +63 -0
- package/src/utils/smodel-util.ts +149 -0
- package/src/utils/viewpoint-util.ts +99 -0
- package/src/views/base-view-module.ts +98 -0
- package/src/views/default-types.ts +48 -0
- package/src/views/glsp-edge-view.tsx +70 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +55 -0
- package/src/views/rounded-corner-view.tsx +88 -0
- package/src/views/rounded-corner.ts +88 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable } from 'inversify';
|
|
17
|
+
import { VNode } from 'snabbdom';
|
|
18
|
+
import {
|
|
19
|
+
Action,
|
|
20
|
+
add,
|
|
21
|
+
AnchorComputerRegistry,
|
|
22
|
+
center,
|
|
23
|
+
CommandExecutionContext,
|
|
24
|
+
CommandReturn,
|
|
25
|
+
EdgeRouterRegistry,
|
|
26
|
+
ElementMove,
|
|
27
|
+
euclideanDistance,
|
|
28
|
+
findChildrenAtPosition,
|
|
29
|
+
findParentByFeature,
|
|
30
|
+
isBoundsAware,
|
|
31
|
+
isConnectable,
|
|
32
|
+
isSelected,
|
|
33
|
+
isViewport,
|
|
34
|
+
MouseListener,
|
|
35
|
+
MoveAction,
|
|
36
|
+
Point,
|
|
37
|
+
PolylineEdgeRouter,
|
|
38
|
+
SConnectableElement,
|
|
39
|
+
SModelElement,
|
|
40
|
+
SModelRoot,
|
|
41
|
+
SRoutingHandle,
|
|
42
|
+
SwitchEditModeAction,
|
|
43
|
+
SwitchEditModeCommand,
|
|
44
|
+
TYPES
|
|
45
|
+
} from 'sprotty';
|
|
46
|
+
|
|
47
|
+
import { isNotUndefined, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
48
|
+
import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
49
|
+
import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
|
|
50
|
+
import {
|
|
51
|
+
FeedbackEdgeEnd,
|
|
52
|
+
feedbackEdgeEndId,
|
|
53
|
+
FeedbackEdgeEndMovingMouseListener,
|
|
54
|
+
feedbackEdgeId
|
|
55
|
+
} from './creation-tool-feedback';
|
|
56
|
+
import { FeedbackCommand } from './model';
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* RECONNECT HANDLES FEEDBACK
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
export class ShowEdgeReconnectHandlesFeedbackAction implements Action {
|
|
63
|
+
constructor(readonly elementId?: string, public readonly kind: string = ShowEdgeReconnectHandlesFeedbackCommand.KIND) { }
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export class HideEdgeReconnectHandlesFeedbackAction implements Action {
|
|
67
|
+
constructor(public readonly kind: string = HideEdgeReconnectHandlesFeedbackCommand.KIND) { }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@injectable()
|
|
71
|
+
export class ShowEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
72
|
+
static readonly KIND = 'showReconnectHandlesFeedback';
|
|
73
|
+
|
|
74
|
+
constructor(@inject(TYPES.Action) protected action: ShowEdgeReconnectHandlesFeedbackAction) {
|
|
75
|
+
super();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
execute(context: CommandExecutionContext): CommandReturn {
|
|
79
|
+
const index = context.root.index;
|
|
80
|
+
index.all().filter(isRoutable).forEach(removeReconnectHandles);
|
|
81
|
+
|
|
82
|
+
if (isNotUndefined(this.action.elementId)) {
|
|
83
|
+
const routableElement = index.getById(this.action.elementId);
|
|
84
|
+
if (isNotUndefined(routableElement) && isRoutable(routableElement)) {
|
|
85
|
+
addReconnectHandles(routableElement);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return context.root;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@injectable()
|
|
93
|
+
export class HideEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
94
|
+
static readonly KIND = 'hideReconnectHandlesFeedback';
|
|
95
|
+
|
|
96
|
+
constructor(@inject(TYPES.Action) protected action: HideEdgeReconnectHandlesFeedbackAction) {
|
|
97
|
+
super();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
execute(context: CommandExecutionContext): CommandReturn {
|
|
101
|
+
const index = context.root.index;
|
|
102
|
+
index.all().filter(isRoutable).forEach(removeReconnectHandles);
|
|
103
|
+
return context.root;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* ROUTING FEEDBACK
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
export class SwitchRoutingModeAction extends SwitchEditModeAction {
|
|
111
|
+
constructor(public readonly elementsToActivate: string[] = [],
|
|
112
|
+
public readonly elementsToDeactivate: string[] = [],
|
|
113
|
+
public readonly kind: string = SwitchRoutingModeCommand.KIND) {
|
|
114
|
+
super(elementsToActivate, elementsToDeactivate);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@injectable()
|
|
119
|
+
export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
|
|
120
|
+
static KIND = 'switchRoutingMode';
|
|
121
|
+
constructor(@inject(TYPES.Action) action: SwitchRoutingModeAction) {
|
|
122
|
+
super(action);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* SOURCE AND TARGET EDGE FEEDBACK
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
export class DrawFeedbackEdgeSourceAction implements Action {
|
|
131
|
+
constructor(readonly elementTypeId: string, readonly targetId: string, public readonly kind: string = DrawFeedbackEdgeSourceCommand.KIND) { }
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@injectable()
|
|
135
|
+
export class DrawFeedbackEdgeSourceCommand extends FeedbackCommand {
|
|
136
|
+
static readonly KIND = 'drawFeedbackEdgeSource';
|
|
137
|
+
|
|
138
|
+
constructor(@inject(TYPES.Action) protected action: DrawFeedbackEdgeSourceAction) {
|
|
139
|
+
super();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
execute(context: CommandExecutionContext): CommandReturn {
|
|
143
|
+
drawFeedbackEdgeSource(context, this.action.targetId, this.action.elementTypeId);
|
|
144
|
+
return context.root;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* SOURCE AND TARGET MOUSE MOVE LISTENER
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export class FeedbackEdgeTargetMovingMouseListener extends FeedbackEdgeEndMovingMouseListener {
|
|
153
|
+
constructor(protected anchorRegistry: AnchorComputerRegistry) {
|
|
154
|
+
super(anchorRegistry);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
159
|
+
constructor(protected anchorRegistry: AnchorComputerRegistry) {
|
|
160
|
+
super();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
164
|
+
const root = target.root;
|
|
165
|
+
const edgeEnd = root.index.getById(feedbackEdgeEndId(root));
|
|
166
|
+
if (!(edgeEnd instanceof FeedbackEdgeEnd) || !edgeEnd.feedbackEdge) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const edge = edgeEnd.feedbackEdge;
|
|
171
|
+
const position = getAbsolutePosition(edgeEnd, event);
|
|
172
|
+
const endAtMousePosition = findChildrenAtPosition(target.root, position)
|
|
173
|
+
.find(e => isConnectable(e) && e.canConnect(edge, 'source'));
|
|
174
|
+
|
|
175
|
+
if (endAtMousePosition instanceof SConnectableElement && edge.target && isBoundsAware(edge.target)) {
|
|
176
|
+
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(edge.target.bounds));
|
|
177
|
+
if (euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
178
|
+
return [new MoveAction([{ elementId: edgeEnd.id, toPosition: anchor }], false)];
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
return [new MoveAction([{ elementId: edgeEnd.id, toPosition: position }], false)];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
protected computeAbsoluteAnchor(element: SConnectableElement, referencePoint: Point, offset?: number): Point {
|
|
188
|
+
const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
|
|
189
|
+
let anchor = anchorComputer.getAnchor(element, referencePoint, offset);
|
|
190
|
+
// The anchor is computed in the local coordinate system of the element.
|
|
191
|
+
// If the element is a nested child element we have to add the absolute position of its parent to the anchor.
|
|
192
|
+
if (element.parent !== element.root) {
|
|
193
|
+
const parent = findParentByFeature(element.parent, isBoundsAware);
|
|
194
|
+
if (parent) {
|
|
195
|
+
const absoluteParentPosition = toAbsoluteBounds(parent);
|
|
196
|
+
anchor = add(absoluteParentPosition, anchor);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return anchor;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
204
|
+
protected hasDragged = false;
|
|
205
|
+
protected lastDragPosition: Point | undefined;
|
|
206
|
+
|
|
207
|
+
constructor(protected edgeRouterRegistry?: EdgeRouterRegistry) {
|
|
208
|
+
super();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
212
|
+
const result: Action[] = [];
|
|
213
|
+
if (event.button === 0) {
|
|
214
|
+
const routingHandle = findParentByFeature(target, isRoutingHandle);
|
|
215
|
+
if (routingHandle !== undefined) {
|
|
216
|
+
result.push(new SwitchRoutingModeAction([target.id], []));
|
|
217
|
+
this.lastDragPosition = { x: event.pageX, y: event.pageY };
|
|
218
|
+
} else {
|
|
219
|
+
this.lastDragPosition = undefined;
|
|
220
|
+
}
|
|
221
|
+
this.hasDragged = false;
|
|
222
|
+
}
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
227
|
+
const result: Action[] = [];
|
|
228
|
+
if (event.buttons === 0) {
|
|
229
|
+
this.mouseUp(target, event);
|
|
230
|
+
} else if (this.lastDragPosition) {
|
|
231
|
+
const viewport = findParentByFeature(target, isViewport);
|
|
232
|
+
this.hasDragged = true;
|
|
233
|
+
const zoom = viewport ? viewport.zoom : 1;
|
|
234
|
+
const dx = (event.pageX - this.lastDragPosition.x) / zoom;
|
|
235
|
+
const dy = (event.pageY - this.lastDragPosition.y) / zoom;
|
|
236
|
+
const handleMoves: ElementMove[] = [];
|
|
237
|
+
target.root.index.all()
|
|
238
|
+
.filter(element => isSelected(element))
|
|
239
|
+
.forEach(element => {
|
|
240
|
+
if (isRoutingHandle(element)) {
|
|
241
|
+
const point = this.getHandlePosition(element);
|
|
242
|
+
if (point !== undefined) {
|
|
243
|
+
handleMoves.push({
|
|
244
|
+
elementId: element.id,
|
|
245
|
+
fromPosition: point,
|
|
246
|
+
toPosition: {
|
|
247
|
+
x: point.x + dx,
|
|
248
|
+
y: point.y + dy
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
this.lastDragPosition = { x: event.pageX, y: event.pageY };
|
|
255
|
+
if (handleMoves.length > 0) {
|
|
256
|
+
result.push(new MoveAction(handleMoves, false));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return result;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
protected getHandlePosition(handle: SRoutingHandle): Point | undefined {
|
|
263
|
+
if (this.edgeRouterRegistry) {
|
|
264
|
+
const parent = handle.parent;
|
|
265
|
+
if (!isRoutable(parent)) {
|
|
266
|
+
return undefined;
|
|
267
|
+
}
|
|
268
|
+
const router = this.edgeRouterRegistry.get(parent.routerKind);
|
|
269
|
+
const route = router.route(parent);
|
|
270
|
+
return router.getHandlePosition(parent, route, handle);
|
|
271
|
+
}
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
mouseEnter(target: SModelElement, event: MouseEvent): Action[] {
|
|
276
|
+
if (target instanceof SModelRoot && event.buttons === 0) {
|
|
277
|
+
this.mouseUp(target, event);
|
|
278
|
+
}
|
|
279
|
+
return [];
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
mouseUp(_target: SModelElement, event: MouseEvent): Action[] {
|
|
283
|
+
this.hasDragged = false;
|
|
284
|
+
this.lastDragPosition = undefined;
|
|
285
|
+
return [];
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
decorate(vnode: VNode, _element: SModelElement): VNode {
|
|
289
|
+
return vnode;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* UTILITY FUNCTIONS
|
|
295
|
+
*/
|
|
296
|
+
|
|
297
|
+
function drawFeedbackEdgeSource(context: CommandExecutionContext, targetId: string, elementTypeId: string): void {
|
|
298
|
+
const root = context.root;
|
|
299
|
+
const targetChild = root.index.getById(targetId);
|
|
300
|
+
if (!targetChild) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
const target = findParentByFeature(targetChild, isConnectable);
|
|
305
|
+
if (!target || !isBoundsAware(target)) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
const edgeEnd = new FeedbackEdgeEnd(target.id, elementTypeId);
|
|
310
|
+
edgeEnd.id = feedbackEdgeEndId(root);
|
|
311
|
+
edgeEnd.position = { x: target.bounds.x, y: target.bounds.y };
|
|
312
|
+
|
|
313
|
+
const feedbackEdgeSchema = {
|
|
314
|
+
type: 'edge',
|
|
315
|
+
id: feedbackEdgeId(root),
|
|
316
|
+
sourceId: edgeEnd.id,
|
|
317
|
+
targetId: target.id,
|
|
318
|
+
opacity: 0.3
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
const feedbackEdge = context.modelFactory.createElement(feedbackEdgeSchema);
|
|
322
|
+
if (isRoutable(feedbackEdge)) {
|
|
323
|
+
edgeEnd.feedbackEdge = feedbackEdge;
|
|
324
|
+
root.add(edgeEnd);
|
|
325
|
+
root.add(feedbackEdge);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable } from 'inversify';
|
|
17
|
+
import { Action, IActionDispatcher, ILogger, TYPES } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
export interface IFeedbackEmitter { }
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Dispatcher for actions that are meant to show visual feedback on
|
|
23
|
+
* the diagram that is not part of the diagram sent from the server
|
|
24
|
+
* after a model update.
|
|
25
|
+
*
|
|
26
|
+
* The purpose of this dispatcher is to re-establish the feedback
|
|
27
|
+
* after the model has been updated or reset by the server, as this would
|
|
28
|
+
* overwrite the already established feedback, in case it is drawn by
|
|
29
|
+
* extending the `SModelRoot`. Therefore, tools can register themselves
|
|
30
|
+
* as feedback emitters with actions they want to place for showing
|
|
31
|
+
* feedback. This dispatcher will then re-establish all feedback actions
|
|
32
|
+
* of the registered tools, whenever the `SModelRoot` has been set or updated.
|
|
33
|
+
*/
|
|
34
|
+
export interface IFeedbackActionDispatcher {
|
|
35
|
+
/**
|
|
36
|
+
* Registers `actions` to be sent out by a `feedbackEmitter`.
|
|
37
|
+
* @param feedbackEmitter the emitter sending out feedback actions.
|
|
38
|
+
* @param actions the actions to be sent out.
|
|
39
|
+
*/
|
|
40
|
+
registerFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Deregisters a `feedbackEmitter` from this dispatcher and thereafter
|
|
44
|
+
* dispatches the provided `actions`.
|
|
45
|
+
* @param feedbackEmitter the emitter to be deregistered.
|
|
46
|
+
* @param actions the actions to be dispatched right after the deregistration.
|
|
47
|
+
* These actions do not have to be related to the actions sent out by the
|
|
48
|
+
* deregistered `feedbackEmitter`. The purpose of these actions typically is
|
|
49
|
+
* to reset the normal state of the diagram without the feedback (e.g., reset a
|
|
50
|
+
* CSS class that was set by a feedbackEmitter).
|
|
51
|
+
*/
|
|
52
|
+
deregisterFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Retrieve all `actions` sent out by currently registered `feedbackEmitter`.
|
|
56
|
+
*/
|
|
57
|
+
getRegisteredFeedback(): Action[];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@injectable()
|
|
61
|
+
export class FeedbackActionDispatcher implements IFeedbackActionDispatcher {
|
|
62
|
+
protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map;
|
|
63
|
+
|
|
64
|
+
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
65
|
+
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
66
|
+
|
|
67
|
+
registerFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void {
|
|
68
|
+
this.feedbackEmitters.set(feedbackEmitter, actions);
|
|
69
|
+
this.dispatch(actions, feedbackEmitter);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
deregisterFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void {
|
|
73
|
+
this.feedbackEmitters.delete(feedbackEmitter);
|
|
74
|
+
this.dispatch(actions, feedbackEmitter);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private dispatch(actions: Action[], feedbackEmitter: IFeedbackEmitter): void {
|
|
78
|
+
this.actionDispatcher()
|
|
79
|
+
.then(dispatcher => dispatcher.dispatchAll(actions))
|
|
80
|
+
.then(() => this.logger.info(this, `Dispatched feedback actions for ${feedbackEmitter}`))
|
|
81
|
+
.catch(reason => this.logger.error(this, 'Failed to dispatch feedback actions', reason));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getRegisteredFeedback(): Action[] {
|
|
85
|
+
const result: Action[] = [];
|
|
86
|
+
this.feedbackEmitters.forEach((value, key) => result.push(...value));
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
getRegisteredFeedbackEmitters(action: Action): IFeedbackEmitter[] {
|
|
91
|
+
const result: IFeedbackEmitter[] = [];
|
|
92
|
+
this.feedbackEmitters.forEach((value, key) => {
|
|
93
|
+
if (value.find(a => a === action)) {
|
|
94
|
+
result.push(key);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { inject, injectable } from 'inversify';
|
|
17
|
+
import {
|
|
18
|
+
Action,
|
|
19
|
+
AnchorComputerRegistry,
|
|
20
|
+
CommandExecutionContext,
|
|
21
|
+
CommandReturn,
|
|
22
|
+
MouseListener,
|
|
23
|
+
Point,
|
|
24
|
+
SChildElement,
|
|
25
|
+
SModelElement,
|
|
26
|
+
SModelRoot,
|
|
27
|
+
TYPES
|
|
28
|
+
} from 'sprotty';
|
|
29
|
+
|
|
30
|
+
import { FeedbackCommand } from './model';
|
|
31
|
+
|
|
32
|
+
export class DrawMarqueeAction implements Action {
|
|
33
|
+
constructor(
|
|
34
|
+
public readonly startPoint: Point,
|
|
35
|
+
public readonly endPoint: Point,
|
|
36
|
+
public readonly kind: string = DrawMarqueeCommand.KIND) { }
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@injectable()
|
|
40
|
+
export class DrawMarqueeCommand extends FeedbackCommand {
|
|
41
|
+
static readonly KIND = 'drawMarquee';
|
|
42
|
+
|
|
43
|
+
constructor(@inject(TYPES.Action) protected action: DrawMarqueeAction) {
|
|
44
|
+
super();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
execute(context: CommandExecutionContext): CommandReturn {
|
|
48
|
+
drawMarquee(context, this.action.startPoint, this.action.endPoint);
|
|
49
|
+
return context.root;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export class RemoveMarqueeAction implements Action {
|
|
54
|
+
constructor(public readonly kind: string = RemoveMarqueeCommand.KIND) { }
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@injectable()
|
|
58
|
+
export class RemoveMarqueeCommand extends FeedbackCommand {
|
|
59
|
+
static readonly KIND = 'removeMarqueeCommand';
|
|
60
|
+
|
|
61
|
+
execute(context: CommandExecutionContext): CommandReturn {
|
|
62
|
+
removeMarquee(context.root);
|
|
63
|
+
return context.root;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export class MarqueeEndMovingMouseListener extends MouseListener {
|
|
68
|
+
constructor(protected anchorRegistry: AnchorComputerRegistry) {
|
|
69
|
+
super();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function marqueeId(root: SModelRoot): string {
|
|
78
|
+
return root.id + '_' + MARQUEE;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const MARQUEE = 'marquee';
|
|
82
|
+
|
|
83
|
+
export function drawMarquee(context: CommandExecutionContext, startPoint: Point, endPoint: Point): void {
|
|
84
|
+
const root = context.root;
|
|
85
|
+
|
|
86
|
+
removeMarquee(root);
|
|
87
|
+
|
|
88
|
+
const marqueeSchema = {
|
|
89
|
+
type: MARQUEE,
|
|
90
|
+
id: marqueeId(root),
|
|
91
|
+
startPoint: startPoint,
|
|
92
|
+
endPoint: endPoint
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const marquee = context.modelFactory.createElement(marqueeSchema);
|
|
96
|
+
root.add(marquee);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export function removeMarquee(root: SModelRoot): void {
|
|
100
|
+
const marquee = root.index.getById(marqueeId(root));
|
|
101
|
+
if (marquee instanceof SChildElement) {
|
|
102
|
+
root.remove(marquee);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { Command, CommandExecutionContext, CommandReturn } from 'sprotty';
|
|
17
|
+
|
|
18
|
+
export abstract class FeedbackCommand extends Command {
|
|
19
|
+
// used by the `FeedbackAwareUpdateModelCommand`
|
|
20
|
+
readonly priority: number = 0;
|
|
21
|
+
|
|
22
|
+
abstract execute(context: CommandExecutionContext): CommandReturn;
|
|
23
|
+
|
|
24
|
+
undo(context: CommandExecutionContext): CommandReturn {
|
|
25
|
+
return context.root;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
redo(context: CommandExecutionContext): CommandReturn {
|
|
29
|
+
return context.root;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { VNode } from 'snabbdom';
|
|
18
|
+
import { IView, ORIGIN_POINT, Point, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
|
|
19
|
+
|
|
20
|
+
import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
|
+
const JSX = { createElement: svg };
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* This view is used for the invisible end of the feedback edge.
|
|
27
|
+
* A feedback edge is shown as a visual feedback when creating edges.
|
|
28
|
+
*/
|
|
29
|
+
@injectable()
|
|
30
|
+
export class FeedbackEdgeEndView implements IView {
|
|
31
|
+
render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
|
|
32
|
+
const position: Point = (model as any).position || ORIGIN_POINT;
|
|
33
|
+
return <g x={position.x} y={position.y} />;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@injectable()
|
|
38
|
+
export class SResizeHandleView implements IView {
|
|
39
|
+
render(handle: SResizeHandle, context: RenderingContext): VNode {
|
|
40
|
+
const position = this.getPosition(handle);
|
|
41
|
+
if (position !== undefined) {
|
|
42
|
+
const node = <circle class-sprotty-resize-handle={true} class-mouseover={handle.hoverFeedback}
|
|
43
|
+
cx={position.x} cy={position.y} r={this.getRadius()} />;
|
|
44
|
+
setAttr(node, 'data-kind', handle.location);
|
|
45
|
+
return node;
|
|
46
|
+
}
|
|
47
|
+
// Fallback: Create an empty group
|
|
48
|
+
return <g />;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
protected getPosition(handle: SResizeHandle): Point | undefined {
|
|
52
|
+
const parent = handle.parent;
|
|
53
|
+
if (isResizable(parent)) {
|
|
54
|
+
if (handle.location === ResizeHandleLocation.TopLeft) {
|
|
55
|
+
return { x: 0, y: 0 };
|
|
56
|
+
} else if (handle.location === ResizeHandleLocation.TopRight) {
|
|
57
|
+
return { x: parent.bounds.width, y: 0 };
|
|
58
|
+
} else if (handle.location === ResizeHandleLocation.BottomLeft) {
|
|
59
|
+
return { x: 0, y: parent.bounds.height };
|
|
60
|
+
} else if (handle.location === ResizeHandleLocation.BottomRight) {
|
|
61
|
+
return { x: parent.bounds.width, y: parent.bounds.height };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getRadius(): number {
|
|
68
|
+
return 7;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import '../../../css/tool-palette.css';
|
|
17
|
+
|
|
18
|
+
import { ContainerModule } from 'inversify';
|
|
19
|
+
import { configureActionHandler, EnableDefaultToolsAction, TYPES } from 'sprotty';
|
|
20
|
+
|
|
21
|
+
import { EnableToolPaletteAction, ToolPalette } from './tool-palette';
|
|
22
|
+
|
|
23
|
+
const toolPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
24
|
+
bind(ToolPalette).toSelf().inSingletonScope();
|
|
25
|
+
bind(TYPES.IUIExtension).toService(ToolPalette);
|
|
26
|
+
configureActionHandler({ bind, isBound }, EnableToolPaletteAction.KIND, ToolPalette);
|
|
27
|
+
configureActionHandler({ bind, isBound }, EnableDefaultToolsAction.KIND, ToolPalette);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export default toolPaletteModule;
|