@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.
- package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +13 -2
- package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation/edge-creation-tool.js +25 -8
- package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/node-creation/node-creation-tool.d.ts +15 -2
- package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation/node-creation-tool.js +21 -7
- package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
- package/package.json +3 -3
- package/src/features/tools/edge-creation/edge-creation-tool.ts +29 -10
- package/src/features/tools/node-creation/node-creation-tool.ts +27 -10
|
@@ -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(
|
|
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,
|
|
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(
|
|
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(
|
|
118
|
-
|
|
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":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,
|
|
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:
|
|
42
|
-
constructor(elementId: string, elementTypeId: string, tool:
|
|
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":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,MAAM,EACN,IAAI,EAIJ,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,yBAAyB,EAI5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oCAAoC,EAAE,eAAe,EAAE,MAAM,iEAAiE,CAAC;AAExI,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGtE,qBACa,gBAAiB,SAAQ,gBAAgB,CAAC,yBAAyB,CAAE,YAAW,eAAe;IACxG,MAAM,CAAC,EAAE,SAAsB;IAE/B,SAAS,CAAC,eAAe,sCAAgC;IAE5B,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzC,YAAY,EAAE,aAAa,CAAC;IAEzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,IAAI;IAOhB,SAAS,CAAC,qBAAqB,IAAI,aAAa;IAIhD,SAAS,CAAC,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU;IAU5G,SAAS,CAAC,0BAA0B,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU;IAK5E,SAAS,CAAC,gCAAgC,IAAI,eAAe;CAGhE;AAED,qBAAa,0BAA2B,SAAQ,oCAAoC;IAG5E,SAAS,CAAC,aAAa,EAAE,MAAM;cACZ,IAAI,EAAE,
|
|
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(
|
|
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 ((
|
|
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":";;;;;;;;;;;;;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;
|
|
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.
|
|
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.
|
|
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": "
|
|
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(
|
|
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
|
-
|
|
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:
|
|
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 (
|
|
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);
|