@eclipse-glsp/client 2.2.0-next.359 → 2.2.0-next.362

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.
Files changed (26) hide show
  1. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +6 -2
  2. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  3. package/lib/features/element-template/mouse-tracking-element-position-listener.js +13 -2
  4. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  5. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts +15 -3
  6. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -1
  7. package/lib/features/tools/marquee-selection/marquee-behavior.js +61 -9
  8. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -1
  9. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +7 -9
  10. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
  11. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +19 -48
  12. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  13. package/lib/features/tools/marquee-selection/marquee-selection-module.d.ts.map +1 -1
  14. package/lib/features/tools/marquee-selection/marquee-selection-module.js +2 -0
  15. package/lib/features/tools/marquee-selection/marquee-selection-module.js.map +1 -1
  16. package/lib/features/tools/node-creation/node-creation-tool.d.ts +2 -1
  17. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  18. package/lib/features/tools/node-creation/node-creation-tool.js +3 -3
  19. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  20. package/package.json +3 -3
  21. package/src/features/element-template/mouse-tracking-element-position-listener.ts +26 -3
  22. package/src/features/tools/marquee-selection/marquee-behavior.spec.ts +2 -1
  23. package/src/features/tools/marquee-selection/marquee-behavior.ts +66 -8
  24. package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +25 -67
  25. package/src/features/tools/marquee-selection/marquee-selection-module.ts +2 -0
  26. package/src/features/tools/node-creation/node-creation-tool.ts +6 -3
@@ -13,8 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, GModelElement, Point } from '@eclipse-glsp/sprotty';
16
+ import { Action, DisposableCollection, GModelElement, GModelRoot, Point } from '@eclipse-glsp/sprotty';
17
17
  import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
18
+ import { EditorContextService } from '../../base/editor-context-service';
18
19
  import { FeedbackEmitter } from '../../base/feedback/feedback-emitter';
19
20
  import { MoveableElement } from '../../utils/gmodel-util';
20
21
  import { FeedbackAwareTool } from '../tools/base-tools';
@@ -27,14 +28,17 @@ export declare class MouseTrackingElementPositionListener extends DragAwareMouse
27
28
  protected elementId: string;
28
29
  protected tool: PositioningTool;
29
30
  protected cursorPosition: 'top-left' | 'middle';
31
+ protected editorContext?: EditorContextService | undefined;
30
32
  protected moveGhostFeedback: FeedbackEmitter;
31
33
  protected tracker: ChangeBoundsTracker;
32
- constructor(elementId: string, tool: PositioningTool, cursorPosition?: 'top-left' | 'middle');
34
+ protected toDispose: DisposableCollection;
35
+ constructor(elementId: string, tool: PositioningTool, cursorPosition?: 'top-left' | 'middle', editorContext?: EditorContextService | undefined);
33
36
  protected getTrackedElement(target: GModelElement, event: MouseEvent): MoveableElement | undefined;
34
37
  mouseMove(ctx: GModelElement, event: MouseEvent): Action[];
35
38
  protected initialize(element: MoveableElement, target: GModelElement, event: MouseEvent): void;
36
39
  protected initializeElementPosition(element: MoveableElement, target: GModelElement, event: MouseEvent): Point;
37
40
  protected addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void;
41
+ protected modelRootChanged(root: Readonly<GModelRoot>): void;
38
42
  dispose(): void;
39
43
  }
40
44
  //# sourceMappingURL=mouse-tracking-element-position-listener.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mouse-tracking-element-position-listener.d.ts","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAa,aAAa,EAAc,KAAK,EAA6B,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAEhG,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACrD;AAED,qBAAa,oCAAqC,SAAQ,sBAAsB;IAKxE,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,IAAI,EAAE,eAAe;IAC/B,SAAS,CAAC,cAAc,EAAE,UAAU,GAAG,QAAQ;IANnD,SAAS,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAGzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,cAAc,GAAE,UAAU,GAAG,QAAqB;IAOhE,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAKzF,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IA2BnE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK9F,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK;IAO9G,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKhF,OAAO,IAAI,IAAI;CAI3B"}
1
+ {"version":3,"file":"mouse-tracking-element-position-listener.d.ts","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EAEN,oBAAoB,EACpB,aAAa,EACb,UAAU,EAEV,KAAK,EAGR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAEhG,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACrD;AAED,qBAAa,oCAAqC,SAAQ,sBAAsB;IAMxE,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,IAAI,EAAE,eAAe;IAC/B,SAAS,CAAC,cAAc,EAAE,UAAU,GAAG,QAAQ;IAC/C,SAAS,CAAC,aAAa,CAAC;IAR5B,SAAS,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC7C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACvC,SAAS,CAAC,SAAS,uBAA8B;gBAGnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,cAAc,GAAE,UAAU,GAAG,QAAqB,EAClD,aAAa,CAAC,kCAAsB;IAYlD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAKzF,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IA2BnE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK9F,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK;IAO9G,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKzF,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;IAKnD,OAAO,IAAI,IAAI;CAI3B"}
@@ -22,13 +22,20 @@ const css_feedback_1 = require("../../base/feedback/css-feedback");
22
22
  const viewpoint_util_1 = require("../../utils/viewpoint-util");
23
23
  const change_bounds_tool_feedback_1 = require("../tools/change-bounds/change-bounds-tool-feedback");
24
24
  class MouseTrackingElementPositionListener extends drag_aware_mouse_listener_1.DragAwareMouseListener {
25
- constructor(elementId, tool, cursorPosition = 'top-left') {
25
+ constructor(elementId, tool, cursorPosition = 'top-left', editorContext) {
26
26
  super();
27
27
  this.elementId = elementId;
28
28
  this.tool = tool;
29
29
  this.cursorPosition = cursorPosition;
30
+ this.editorContext = editorContext;
31
+ this.toDispose = new sprotty_1.DisposableCollection();
30
32
  this.tracker = this.tool.changeBoundsManager.createTracker();
31
33
  this.moveGhostFeedback = this.tool.createFeedbackEmitter();
34
+ this.toDispose.push(this.moveGhostFeedback);
35
+ const modelRootChangedListener = editorContext === null || editorContext === void 0 ? void 0 : editorContext.onModelRootChanged(newRoot => this.modelRootChanged(newRoot));
36
+ if (modelRootChangedListener) {
37
+ this.toDispose.push(modelRootChangedListener);
38
+ }
32
39
  }
33
40
  getTrackedElement(target, event) {
34
41
  const element = target.root.index.getById(this.elementId);
@@ -71,8 +78,12 @@ class MouseTrackingElementPositionListener extends drag_aware_mouse_listener_1.D
71
78
  this.moveGhostFeedback.add(css_feedback_1.ModifyCSSFeedbackAction.create({ elements: [this.elementId], remove: [css_feedback_1.CSS_HIDDEN] }));
72
79
  this.tool.changeBoundsManager.addMoveFeedback(this.moveGhostFeedback, move, ctx, event);
73
80
  }
81
+ modelRootChanged(root) {
82
+ // stop the tracking once we receive a new model root and ensure proper alignment with next next mouse move
83
+ this.tracker.stopTracking();
84
+ }
74
85
  dispose() {
75
- this.moveGhostFeedback.dispose();
86
+ this.toDispose.dispose();
76
87
  super.dispose();
77
88
  }
78
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mouse-tracking-element-position-listener.js","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mouse-tracking-element-position-listener.js","sourceRoot":"","sources":["../../../src/features/element-template/mouse-tracking-element-position-listener.ts"],"names":[],"mappings":"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"}
@@ -13,20 +13,32 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Bounds, Point, PointToPointLine } from '@eclipse-glsp/sprotty';
16
+ import { Bounds, DOMHelper, GModelElement, GModelRoot, Point, PointToPointLine, TypeGuard } from '@eclipse-glsp/sprotty';
17
+ import { GEdge } from '../../../model';
18
+ import { BoundsAwareModelElement } from '../../../utils/gmodel-util';
17
19
  import { DrawMarqueeAction } from './marquee-tool-feedback';
18
20
  export interface IMarqueeBehavior {
19
21
  readonly entireElement: boolean;
20
22
  readonly entireEdge: boolean;
21
23
  }
22
24
  export declare class MarqueeUtil {
25
+ protected marqueeBehavior: IMarqueeBehavior;
26
+ protected domHelper: DOMHelper;
23
27
  protected startPoint: Point;
24
28
  protected currentPoint: Point;
25
- protected marqueeBehavior: IMarqueeBehavior;
26
- constructor(marqueeBehavior?: IMarqueeBehavior);
29
+ constructor(marqueeBehavior: IMarqueeBehavior, domHelper: DOMHelper);
30
+ isContinuousMode(element: GModelElement, event: MouseEvent): boolean;
31
+ getMarkableNodes(root: GModelRoot): BoundsAwareModelElement[];
32
+ protected isMarkableNode(): TypeGuard<BoundsAwareModelElement>;
33
+ getMarkableEdges(root: GModelRoot): GEdge[];
34
+ protected isMarkableEdge(): TypeGuard<GEdge>;
27
35
  updateStartPoint(position: Point): void;
28
36
  updateCurrentPoint(position: Point): void;
37
+ isMarked(element: BoundsAwareModelElement | GEdge): boolean;
29
38
  drawMarqueeAction(): DrawMarqueeAction;
39
+ protected isMarkedEdge(edge: GEdge): boolean;
40
+ protected isMarkedNode(node: BoundsAwareModelElement): boolean;
41
+ protected getNodeBounds(node: BoundsAwareModelElement): Bounds;
30
42
  isEdgePathMarked(path: string | null): boolean;
31
43
  isEdgeMarked(points: Point[]): boolean;
32
44
  isNodeMarked(elementBounds: Bounds): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-behavior.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,WAAW;IACpB,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5B,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC;IAC9B,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;gBAEhC,eAAe,CAAC,EAAE,gBAAgB;IAQ9C,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIvC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIzC,iBAAiB,IAAI,iBAAiB;IAItC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAc9C,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAItC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAY5C,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAStD,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAStD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO;IAY7D,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAI9E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAY5C,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAc1G,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAc1G,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAGxE"}
1
+ {"version":3,"file":"marquee-behavior.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EACH,MAAM,EACN,SAAS,EACT,aAAa,EACb,UAAU,EAEV,KAAK,EACL,gBAAgB,EAEhB,SAAS,EAIZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAmD,MAAM,4BAA4B,CAAC;AAEtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED,qBACa,WAAW;IAOhB,SAAS,CAAC,eAAe,EAAE,gBAAgB;IAClB,SAAS,CAAC,SAAS,EAAE,SAAS;IAP3D,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5B,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC;gBAKhB,eAAe,EAAE,gBAA8D,EACtD,SAAS,EAAE,SAAS;IAG3D,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAIpE,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,uBAAuB,EAAE;IAI7D,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,uBAAuB,CAAC;IAI9D,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE;IAI3C,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,KAAK,CAAC;IAI5C,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIvC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIzC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,KAAK,GAAG,OAAO;IAI3D,iBAAiB,IAAI,iBAAiB;IAItC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO;IAU5C,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO;IAI9D,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM;IAI9D,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAc9C,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAItC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAY5C,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAStD,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAStD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO;IAY7D,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAI9E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAY5C,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAc1G,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAc1G,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAGxE"}
@@ -14,18 +14,45 @@
14
14
  *
15
15
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
16
  ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
27
+ return function (target, key) { decorator(target, key, paramIndex); }
28
+ };
17
29
  Object.defineProperty(exports, "__esModule", { value: true });
18
30
  exports.MarqueeUtil = void 0;
19
31
  const sprotty_1 = require("@eclipse-glsp/sprotty");
32
+ const inversify_1 = require("inversify");
33
+ const model_1 = require("../../../model");
34
+ const gmodel_util_1 = require("../../../utils/gmodel-util");
35
+ const viewpoint_util_1 = require("../../../utils/viewpoint-util");
20
36
  const marquee_tool_feedback_1 = require("./marquee-tool-feedback");
21
- class MarqueeUtil {
22
- constructor(marqueeBehavior) {
23
- if (marqueeBehavior) {
24
- this.marqueeBehavior = marqueeBehavior;
25
- }
26
- else {
27
- this.marqueeBehavior = { entireElement: false, entireEdge: false };
28
- }
37
+ let MarqueeUtil = class MarqueeUtil {
38
+ constructor(marqueeBehavior = { entireElement: false, entireEdge: false }, domHelper) {
39
+ this.marqueeBehavior = marqueeBehavior;
40
+ this.domHelper = domHelper;
41
+ }
42
+ isContinuousMode(element, event) {
43
+ return event.shiftKey;
44
+ }
45
+ getMarkableNodes(root) {
46
+ return (0, gmodel_util_1.getMatchingElements)(root.index, this.isMarkableNode());
47
+ }
48
+ isMarkableNode() {
49
+ return (0, sprotty_1.typeGuard)((0, sprotty_1.toTypeGuard)(sprotty_1.GNode), gmodel_util_1.isSelectableAndBoundsAware);
50
+ }
51
+ getMarkableEdges(root) {
52
+ return (0, gmodel_util_1.getMatchingElements)(root.index, this.isMarkableEdge());
53
+ }
54
+ isMarkableEdge() {
55
+ return (0, sprotty_1.typeGuard)((0, sprotty_1.toTypeGuard)(model_1.GEdge), sprotty_1.isSelectable);
29
56
  }
30
57
  updateStartPoint(position) {
31
58
  this.startPoint = position;
@@ -33,9 +60,27 @@ class MarqueeUtil {
33
60
  updateCurrentPoint(position) {
34
61
  this.currentPoint = position;
35
62
  }
63
+ isMarked(element) {
64
+ return element instanceof model_1.GEdge ? this.isMarkedEdge(element) : this.isMarkedNode(element);
65
+ }
36
66
  drawMarqueeAction() {
37
67
  return marquee_tool_feedback_1.DrawMarqueeAction.create({ startPoint: this.startPoint, endPoint: this.currentPoint });
38
68
  }
69
+ isMarkedEdge(edge) {
70
+ const domId = this.domHelper.createUniqueDOMElementId(edge);
71
+ const domEdge = document.getElementById(domId);
72
+ if (!domEdge || domEdge.getAttribute('transform') || !domEdge.children[0]) {
73
+ return false;
74
+ }
75
+ const path = domEdge.children[0].getAttribute('d');
76
+ return this.isEdgePathMarked(path);
77
+ }
78
+ isMarkedNode(node) {
79
+ return this.isNodeMarked(this.getNodeBounds(node));
80
+ }
81
+ getNodeBounds(node) {
82
+ return (0, viewpoint_util_1.toAbsoluteBounds)(node);
83
+ }
39
84
  isEdgePathMarked(path) {
40
85
  if (!path) {
41
86
  return false;
@@ -123,6 +168,13 @@ class MarqueeUtil {
123
168
  isBetween(x, lower, upper) {
124
169
  return lower <= x && x <= upper;
125
170
  }
126
- }
171
+ };
127
172
  exports.MarqueeUtil = MarqueeUtil;
173
+ exports.MarqueeUtil = MarqueeUtil = __decorate([
174
+ (0, inversify_1.injectable)(),
175
+ __param(0, (0, inversify_1.inject)(sprotty_1.TYPES.IMarqueeBehavior)),
176
+ __param(0, (0, inversify_1.optional)()),
177
+ __param(1, (0, inversify_1.inject)(sprotty_1.TYPES.DOMHelper)),
178
+ __metadata("design:paramtypes", [Object, sprotty_1.DOMHelper])
179
+ ], MarqueeUtil);
128
180
  //# sourceMappingURL=marquee-behavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-behavior.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marquee-behavior.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-behavior.ts"],"names":[],"mappings":"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"}
@@ -13,32 +13,30 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, DOMHelper, GModelElement, GModelRoot, KeyListener } from '@eclipse-glsp/sprotty';
16
+ import { Action, GModelElement, GModelRoot, KeyListener } from '@eclipse-glsp/sprotty';
17
17
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
18
+ import { GEdge } from '../../../model';
18
19
  import { BoundsAwareModelElement } from '../../../utils/gmodel-util';
19
20
  import { BaseEditTool } from '../base-tools';
20
- import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
21
+ import { MarqueeUtil } from './marquee-behavior';
21
22
  export declare class MarqueeMouseTool extends BaseEditTool {
22
23
  static ID: string;
23
- protected domHelper: DOMHelper;
24
- protected marqueeBehavior: IMarqueeBehavior;
24
+ protected marqueeUtil: MarqueeUtil;
25
25
  protected shiftKeyListener: ShiftKeyListener;
26
26
  get id(): string;
27
27
  enable(): void;
28
28
  get isEditTool(): boolean;
29
29
  }
30
30
  export declare class MarqueeMouseListener extends DragAwareMouseListener {
31
- protected domHelper: DOMHelper;
32
31
  protected marqueeUtil: MarqueeUtil;
33
32
  protected nodes: BoundsAwareModelElement[];
34
- protected edges: SVGGElement[];
33
+ protected edges: GEdge[];
35
34
  protected previouslySelected: string[];
36
35
  protected isActive: boolean;
37
- constructor(domHelper: DOMHelper, root: GModelRoot, marqueeBehavior: IMarqueeBehavior | undefined);
36
+ constructor(root: GModelRoot, marqueeUtil: MarqueeUtil);
38
37
  mouseDown(target: GModelElement, event: MouseEvent): Action[];
39
38
  mouseMove(target: GModelElement, event: MouseEvent): Action[];
40
- mouseUp(_target: GModelElement, event: MouseEvent): Action[];
41
- isEdgeMarked(element: SVGElement): boolean;
39
+ mouseUp(target: GModelElement, event: MouseEvent): Action[];
42
40
  }
43
41
  export declare class ShiftKeyListener extends KeyListener {
44
42
  keyUp(element: GModelElement, event: KeyboardEvent): Action[];
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-mouse-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-mouse-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,SAAS,EACT,aAAa,EACb,UAAU,EAEV,WAAW,EAKd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,OAAO,EAAE,uBAAuB,EAAqD,MAAM,4BAA4B,CAAC;AAExH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGnE,qBACa,gBAAiB,SAAQ,YAAY;IAC9C,MAAM,CAAC,EAAE,SAA6B;IAEb,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IACZ,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAExF,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAA0B;IAEtE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,MAAM,IAAI,IAAI;IAQd,IAAa,UAAU,IAAI,OAAO,CAEjC;CACJ;AAED,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC5D,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC3C,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/B,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,UAAS;gBAEf,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,GAAG,SAAS;IAqBxF,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAgB7D,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAW7D,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAQrE,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;CAS7C;AAED,qBACa,gBAAiB,SAAQ,WAAW;IACpC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE;CAMzE"}
1
+ {"version":3,"file":"marquee-mouse-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-mouse-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAuC,MAAM,uBAAuB,CAAC;AAE5H,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAmD,MAAM,4BAA4B,CAAC;AAEtH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,qBACa,gBAAiB,SAAQ,YAAY;IAC9C,MAAM,CAAC,EAAE,SAA6B;IAEjB,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAExD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAA0B;IAEtE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,MAAM,IAAI,IAAI;IAQd,IAAa,UAAU,IAAI,OAAO,CAEjC;CACJ;AAED,qBAAa,oBAAqB,SAAQ,sBAAsB;IAQxD,SAAS,CAAC,WAAW,EAAE,WAAW;IAPtC,SAAS,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC3C,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IACzB,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,UAAS;gBAGvB,IAAI,EAAE,UAAU,EACN,WAAW,EAAE,WAAW;IAQ7B,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAS7D,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAY7D,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;CAMvE;AAED,qBACa,gBAAiB,SAAQ,WAAW;IACpC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE;CAMzE"}
@@ -31,7 +31,6 @@ const inversify_1 = require("inversify");
31
31
  const drag_aware_mouse_listener_1 = require("../../../base/drag-aware-mouse-listener");
32
32
  const css_feedback_1 = require("../../../base/feedback/css-feedback");
33
33
  const tool_1 = require("../../../base/tool-manager/tool");
34
- const model_1 = require("../../../model");
35
34
  const gmodel_util_1 = require("../../../utils/gmodel-util");
36
35
  const viewpoint_util_1 = require("../../../utils/viewpoint-util");
37
36
  const base_tools_1 = require("../base-tools");
@@ -46,7 +45,7 @@ let MarqueeMouseTool = MarqueeMouseTool_1 = class MarqueeMouseTool extends base_
46
45
  return MarqueeMouseTool_1.ID;
47
46
  }
48
47
  enable() {
49
- this.toDisposeOnDisable.push(this.mouseTool.registerListener(new MarqueeMouseListener(this.domHelper, this.editorContext.modelRoot, this.marqueeBehavior)), this.keyTool.registerListener(this.shiftKeyListener), this.createFeedbackEmitter().add((0, css_feedback_1.cursorFeedbackAction)(css_feedback_1.CursorCSS.MARQUEE), (0, css_feedback_1.cursorFeedbackAction)()).submit());
48
+ this.toDisposeOnDisable.push(this.mouseTool.registerListener(new MarqueeMouseListener(this.editorContext.modelRoot, this.marqueeUtil)), this.keyTool.registerListener(this.shiftKeyListener), this.createFeedbackEmitter().add((0, css_feedback_1.cursorFeedbackAction)(css_feedback_1.CursorCSS.MARQUEE), (0, css_feedback_1.cursorFeedbackAction)()).submit());
50
49
  }
51
50
  get isEditTool() {
52
51
  return false;
@@ -55,73 +54,45 @@ let MarqueeMouseTool = MarqueeMouseTool_1 = class MarqueeMouseTool extends base_
55
54
  exports.MarqueeMouseTool = MarqueeMouseTool;
56
55
  MarqueeMouseTool.ID = 'glsp.marquee-mouse-tool';
57
56
  __decorate([
58
- (0, inversify_1.inject)(sprotty_1.TYPES.DOMHelper),
59
- __metadata("design:type", sprotty_1.DOMHelper)
60
- ], MarqueeMouseTool.prototype, "domHelper", void 0);
61
- __decorate([
62
- (0, inversify_1.inject)(sprotty_1.TYPES.IMarqueeBehavior),
63
- (0, inversify_1.optional)(),
64
- __metadata("design:type", Object)
65
- ], MarqueeMouseTool.prototype, "marqueeBehavior", void 0);
57
+ (0, inversify_1.inject)(marquee_behavior_1.MarqueeUtil),
58
+ __metadata("design:type", marquee_behavior_1.MarqueeUtil)
59
+ ], MarqueeMouseTool.prototype, "marqueeUtil", void 0);
66
60
  exports.MarqueeMouseTool = MarqueeMouseTool = MarqueeMouseTool_1 = __decorate([
67
61
  (0, inversify_1.injectable)()
68
62
  ], MarqueeMouseTool);
69
63
  class MarqueeMouseListener extends drag_aware_mouse_listener_1.DragAwareMouseListener {
70
- constructor(domHelper, root, marqueeBehavior) {
64
+ constructor(root, marqueeUtil) {
71
65
  super();
66
+ this.marqueeUtil = marqueeUtil;
72
67
  this.isActive = false;
73
- this.domHelper = domHelper;
74
- this.marqueeUtil = new marquee_behavior_1.MarqueeUtil(marqueeBehavior);
75
- this.nodes = Array.from(root.index
76
- .all()
77
- .map(e => e)
78
- .filter(e => (0, sprotty_1.isSelectable)(e))
79
- .filter(e => e instanceof sprotty_1.GNode));
80
- const sEdges = Array.from(root.index
81
- .all()
82
- .filter(e => e instanceof model_1.GEdge)
83
- .filter(e => (0, sprotty_1.isSelectable)(e))
84
- .map(e => e.id));
85
- this.edges = Array.from(document.querySelectorAll('g')).filter(e => sEdges.includes(this.domHelper.findSModelIdByDOMElement(e)));
68
+ // pre-calculate all markable node and edges to improve performance
69
+ this.nodes = this.marqueeUtil.getMarkableNodes(root);
70
+ this.edges = this.marqueeUtil.getMarkableEdges(root);
86
71
  }
87
72
  mouseDown(target, event) {
88
73
  this.isActive = true;
89
74
  this.marqueeUtil.updateStartPoint((0, viewpoint_util_1.getAbsolutePosition)(target, event));
90
75
  if (event.ctrlKey) {
91
- this.previouslySelected = Array.from(target.root.index
92
- .all()
93
- .filter(gmodel_util_1.isSelectableAndBoundsAware)
94
- .map(e => e)
95
- .filter(e => (0, sprotty_1.isSelected)(e))
96
- .map(e => e.id));
76
+ this.previouslySelected = (0, gmodel_util_1.getMatchingElements)(target.index, (0, sprotty_1.typeGuard)(gmodel_util_1.isSelectableAndBoundsAware, sprotty_1.isSelected)).map(e => e.id);
97
77
  }
98
78
  return [];
99
79
  }
100
80
  mouseMove(target, event) {
101
81
  this.marqueeUtil.updateCurrentPoint((0, viewpoint_util_1.getAbsolutePosition)(target, event));
102
82
  if (this.isActive) {
103
- const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isNodeMarked((0, viewpoint_util_1.toAbsoluteBounds)(e))).map(e => e.id);
104
- const edgeIdsSelected = this.edges.filter(e => this.isEdgeMarked(e)).map(e => this.domHelper.findSModelIdByDOMElement(e));
105
- const selected = nodeIdsSelected.concat(edgeIdsSelected);
106
- return [sprotty_1.SelectAction.setSelection(selected.concat(this.previouslySelected)), this.marqueeUtil.drawMarqueeAction()];
83
+ const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isMarked(e)).map(e => e.id);
84
+ const edgeIdsSelected = this.edges.filter(e => this.marqueeUtil.isMarked(e)).map(e => e.id);
85
+ const currentSelected = nodeIdsSelected.concat(edgeIdsSelected);
86
+ const selection = currentSelected.concat(this.previouslySelected);
87
+ return [sprotty_1.SelectAction.setSelection(selection), this.marqueeUtil.drawMarqueeAction()];
107
88
  }
108
89
  return [];
109
90
  }
110
- mouseUp(_target, event) {
91
+ mouseUp(target, event) {
111
92
  this.isActive = false;
112
- if (event.shiftKey) {
113
- return [marquee_tool_feedback_1.RemoveMarqueeAction.create()];
114
- }
115
- return [marquee_tool_feedback_1.RemoveMarqueeAction.create(), tool_1.EnableDefaultToolsAction.create()];
116
- }
117
- isEdgeMarked(element) {
118
- if (!element.getAttribute('transform')) {
119
- if (element.children[0]) {
120
- const path = element.children[0].getAttribute('d');
121
- return this.marqueeUtil.isEdgePathMarked(path);
122
- }
123
- }
124
- return false;
93
+ return this.marqueeUtil.isContinuousMode(target, event)
94
+ ? [marquee_tool_feedback_1.RemoveMarqueeAction.create()]
95
+ : [marquee_tool_feedback_1.RemoveMarqueeAction.create(), tool_1.EnableDefaultToolsAction.create()];
125
96
  }
126
97
  }
127
98
  exports.MarqueeMouseListener = MarqueeMouseListener;
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-mouse-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-mouse-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marquee-mouse-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-mouse-tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-selection-module.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-selection-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,aAAa,EAAiE,MAAM,uBAAuB,CAAC;AAOrH,eAAO,MAAM,0BAA0B,eAYtC,CAAC"}
1
+ {"version":3,"file":"marquee-selection-module.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-selection-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,aAAa,EAAiE,MAAM,uBAAuB,CAAC;AAQrH,eAAO,MAAM,0BAA0B,eAatC,CAAC"}
@@ -22,8 +22,10 @@ const marquee_tool_1 = require("./marquee-tool");
22
22
  const marquee_tool_feedback_1 = require("./marquee-tool-feedback");
23
23
  const model_1 = require("./model");
24
24
  const view_1 = require("./view");
25
+ const marquee_behavior_1 = require("./marquee-behavior");
25
26
  exports.marqueeSelectionToolModule = new sprotty_1.FeatureModule((bind, unbind, isBound, rebind) => {
26
27
  const context = { bind, unbind, isBound, rebind };
28
+ context.bind(marquee_behavior_1.MarqueeUtil).toSelf().inSingletonScope();
27
29
  (0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.IDefaultTool, marquee_tool_1.MarqueeTool);
28
30
  (0, sprotty_1.bindAsService)(context, sprotty_1.TYPES.ITool, marquee_mouse_tool_1.MarqueeMouseTool);
29
31
  (0, sprotty_1.configureCommand)(context, marquee_tool_feedback_1.DrawMarqueeCommand);
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-selection-module.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-selection-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAAqH;AACrH,6DAAwD;AACxD,iDAA6C;AAC7C,mEAA4F;AAC5F,mCAAsC;AACtC,iCAAqC;AAExB,QAAA,0BAA0B,GAAG,IAAI,uBAAa,CACvD,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClD,IAAA,uBAAa,EAAC,OAAO,EAAE,eAAK,CAAC,YAAY,EAAE,0BAAW,CAAC,CAAC;IACxD,IAAA,uBAAa,EAAC,OAAO,EAAE,eAAK,CAAC,KAAK,EAAE,qCAAgB,CAAC,CAAC;IAEtD,IAAA,0BAAgB,EAAC,OAAO,EAAE,0CAAkB,CAAC,CAAC;IAC9C,IAAA,0BAAgB,EAAC,OAAO,EAAE,4CAAoB,CAAC,CAAC;IAEhD,IAAA,+BAAqB,EAAC,OAAO,EAAE,+BAAO,EAAE,mBAAW,EAAE,kBAAW,CAAC,CAAC;AACtE,CAAC,EACD,EAAE,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAChD,CAAC"}
1
+ {"version":3,"file":"marquee-selection-module.js","sourceRoot":"","sources":["../../../../src/features/tools/marquee-selection/marquee-selection-module.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAAqH;AACrH,6DAAwD;AACxD,iDAA6C;AAC7C,mEAA4F;AAC5F,mCAAsC;AACtC,iCAAqC;AACrC,yDAAiD;AAEpC,QAAA,0BAA0B,GAAG,IAAI,uBAAa,CACvD,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,8BAAW,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAA,uBAAa,EAAC,OAAO,EAAE,eAAK,CAAC,YAAY,EAAE,0BAAW,CAAC,CAAC;IACxD,IAAA,uBAAa,EAAC,OAAO,EAAE,eAAK,CAAC,KAAK,EAAE,qCAAgB,CAAC,CAAC;IAEtD,IAAA,0BAAgB,EAAC,OAAO,EAAE,0CAAkB,CAAC,CAAC;IAC9C,IAAA,0BAAgB,EAAC,OAAO,EAAE,4CAAoB,CAAC,CAAC;IAEhD,IAAA,+BAAqB,EAAC,OAAO,EAAE,+BAAO,EAAE,mBAAW,EAAE,kBAAW,CAAC,CAAC;AACtE,CAAC,EACD,EAAE,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAChD,CAAC"}
@@ -16,6 +16,7 @@
16
16
  import { Action, Args, Disposable, GModelElement, GhostElement, IModelFactory, TriggerNodeCreationAction } from '@eclipse-glsp/sprotty';
17
17
  import '../../../../css/ghost-element.css';
18
18
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
19
+ import { EditorContextService } from '../../../base/editor-context-service';
19
20
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
20
21
  import { MoveableElement } from '../../../utils/gmodel-util';
21
22
  import { MouseTrackingElementPositionListener, PositioningTool } from '../../element-template/mouse-tracking-element-position-listener';
@@ -42,7 +43,7 @@ export interface ContainerPositioningTool extends PositioningTool {
42
43
  export declare class NodeInsertTrackingListener extends MouseTrackingElementPositionListener {
43
44
  protected elementTypeId: string;
44
45
  protected tool: ContainerPositioningTool;
45
- constructor(elementId: string, elementTypeId: string, tool: ContainerPositioningTool, cursorPosition?: 'top-left' | 'middle');
46
+ constructor(elementId: string, elementTypeId: string, tool: ContainerPositioningTool, cursorPosition?: 'top-left' | 'middle', editorContext?: EditorContextService);
46
47
  protected addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void;
47
48
  }
48
49
  export declare class NodeCreationToolMouseListener extends DragAwareMouseListener {
@@ -1 +1 @@
1
- {"version":3,"file":"node-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ let NodeCreationTool = NodeCreationTool_1 = class NodeCreationTool extends base_
58
58
  return new insert_indicator_1.InsertIndicator();
59
59
  }
60
60
  createGhostElementTracker(ghostElement, position) {
61
- const trackingListener = new NodeInsertTrackingListener((0, add_template_element_1.getTemplateElementId)(ghostElement.template), this.triggerAction.elementTypeId, this, position);
61
+ const trackingListener = new NodeInsertTrackingListener((0, add_template_element_1.getTemplateElementId)(ghostElement.template), this.triggerAction.elementTypeId, this, position, this.editorContext);
62
62
  return new sprotty_1.DisposableCollection(trackingListener, this.mouseTool.registerListener(trackingListener));
63
63
  }
64
64
  createNodeCreationListener(ghostElement) {
@@ -87,8 +87,8 @@ exports.NodeCreationTool = NodeCreationTool = NodeCreationTool_1 = __decorate([
87
87
  (0, inversify_1.injectable)()
88
88
  ], NodeCreationTool);
89
89
  class NodeInsertTrackingListener extends mouse_tracking_element_position_listener_1.MouseTrackingElementPositionListener {
90
- constructor(elementId, elementTypeId, tool, cursorPosition = 'top-left') {
91
- super(elementId, tool, cursorPosition);
90
+ constructor(elementId, elementTypeId, tool, cursorPosition = 'top-left', editorContext) {
91
+ super(elementId, tool, cursorPosition, editorContext);
92
92
  this.elementTypeId = elementTypeId;
93
93
  this.tool = tool;
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/node-creation/node-creation-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "2.2.0-next.359+763becc",
3
+ "version": "2.2.0-next.362+92f042a",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -46,7 +46,7 @@
46
46
  "watch": "tsc -w"
47
47
  },
48
48
  "dependencies": {
49
- "@eclipse-glsp/sprotty": "2.2.0-next.359+763becc",
49
+ "@eclipse-glsp/sprotty": "2.2.0-next.362+92f042a",
50
50
  "autocompleter": "^9.1.2",
51
51
  "file-saver": "^2.0.5",
52
52
  "lodash": "4.17.21",
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "763becc664a2179e6811aa625cbf2a7a47abd547"
66
+ "gitHead": "92f042a7a16464c40192bf74639cae7e293aa018"
67
67
  }
@@ -14,8 +14,19 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { Action, Dimension, GModelElement, MoveAction, Point, isBoundsAware, isMoveable } from '@eclipse-glsp/sprotty';
17
+ import {
18
+ Action,
19
+ Dimension,
20
+ DisposableCollection,
21
+ GModelElement,
22
+ GModelRoot,
23
+ MoveAction,
24
+ Point,
25
+ isBoundsAware,
26
+ isMoveable
27
+ } from '@eclipse-glsp/sprotty';
18
28
  import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
29
+ import { EditorContextService } from '../../base/editor-context-service';
19
30
  import { CSS_HIDDEN, ModifyCSSFeedbackAction } from '../../base/feedback/css-feedback';
20
31
  import { FeedbackEmitter } from '../../base/feedback/feedback-emitter';
21
32
  import { MoveableElement } from '../../utils/gmodel-util';
@@ -32,15 +43,22 @@ export interface PositioningTool extends FeedbackAwareTool {
32
43
  export class MouseTrackingElementPositionListener extends DragAwareMouseListener {
33
44
  protected moveGhostFeedback: FeedbackEmitter;
34
45
  protected tracker: ChangeBoundsTracker;
46
+ protected toDispose = new DisposableCollection();
35
47
 
36
48
  constructor(
37
49
  protected elementId: string,
38
50
  protected tool: PositioningTool,
39
- protected cursorPosition: 'top-left' | 'middle' = 'top-left'
51
+ protected cursorPosition: 'top-left' | 'middle' = 'top-left',
52
+ protected editorContext?: EditorContextService
40
53
  ) {
41
54
  super();
42
55
  this.tracker = this.tool.changeBoundsManager.createTracker();
43
56
  this.moveGhostFeedback = this.tool.createFeedbackEmitter();
57
+ this.toDispose.push(this.moveGhostFeedback);
58
+ const modelRootChangedListener = editorContext?.onModelRootChanged(newRoot => this.modelRootChanged(newRoot));
59
+ if (modelRootChangedListener) {
60
+ this.toDispose.push(modelRootChangedListener);
61
+ }
44
62
  }
45
63
 
46
64
  protected getTrackedElement(target: GModelElement, event: MouseEvent): MoveableElement | undefined {
@@ -92,8 +110,13 @@ export class MouseTrackingElementPositionListener extends DragAwareMouseListener
92
110
  this.tool.changeBoundsManager.addMoveFeedback(this.moveGhostFeedback, move, ctx, event);
93
111
  }
94
112
 
113
+ protected modelRootChanged(root: Readonly<GModelRoot>): void {
114
+ // stop the tracking once we receive a new model root and ensure proper alignment with next next mouse move
115
+ this.tracker.stopTracking();
116
+ }
117
+
95
118
  override dispose(): void {
96
- this.moveGhostFeedback.dispose();
119
+ this.toDispose.dispose();
97
120
  super.dispose();
98
121
  }
99
122
  }
@@ -14,12 +14,13 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
+ import { DOMHelper } from '@eclipse-glsp/sprotty';
17
18
  import { expect } from 'chai';
18
19
  import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
19
20
 
20
21
  describe('MarqueeUtil', () => {
21
22
  function initUtil(marqueeBehavior?: IMarqueeBehavior): MarqueeUtil {
22
- const util = new MarqueeUtil(marqueeBehavior);
23
+ const util = new MarqueeUtil(marqueeBehavior, new DOMHelper());
23
24
  util.updateStartPoint({ x: 0, y: 0 });
24
25
  util.updateCurrentPoint({ x: 0, y: 0 });
25
26
  return util;
@@ -14,7 +14,24 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { Bounds, Point, PointToPointLine } from '@eclipse-glsp/sprotty';
17
+ import {
18
+ Bounds,
19
+ DOMHelper,
20
+ GModelElement,
21
+ GModelRoot,
22
+ GNode,
23
+ Point,
24
+ PointToPointLine,
25
+ TYPES,
26
+ TypeGuard,
27
+ isSelectable,
28
+ toTypeGuard,
29
+ typeGuard
30
+ } from '@eclipse-glsp/sprotty';
31
+ import { inject, injectable, optional } from 'inversify';
32
+ import { GEdge } from '../../../model';
33
+ import { BoundsAwareModelElement, getMatchingElements, isSelectableAndBoundsAware } from '../../../utils/gmodel-util';
34
+ import { toAbsoluteBounds } from '../../../utils/viewpoint-util';
18
35
  import { DrawMarqueeAction } from './marquee-tool-feedback';
19
36
 
20
37
  export interface IMarqueeBehavior {
@@ -22,17 +39,36 @@ export interface IMarqueeBehavior {
22
39
  readonly entireEdge: boolean;
23
40
  }
24
41
 
42
+ @injectable()
25
43
  export class MarqueeUtil {
26
44
  protected startPoint: Point;
27
45
  protected currentPoint: Point;
28
- protected marqueeBehavior: IMarqueeBehavior;
29
46
 
30
- constructor(marqueeBehavior?: IMarqueeBehavior) {
31
- if (marqueeBehavior) {
32
- this.marqueeBehavior = marqueeBehavior;
33
- } else {
34
- this.marqueeBehavior = { entireElement: false, entireEdge: false };
35
- }
47
+ constructor(
48
+ @inject(TYPES.IMarqueeBehavior)
49
+ @optional()
50
+ protected marqueeBehavior: IMarqueeBehavior = { entireElement: false, entireEdge: false },
51
+ @inject(TYPES.DOMHelper) protected domHelper: DOMHelper
52
+ ) {}
53
+
54
+ isContinuousMode(element: GModelElement, event: MouseEvent): boolean {
55
+ return event.shiftKey;
56
+ }
57
+
58
+ getMarkableNodes(root: GModelRoot): BoundsAwareModelElement[] {
59
+ return getMatchingElements(root.index, this.isMarkableNode());
60
+ }
61
+
62
+ protected isMarkableNode(): TypeGuard<BoundsAwareModelElement> {
63
+ return typeGuard(toTypeGuard(GNode), isSelectableAndBoundsAware);
64
+ }
65
+
66
+ getMarkableEdges(root: GModelRoot): GEdge[] {
67
+ return getMatchingElements(root.index, this.isMarkableEdge());
68
+ }
69
+
70
+ protected isMarkableEdge(): TypeGuard<GEdge> {
71
+ return typeGuard(toTypeGuard(GEdge), isSelectable);
36
72
  }
37
73
 
38
74
  updateStartPoint(position: Point): void {
@@ -43,10 +79,32 @@ export class MarqueeUtil {
43
79
  this.currentPoint = position;
44
80
  }
45
81
 
82
+ isMarked(element: BoundsAwareModelElement | GEdge): boolean {
83
+ return element instanceof GEdge ? this.isMarkedEdge(element) : this.isMarkedNode(element);
84
+ }
85
+
46
86
  drawMarqueeAction(): DrawMarqueeAction {
47
87
  return DrawMarqueeAction.create({ startPoint: this.startPoint, endPoint: this.currentPoint });
48
88
  }
49
89
 
90
+ protected isMarkedEdge(edge: GEdge): boolean {
91
+ const domId = this.domHelper.createUniqueDOMElementId(edge);
92
+ const domEdge = document.getElementById(domId) as unknown as SVGElement | undefined;
93
+ if (!domEdge || domEdge.getAttribute('transform') || !domEdge.children[0]) {
94
+ return false;
95
+ }
96
+ const path = domEdge.children[0].getAttribute('d');
97
+ return this.isEdgePathMarked(path);
98
+ }
99
+
100
+ protected isMarkedNode(node: BoundsAwareModelElement): boolean {
101
+ return this.isNodeMarked(this.getNodeBounds(node));
102
+ }
103
+
104
+ protected getNodeBounds(node: BoundsAwareModelElement): Bounds {
105
+ return toAbsoluteBounds(node);
106
+ }
107
+
50
108
  isEdgePathMarked(path: string | null): boolean {
51
109
  if (!path) {
52
110
  return false;
@@ -13,35 +13,23 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import {
17
- Action,
18
- DOMHelper,
19
- GModelElement,
20
- GModelRoot,
21
- GNode,
22
- KeyListener,
23
- SelectAction,
24
- TYPES,
25
- isSelectable,
26
- isSelected
27
- } from '@eclipse-glsp/sprotty';
28
- import { inject, injectable, optional } from 'inversify';
16
+ import { Action, GModelElement, GModelRoot, KeyListener, SelectAction, isSelected, typeGuard } from '@eclipse-glsp/sprotty';
17
+ import { inject, injectable } from 'inversify';
29
18
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
30
19
  import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
31
20
  import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
32
21
  import { GEdge } from '../../../model';
33
- import { BoundsAwareModelElement, SelectableBoundsAware, isSelectableAndBoundsAware } from '../../../utils/gmodel-util';
34
- import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
22
+ import { BoundsAwareModelElement, getMatchingElements, isSelectableAndBoundsAware } from '../../../utils/gmodel-util';
23
+ import { getAbsolutePosition } from '../../../utils/viewpoint-util';
35
24
  import { BaseEditTool } from '../base-tools';
36
- import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
25
+ import { MarqueeUtil } from './marquee-behavior';
37
26
  import { RemoveMarqueeAction } from './marquee-tool-feedback';
38
27
 
39
28
  @injectable()
40
29
  export class MarqueeMouseTool extends BaseEditTool {
41
30
  static ID = 'glsp.marquee-mouse-tool';
42
31
 
43
- @inject(TYPES.DOMHelper) protected domHelper: DOMHelper;
44
- @inject(TYPES.IMarqueeBehavior) @optional() protected marqueeBehavior: IMarqueeBehavior;
32
+ @inject(MarqueeUtil) protected marqueeUtil: MarqueeUtil;
45
33
 
46
34
  protected shiftKeyListener: ShiftKeyListener = new ShiftKeyListener();
47
35
 
@@ -51,7 +39,7 @@ export class MarqueeMouseTool extends BaseEditTool {
51
39
 
52
40
  enable(): void {
53
41
  this.toDisposeOnDisable.push(
54
- this.mouseTool.registerListener(new MarqueeMouseListener(this.domHelper, this.editorContext.modelRoot, this.marqueeBehavior)),
42
+ this.mouseTool.registerListener(new MarqueeMouseListener(this.editorContext.modelRoot, this.marqueeUtil)),
55
43
  this.keyTool.registerListener(this.shiftKeyListener),
56
44
  this.createFeedbackEmitter().add(cursorFeedbackAction(CursorCSS.MARQUEE), cursorFeedbackAction()).submit()
57
45
  );
@@ -63,46 +51,26 @@ export class MarqueeMouseTool extends BaseEditTool {
63
51
  }
64
52
 
65
53
  export class MarqueeMouseListener extends DragAwareMouseListener {
66
- protected domHelper: DOMHelper;
67
- protected marqueeUtil: MarqueeUtil;
68
54
  protected nodes: BoundsAwareModelElement[];
69
- protected edges: SVGGElement[];
55
+ protected edges: GEdge[];
70
56
  protected previouslySelected: string[];
71
57
  protected isActive = false;
72
58
 
73
- constructor(domHelper: DOMHelper, root: GModelRoot, marqueeBehavior: IMarqueeBehavior | undefined) {
59
+ constructor(
60
+ root: GModelRoot,
61
+ protected marqueeUtil: MarqueeUtil
62
+ ) {
74
63
  super();
75
- this.domHelper = domHelper;
76
- this.marqueeUtil = new MarqueeUtil(marqueeBehavior);
77
- this.nodes = Array.from(
78
- root.index
79
- .all()
80
- .map(e => e as BoundsAwareModelElement)
81
- .filter(e => isSelectable(e))
82
- .filter(e => e instanceof GNode)
83
- );
84
- const sEdges = Array.from(
85
- root.index
86
- .all()
87
- .filter(e => e instanceof GEdge)
88
- .filter(e => isSelectable(e))
89
- .map(e => e.id)
90
- );
91
- this.edges = Array.from(document.querySelectorAll('g')).filter(e => sEdges.includes(this.domHelper.findSModelIdByDOMElement(e)));
64
+ // pre-calculate all markable node and edges to improve performance
65
+ this.nodes = this.marqueeUtil.getMarkableNodes(root);
66
+ this.edges = this.marqueeUtil.getMarkableEdges(root);
92
67
  }
93
68
 
94
69
  override mouseDown(target: GModelElement, event: MouseEvent): Action[] {
95
70
  this.isActive = true;
96
71
  this.marqueeUtil.updateStartPoint(getAbsolutePosition(target, event));
97
72
  if (event.ctrlKey) {
98
- this.previouslySelected = Array.from(
99
- target.root.index
100
- .all()
101
- .filter(isSelectableAndBoundsAware)
102
- .map(e => e as SelectableBoundsAware)
103
- .filter(e => isSelected(e))
104
- .map(e => e.id)
105
- );
73
+ this.previouslySelected = getMatchingElements(target.index, typeGuard(isSelectableAndBoundsAware, isSelected)).map(e => e.id);
106
74
  }
107
75
  return [];
108
76
  }
@@ -110,30 +78,20 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
110
78
  override mouseMove(target: GModelElement, event: MouseEvent): Action[] {
111
79
  this.marqueeUtil.updateCurrentPoint(getAbsolutePosition(target, event));
112
80
  if (this.isActive) {
113
- const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isNodeMarked(toAbsoluteBounds(e))).map(e => e.id);
114
- const edgeIdsSelected = this.edges.filter(e => this.isEdgeMarked(e)).map(e => this.domHelper.findSModelIdByDOMElement(e));
115
- const selected = nodeIdsSelected.concat(edgeIdsSelected);
116
- return [SelectAction.setSelection(selected.concat(this.previouslySelected)), this.marqueeUtil.drawMarqueeAction()];
81
+ const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isMarked(e)).map(e => e.id);
82
+ const edgeIdsSelected = this.edges.filter(e => this.marqueeUtil.isMarked(e)).map(e => e.id);
83
+ const currentSelected = nodeIdsSelected.concat(edgeIdsSelected);
84
+ const selection = currentSelected.concat(this.previouslySelected);
85
+ return [SelectAction.setSelection(selection), this.marqueeUtil.drawMarqueeAction()];
117
86
  }
118
87
  return [];
119
88
  }
120
89
 
121
- override mouseUp(_target: GModelElement, event: MouseEvent): Action[] {
90
+ override mouseUp(target: GModelElement, event: MouseEvent): Action[] {
122
91
  this.isActive = false;
123
- if (event.shiftKey) {
124
- return [RemoveMarqueeAction.create()];
125
- }
126
- return [RemoveMarqueeAction.create(), EnableDefaultToolsAction.create()];
127
- }
128
-
129
- isEdgeMarked(element: SVGElement): boolean {
130
- if (!element.getAttribute('transform')) {
131
- if (element.children[0]) {
132
- const path = element.children[0].getAttribute('d');
133
- return this.marqueeUtil.isEdgePathMarked(path);
134
- }
135
- }
136
- return false;
92
+ return this.marqueeUtil.isContinuousMode(target, event)
93
+ ? [RemoveMarqueeAction.create()]
94
+ : [RemoveMarqueeAction.create(), EnableDefaultToolsAction.create()];
137
95
  }
138
96
  }
139
97
 
@@ -19,10 +19,12 @@ import { MarqueeTool } from './marquee-tool';
19
19
  import { DrawMarqueeCommand, MARQUEE, RemoveMarqueeCommand } from './marquee-tool-feedback';
20
20
  import { MarqueeNode } from './model';
21
21
  import { MarqueeView } from './view';
22
+ import { MarqueeUtil } from './marquee-behavior';
22
23
 
23
24
  export const marqueeSelectionToolModule = new FeatureModule(
24
25
  (bind, unbind, isBound, rebind) => {
25
26
  const context = { bind, unbind, isBound, rebind };
27
+ context.bind(MarqueeUtil).toSelf().inSingletonScope();
26
28
  bindAsService(context, TYPES.IDefaultTool, MarqueeTool);
27
29
  bindAsService(context, TYPES.ITool, MarqueeMouseTool);
28
30
 
@@ -34,6 +34,7 @@ import {
34
34
  import { inject, injectable } from 'inversify';
35
35
  import '../../../../css/ghost-element.css';
36
36
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
37
+ import { EditorContextService } from '../../../base/editor-context-service';
37
38
  import { CSS_GHOST_ELEMENT, CSS_HIDDEN, CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
38
39
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
39
40
  import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
@@ -77,7 +78,8 @@ export class NodeCreationTool extends BaseCreationTool<TriggerNodeCreationAction
77
78
  getTemplateElementId(ghostElement.template),
78
79
  this.triggerAction.elementTypeId,
79
80
  this,
80
- position
81
+ position,
82
+ this.editorContext
81
83
  );
82
84
  return new DisposableCollection(trackingListener, this.mouseTool.registerListener(trackingListener));
83
85
  }
@@ -101,9 +103,10 @@ export class NodeInsertTrackingListener extends MouseTrackingElementPositionList
101
103
  elementId: string,
102
104
  protected elementTypeId: string,
103
105
  protected override tool: ContainerPositioningTool,
104
- cursorPosition: 'top-left' | 'middle' = 'top-left'
106
+ cursorPosition: 'top-left' | 'middle' = 'top-left',
107
+ editorContext?: EditorContextService
105
108
  ) {
106
- super(elementId, tool, cursorPosition);
109
+ super(elementId, tool, cursorPosition, editorContext);
107
110
  }
108
111
 
109
112
  protected override addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void {