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

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.
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, AnchorComputerRegistry, GModelElement, TriggerEdgeCreationAction } from '@eclipse-glsp/sprotty';
16
+ import { Action, AnchorComputerRegistry, Args, GModelElement, TriggerEdgeCreationAction } from '@eclipse-glsp/sprotty';
17
17
  import { GLSPActionDispatcher } from '../../../base/action-dispatcher';
18
18
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
19
19
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
@@ -51,7 +51,18 @@ export declare class EdgeCreationToolMouseListener extends DragAwareMouseListene
51
51
  protected cursorFeedback: FeedbackEmitter;
52
52
  protected feedbackEdgeFeedback: FeedbackEmitter;
53
53
  constructor(triggerAction: TriggerEdgeCreationAction, actionDispatcher: GLSPActionDispatcher, typeHintProvider: ITypeHintProvider, tool: EdgeCreationTool, dragSensitivity?: number | undefined);
54
- nonDraggingMouseUp(_element: GModelElement, event: MouseEvent): Action[];
54
+ nonDraggingMouseUp(element: GModelElement, event: MouseEvent): Action[];
55
+ /**
56
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
57
+ * If continuous mode is enabled, the tool will stay after a successful creation.
58
+ * The user can then create more elements of the same type without having to re-trigger the tool.
59
+ * By default, continuous mode is enabled if the user holds the CTRL key.
60
+ * @param element the current model element
61
+ * @param event
62
+ */
63
+ protected isContinuousMode(element: GModelElement, event: MouseEvent): boolean;
64
+ protected getCreateOperation(element: GModelElement, event: MouseEvent, sourceElementId: string, targetElementId: string): Action;
65
+ protected getCreateEdgeOperationArgs(ctx: GModelElement, event: MouseEvent): Args | undefined;
55
66
  protected isSourceSelected(): boolean;
56
67
  protected isTargetSelected(): boolean;
57
68
  mouseOver(target: GModelElement, event: MouseEvent): Action[];
@@ -1 +1 @@
1
- {"version":3,"file":"edge-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/edge-creation/edge-creation-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,sBAAsB,EAEtB,aAAa,EAGb,yBAAyB,EAI5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD;;GAEG;AACH,qBACa,gBAAiB,SAAQ,gBAAgB,CAAC,yBAAyB,CAAC;IAC7E,MAAM,CAAC,EAAE,SAAsB;IAEC,SAAS,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAC/C,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAErD,SAAS,CAAC,eAAe,sCAAgC;IAEzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,IAAI;IAMhB,SAAS,CAAC,YAAY,IAAI,IAAI;IAO9B,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAWlC,SAAS,CAAC,iBAAiB,IAAI,IAAI;CAItC;AAED,qBAAa,6BAA8B,SAAQ,sBAAsB;IAWjE,SAAS,CAAC,aAAa,EAAE,yBAAyB;IAClD,SAAS,CAAC,gBAAgB,EAAE,oBAAoB;IAChD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB;IAC7C,SAAS,CAAC,IAAI,EAAE,gBAAgB;IAChC,SAAS,CAAC,eAAe,CAAC;IAd9B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACxC,SAAS,CAAC,aAAa,UAAS;IAChC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;IAC3B,SAAS,CAAC,mBAAmB,UAAS;IACtC,SAAS,CAAC,cAAc,EAAE,eAAe,CAAC;IAC1C,SAAS,CAAC,oBAAoB,EAAE,eAAe,CAAC;gBAGlC,aAAa,EAAE,yBAAyB,EACxC,gBAAgB,EAAE,oBAAoB,EACtC,gBAAgB,EAAE,iBAAiB,EACnC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,oBAAQ;IAS7B,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAsCjF,SAAS,CAAC,gBAAgB,IAAI,OAAO;IAIrC,SAAS,CAAC,gBAAgB,IAAI,OAAO;IAI5B,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAsBtE,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAUtC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO;IA2B5F,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAKvC,OAAO,IAAI,IAAI;CAS3B"}
1
+ {"version":3,"file":"edge-creation-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/tools/edge-creation/edge-creation-tool.ts"],"names":[],"mappings":"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"}
@@ -99,7 +99,7 @@ class EdgeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
99
99
  this.cursorFeedback = tool.createFeedbackEmitter();
100
100
  this.feedbackEdgeFeedback = tool.createFeedbackEmitter();
101
101
  }
102
- nonDraggingMouseUp(_element, event) {
102
+ nonDraggingMouseUp(element, event) {
103
103
  const result = [];
104
104
  if (event.button === 0) {
105
105
  if (!this.isSourceSelected()) {
@@ -114,13 +114,8 @@ class EdgeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
114
114
  this.target = this.currentTarget.id;
115
115
  }
116
116
  if (this.source && this.target) {
117
- result.push(sprotty_1.CreateEdgeOperation.create({
118
- elementTypeId: this.triggerAction.elementTypeId,
119
- sourceElementId: this.source,
120
- targetElementId: this.target,
121
- args: this.triggerAction.args
122
- }));
123
- if (!(0, sprotty_1.isCtrlOrCmd)(event)) {
117
+ result.push(this.getCreateOperation(element, event, this.source, this.target));
118
+ if (!this.isContinuousMode(element, event)) {
124
119
  result.push(tool_1.EnableDefaultToolsAction.create());
125
120
  }
126
121
  else {
@@ -134,6 +129,28 @@ class EdgeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
134
129
  }
135
130
  return result;
136
131
  }
132
+ /**
133
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
134
+ * If continuous mode is enabled, the tool will stay after a successful creation.
135
+ * The user can then create more elements of the same type without having to re-trigger the tool.
136
+ * By default, continuous mode is enabled if the user holds the CTRL key.
137
+ * @param element the current model element
138
+ * @param event
139
+ */
140
+ isContinuousMode(element, event) {
141
+ return (0, sprotty_1.isCtrlOrCmd)(event);
142
+ }
143
+ getCreateOperation(element, event, sourceElementId, targetElementId) {
144
+ return sprotty_1.CreateEdgeOperation.create({
145
+ elementTypeId: this.triggerAction.elementTypeId,
146
+ sourceElementId,
147
+ targetElementId,
148
+ args: this.getCreateEdgeOperationArgs(element, event)
149
+ });
150
+ }
151
+ getCreateEdgeOperationArgs(ctx, event) {
152
+ return Object.assign({}, this.triggerAction.args);
153
+ }
137
154
  isSourceSelected() {
138
155
  return this.source !== undefined;
139
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edge-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/edge-creation/edge-creation-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge-creation-tool.js","sourceRoot":"","sources":["../../../../src/features/tools/edge-creation/edge-creation-tool.ts"],"names":[],"mappings":"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"}
@@ -36,10 +36,13 @@ export declare class NodeCreationTool extends BaseCreationTool<TriggerNodeCreati
36
36
  protected createNodeCreationListener(ghostElement: GhostElement): Disposable;
37
37
  protected createNodeCreationCursorFeedback(): FeedbackEmitter;
38
38
  }
39
+ export interface ContainerPositioningTool extends PositioningTool {
40
+ readonly containerManager: ContainerManager;
41
+ }
39
42
  export declare class NodeInsertTrackingListener extends MouseTrackingElementPositionListener {
40
43
  protected elementTypeId: string;
41
- protected tool: NodeCreationTool;
42
- constructor(elementId: string, elementTypeId: string, tool: NodeCreationTool, cursorPosition?: 'top-left' | 'middle');
44
+ protected tool: ContainerPositioningTool;
45
+ constructor(elementId: string, elementTypeId: string, tool: ContainerPositioningTool, cursorPosition?: 'top-left' | 'middle');
43
46
  protected addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void;
44
47
  }
45
48
  export declare class NodeCreationToolMouseListener extends DragAwareMouseListener {
@@ -52,6 +55,16 @@ export declare class NodeCreationToolMouseListener extends DragAwareMouseListene
52
55
  constructor(triggerAction: TriggerNodeCreationAction, tool: NodeCreationTool, ghostElement: GhostElement);
53
56
  get elementTypeId(): string;
54
57
  nonDraggingMouseUp(ctx: GModelElement, event: MouseEvent): Action[];
58
+ /**
59
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
60
+ * If continuous mode is enabled, the tool will stay after a successful creation.
61
+ * The user can then create more elements of the same type without having to re-trigger the tool.
62
+ * By default, continuous mode is enabled if the user holds the CTRL key.
63
+ * @param ctx the current model context
64
+ * @param event
65
+ */
66
+ protected isContinuousMode(ctx: GModelElement, event: MouseEvent): boolean;
67
+ protected getCreateOperation(ctx: GModelElement, event: MouseEvent, insert: TrackedInsert): Action;
55
68
  protected getCreateNodeOperationArgs(insert: TrackedInsert, ctx: GModelElement, event: MouseEvent): Args | undefined;
56
69
  protected createGhostElement(ghostElement: GhostElement): string;
57
70
  protected getGhostElement(ctx: GModelElement, event: MouseEvent): MoveableElement | undefined;
@@ -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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"}
@@ -116,17 +116,12 @@ class NodeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
116
116
  return this.triggerAction.elementTypeId;
117
117
  }
118
118
  nonDraggingMouseUp(ctx, event) {
119
- var _a;
120
119
  const result = [];
121
120
  const insert = this.getTrackedInsert(ctx, event);
122
121
  if (insert.valid) {
123
- result.push(sprotty_1.CreateNodeOperation.create(this.elementTypeId, {
124
- location: insert.location,
125
- containerId: (_a = insert.container) === null || _a === void 0 ? void 0 : _a.id,
126
- args: this.getCreateNodeOperationArgs(insert, ctx, event)
127
- }));
122
+ result.push(this.getCreateOperation(ctx, event, insert));
128
123
  }
129
- if ((0, sprotty_1.isCtrlOrCmd)(event)) {
124
+ if (this.isContinuousMode(ctx, event)) {
130
125
  // we continue in stamp mode so we keep the ghost but dispose everything else
131
126
  this.disposeAllButGhostElement();
132
127
  return result;
@@ -141,6 +136,25 @@ class NodeCreationToolMouseListener extends drag_aware_mouse_listener_1.DragAwar
141
136
  result.push(tool_1.EnableDefaultToolsAction.create());
142
137
  return result;
143
138
  }
139
+ /**
140
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
141
+ * If continuous mode is enabled, the tool will stay after a successful creation.
142
+ * The user can then create more elements of the same type without having to re-trigger the tool.
143
+ * By default, continuous mode is enabled if the user holds the CTRL key.
144
+ * @param ctx the current model context
145
+ * @param event
146
+ */
147
+ isContinuousMode(ctx, event) {
148
+ return (0, sprotty_1.isCtrlOrCmd)(event);
149
+ }
150
+ getCreateOperation(ctx, event, insert) {
151
+ var _a;
152
+ return sprotty_1.CreateNodeOperation.create(this.elementTypeId, {
153
+ location: insert.location,
154
+ containerId: (_a = insert.container) === null || _a === void 0 ? void 0 : _a.id,
155
+ args: this.getCreateNodeOperationArgs(insert, ctx, event)
156
+ });
157
+ }
144
158
  getCreateNodeOperationArgs(insert, ctx, event) {
145
159
  let args = Object.assign({}, this.triggerAction.args);
146
160
  const ghostElement = this.getGhostElement(ctx, event);
@@ -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":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,mDAiB+B;AAC/B,yCAA+C;AAC/C,6CAA2C;AAC3C,uFAAiF;AACjF,sEAAqH;AAErH,0DAA2E;AAE3E,sFAA8G;AAC9G,8HAAwI;AACxI,4FAA8F;AAC9F,8CAAiD;AACjD,kFAA6E;AAE7E,2DAAsE;AACtE,yDAAqD;AAG9C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,6BAA2C;IAA1E;;QAGO,oBAAe,GAAG,mCAAyB,CAAC,EAAE,CAAC;IAuC7D,CAAC;IAjCG,IAAI,EAAE;QACF,OAAO,kBAAgB,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;;QACJ,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,YAAY,mCAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;QACnI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC;IAES,qBAAqB;QAC3B,OAAO,IAAI,kCAAe,EAAE,CAAC;IACjC,CAAC;IAES,yBAAyB,CAAC,YAA0B,EAAE,QAA+B;QAC3F,MAAM,gBAAgB,GAAG,IAAI,0BAA0B,CACnD,IAAA,2CAAoB,EAAC,YAAY,CAAC,QAAQ,CAAC,EAC3C,IAAI,CAAC,aAAa,CAAC,aAAa,EAChC,IAAI,EACJ,QAAQ,CACX,CAAC;QACF,OAAO,IAAI,8BAAoB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC;IAES,0BAA0B,CAAC,YAA0B;QAC3D,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC/F,OAAO,IAAI,8BAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IACjG,CAAC;IAES,gCAAgC;QACtC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,IAAA,mCAAoB,EAAC,wBAAS,CAAC,aAAa,CAAC,EAAE,IAAA,mCAAoB,GAAE,CAAC,CAAC;IACnH,CAAC;;AAzCQ,4CAAgB;AAClB,mBAAE,GAAG,kBAAkB,AAArB,CAAsB;AAIO;IAArC,IAAA,kBAAM,EAAC,2CAAmB,CAAC;8BAA+B,2CAAmB;6DAAC;AAC5C;IAAlC,IAAA,kBAAM,EAAC,oCAAgB,CAAC;8BAA4B,oCAAgB;0DAAC;AACzC;IAA5B,IAAA,kBAAM,EAAC,eAAK,CAAC,aAAa,CAAC;;sDAA6B;2BAPhD,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CA0C5B;AAMD,MAAa,0BAA2B,SAAQ,+EAAoC;IAChF,YACI,SAAiB,EACP,aAAqB,EACZ,IAA8B,EACjD,iBAAwC,UAAU;QAElD,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAJ7B,kBAAa,GAAb,aAAa,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAA0B;IAIrD,CAAC;IAEkB,eAAe,CAAC,IAAiB,EAAE,GAAkB,EAAE,KAAiB;QACvF,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7F,CAAC;CACJ;AAjBD,gEAiBC;AAED,MAAa,6BAA8B,SAAQ,kDAAsB;IAKrE,YACc,aAAwC,EACxC,IAAsB,EACtB,YAA0B;QAEpC,KAAK,EAAE,CAAC;QAJE,kBAAa,GAAb,aAAa,CAA2B;QACxC,SAAI,GAAJ,IAAI,CAAkB;QACtB,iBAAY,GAAZ,YAAY,CAAc;QAGpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,IAAA,2CAAoB,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IAEQ,kBAAkB,CAAC,GAAkB,EAAE,KAAiB;QAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,6EAA6E;YAC7E,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,oFAAoF;YACpF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,+BAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACO,gBAAgB,CAAC,GAAkB,EAAE,KAAiB;QAC5D,OAAO,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAES,kBAAkB,CAAC,GAAkB,EAAE,KAAiB,EAAE,MAAqB;;QACrF,OAAO,6BAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAA,MAAM,CAAC,SAAS,0CAAE,EAAE;YACjC,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;SAC5D,CAAC,CAAC;IACP,CAAC;IAES,0BAA0B,CAAC,MAAqB,EAAE,GAAkB,EAAE,KAAiB;QAC7F,IAAI,IAAI,qBAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAA,uBAAa,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAS,CAAC,IAAI,CAAC;YAC7G,IAAI,mCACG,IAAI,KACP,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,EAClC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,EAClC,aAAa,EAAE,eAAe,CAAC,KAAK,EACpC,cAAc,EAAE,eAAe,CAAC,MAAM,GACzC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,kBAAkB,CAAC,YAA0B;QACnD,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CACzB,gDAAyB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,yBAAU,EAAE,gCAAiB,CAAC,EAAE,CAAC,EAC5F,sDAA4B,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CACrD,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,IAAA,2CAAoB,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CAAC,GAAkB,EAAE,KAAiB;QAC3D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,YAAY,IAAI,IAAA,oBAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,CAAC;IAES,gBAAgB,CAAC,GAAkB,EAAE,KAAiB;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QAChH,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACtH,CAAC;IAES,yBAAyB;QAC/B,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAEQ,OAAO;QACZ,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACrC,CAAC;CACJ;AA/GD,sEA+GC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "2.2.0-next.358+398cecf",
3
+ "version": "2.2.0-next.359+763becc",
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.358+398cecf",
49
+ "@eclipse-glsp/sprotty": "2.2.0-next.359+763becc",
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": "398cecff300762208594edadf1dea75ab42de5a3"
66
+ "gitHead": "763becc664a2179e6811aa625cbf2a7a47abd547"
67
67
  }
@@ -16,6 +16,7 @@
16
16
  import {
17
17
  Action,
18
18
  AnchorComputerRegistry,
19
+ Args,
19
20
  CreateEdgeOperation,
20
21
  GModelElement,
21
22
  RequestCheckEdgeAction,
@@ -109,7 +110,7 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
109
110
  this.feedbackEdgeFeedback = tool.createFeedbackEmitter();
110
111
  }
111
112
 
112
- override nonDraggingMouseUp(_element: GModelElement, event: MouseEvent): Action[] {
113
+ override nonDraggingMouseUp(element: GModelElement, event: MouseEvent): Action[] {
113
114
  const result: Action[] = [];
114
115
  if (event.button === 0) {
115
116
  if (!this.isSourceSelected()) {
@@ -126,15 +127,8 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
126
127
  this.target = this.currentTarget.id;
127
128
  }
128
129
  if (this.source && this.target) {
129
- result.push(
130
- CreateEdgeOperation.create({
131
- elementTypeId: this.triggerAction.elementTypeId,
132
- sourceElementId: this.source,
133
- targetElementId: this.target,
134
- args: this.triggerAction.args
135
- })
136
- );
137
- if (!isCtrlOrCmd(event)) {
130
+ result.push(this.getCreateOperation(element, event, this.source, this.target));
131
+ if (!this.isContinuousMode(element, event)) {
138
132
  result.push(EnableDefaultToolsAction.create());
139
133
  } else {
140
134
  this.dispose();
@@ -147,6 +141,31 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
147
141
  return result;
148
142
  }
149
143
 
144
+ /**
145
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
146
+ * If continuous mode is enabled, the tool will stay after a successful creation.
147
+ * The user can then create more elements of the same type without having to re-trigger the tool.
148
+ * By default, continuous mode is enabled if the user holds the CTRL key.
149
+ * @param element the current model element
150
+ * @param event
151
+ */
152
+ protected isContinuousMode(element: GModelElement, event: MouseEvent): boolean {
153
+ return isCtrlOrCmd(event);
154
+ }
155
+
156
+ protected getCreateOperation(element: GModelElement, event: MouseEvent, sourceElementId: string, targetElementId: string): Action {
157
+ return CreateEdgeOperation.create({
158
+ elementTypeId: this.triggerAction.elementTypeId,
159
+ sourceElementId,
160
+ targetElementId,
161
+ args: this.getCreateEdgeOperationArgs(element, event)
162
+ });
163
+ }
164
+
165
+ protected getCreateEdgeOperationArgs(ctx: GModelElement, event: MouseEvent): Args | undefined {
166
+ return { ...this.triggerAction.args };
167
+ }
168
+
150
169
  protected isSourceSelected(): boolean {
151
170
  return this.source !== undefined;
152
171
  }
@@ -92,11 +92,15 @@ export class NodeCreationTool extends BaseCreationTool<TriggerNodeCreationAction
92
92
  }
93
93
  }
94
94
 
95
+ export interface ContainerPositioningTool extends PositioningTool {
96
+ readonly containerManager: ContainerManager;
97
+ }
98
+
95
99
  export class NodeInsertTrackingListener extends MouseTrackingElementPositionListener {
96
100
  constructor(
97
101
  elementId: string,
98
102
  protected elementTypeId: string,
99
- protected override tool: NodeCreationTool,
103
+ protected override tool: ContainerPositioningTool,
100
104
  cursorPosition: 'top-left' | 'middle' = 'top-left'
101
105
  ) {
102
106
  super(elementId, tool, cursorPosition);
@@ -104,7 +108,6 @@ export class NodeInsertTrackingListener extends MouseTrackingElementPositionList
104
108
 
105
109
  protected override addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void {
106
110
  super.addMoveFeedback(move, ctx, event);
107
-
108
111
  const element = move.elementMoves[0].element;
109
112
  const location = move.elementMoves[0].toPosition;
110
113
  const insert = this.tool.containerManager.insert(element, location, this.elementTypeId, { evt: event });
@@ -138,15 +141,9 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
138
141
 
139
142
  const insert = this.getTrackedInsert(ctx, event);
140
143
  if (insert.valid) {
141
- result.push(
142
- CreateNodeOperation.create(this.elementTypeId, {
143
- location: insert.location,
144
- containerId: insert.container?.id,
145
- args: this.getCreateNodeOperationArgs(insert, ctx, event)
146
- })
147
- );
144
+ result.push(this.getCreateOperation(ctx, event, insert));
148
145
  }
149
- if (isCtrlOrCmd(event)) {
146
+ if (this.isContinuousMode(ctx, event)) {
150
147
  // we continue in stamp mode so we keep the ghost but dispose everything else
151
148
  this.disposeAllButGhostElement();
152
149
  return result;
@@ -162,6 +159,26 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
162
159
  return result;
163
160
  }
164
161
 
162
+ /**
163
+ * Determines wether the tool should run in continuous mode (also called stamp mode) or not.
164
+ * If continuous mode is enabled, the tool will stay after a successful creation.
165
+ * The user can then create more elements of the same type without having to re-trigger the tool.
166
+ * By default, continuous mode is enabled if the user holds the CTRL key.
167
+ * @param ctx the current model context
168
+ * @param event
169
+ */
170
+ protected isContinuousMode(ctx: GModelElement, event: MouseEvent): boolean {
171
+ return isCtrlOrCmd(event);
172
+ }
173
+
174
+ protected getCreateOperation(ctx: GModelElement, event: MouseEvent, insert: TrackedInsert): Action {
175
+ return CreateNodeOperation.create(this.elementTypeId, {
176
+ location: insert.location,
177
+ containerId: insert.container?.id,
178
+ args: this.getCreateNodeOperationArgs(insert, ctx, event)
179
+ });
180
+ }
181
+
165
182
  protected getCreateNodeOperationArgs(insert: TrackedInsert, ctx: GModelElement, event: MouseEvent): Args | undefined {
166
183
  let args = { ...this.triggerAction.args };
167
184
  const ghostElement = this.getGhostElement(ctx, event);