@eclipse-glsp-examples/workflow-glsp 0.10.0-next.79193da.164 → 0.10.0-next.aa813a8.174
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/direct-task-editing/di.config.d.ts +0 -15
- package/lib/direct-task-editing/di.config.d.ts.map +1 -1
- package/lib/direct-task-editing/di.config.js +3 -3
- package/lib/direct-task-editing/di.config.js.map +1 -1
- package/lib/direct-task-editing/direct-task-editor.d.ts +23 -7
- package/lib/direct-task-editing/direct-task-editor.d.ts.map +1 -1
- package/lib/direct-task-editing/direct-task-editor.js +20 -18
- package/lib/direct-task-editing/direct-task-editor.js.map +1 -1
- package/lib/workflow-views.d.ts +1 -2
- package/lib/workflow-views.d.ts.map +1 -1
- package/lib/workflow-views.js +3 -4
- package/lib/workflow-views.js.map +1 -1
- package/package.json +3 -3
- package/src/direct-task-editing/di.config.ts +2 -3
- package/src/direct-task-editing/direct-task-editor.ts +46 -14
- package/src/workflow-views.tsx +4 -1
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
*
|
|
8
|
-
* This Source Code may also be made available under the following Secondary
|
|
9
|
-
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
* with the GNU Classpath Exception which is available at
|
|
12
|
-
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
*
|
|
14
|
-
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
-
********************************************************************************/
|
|
16
1
|
import { ContainerModule } from 'inversify';
|
|
17
2
|
export declare const directTaskEditor: ContainerModule;
|
|
18
3
|
//# sourceMappingURL=di.config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,eAAO,MAAM,gBAAgB,iBAG3B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.directTaskEditor = void 0;
|
|
4
4
|
/********************************************************************************
|
|
5
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
5
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
6
6
|
*
|
|
7
7
|
* This program and the accompanying materials are made available under the
|
|
8
8
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -16,11 +16,11 @@ exports.directTaskEditor = void 0;
|
|
|
16
16
|
*
|
|
17
17
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
18
18
|
********************************************************************************/
|
|
19
|
+
const client_1 = require("@eclipse-glsp/client");
|
|
19
20
|
const inversify_1 = require("inversify");
|
|
20
|
-
const sprotty_1 = require("sprotty");
|
|
21
21
|
const direct_task_editor_1 = require("./direct-task-editor");
|
|
22
22
|
exports.directTaskEditor = new inversify_1.ContainerModule((bind, _unbind, isBound) => {
|
|
23
23
|
bind(direct_task_editor_1.TaskEditor).toSelf().inSingletonScope();
|
|
24
|
-
bind(
|
|
24
|
+
bind(client_1.TYPES.IUIExtension).toService(direct_task_editor_1.TaskEditor);
|
|
25
25
|
});
|
|
26
26
|
//# sourceMappingURL=di.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAA6C;AAC7C,yCAA4C;AAC5C,6DAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3E,IAAI,CAAC,+BAAU,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,cAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,+BAAU,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
|
|
@@ -13,15 +13,31 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { AbstractUIExtension, Action, AutoCompleteWidget, EditorContextService, GLSPActionDispatcher, ILogger, LabeledAction, SModelRoot, ValidationStatus, ViewerOptions } from '@eclipse-glsp/client';
|
|
16
|
+
import { AbstractUIExtension, Action, AutoCompleteWidget, EditorContextService, GLSPActionDispatcher, ILogger, LabeledAction, Operation, SModelRoot, ValidationStatus, ViewerOptions } from '@eclipse-glsp/client';
|
|
17
17
|
import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
|
|
18
18
|
import { TaskNode } from '../model';
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Is send from the {@link TaskEditor} to the GLSP server
|
|
21
|
+
* to execute a task edit operation.
|
|
22
|
+
*/
|
|
23
|
+
export interface ApplyTaskEditOperation extends Operation {
|
|
24
|
+
kind: typeof ApplyTaskEditOperation.KIND;
|
|
25
|
+
/**
|
|
26
|
+
* Id of the task that should be edited
|
|
27
|
+
*/
|
|
28
|
+
taskId: string;
|
|
29
|
+
/**
|
|
30
|
+
* The edit expression
|
|
31
|
+
*/
|
|
32
|
+
expression: string;
|
|
33
|
+
}
|
|
34
|
+
export declare namespace ApplyTaskEditOperation {
|
|
35
|
+
const KIND = "applyTaskEdit";
|
|
36
|
+
function is(object: any): object is ApplyTaskEditOperation;
|
|
37
|
+
function create(options: {
|
|
38
|
+
taskId: string;
|
|
39
|
+
expression: string;
|
|
40
|
+
}): ApplyTaskEditOperation;
|
|
25
41
|
}
|
|
26
42
|
export declare class TaskEditor extends AbstractUIExtension {
|
|
27
43
|
static readonly ID = "task-editor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-task-editor.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"direct-task-editor.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EAEpB,OAAO,EACP,aAAa,EAEb,SAAS,EAKT,UAAU,EAIV,gBAAgB,EAChB,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAc,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACrD,IAAI,EAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC;IAEzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,yBAAiB,sBAAsB,CAAC;IAC7B,MAAM,IAAI,kBAAkB,CAAC;IAEpC,SAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,sBAAsB,CAEhE;IAED,SAAgB,MAAM,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,sBAAsB,CAM9F;CACJ;AAED,qBACa,UAAW,SAAQ,mBAAmB;IAC/C,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB;IACnC,QAAQ,CAAC,sBAAsB;;;;;MAK7B;IAGF,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAGjD,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B,UACmB,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE7C,EAAE,IAAI,MAAM;IAGZ,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;IAkBxD,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;cAK5D,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAMhI,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;cAe1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;cAU5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUvE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IAI/E,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,IAAI,IAAI,IAAI;CAIxB"}
|
|
@@ -28,18 +28,20 @@ exports.TaskEditor = exports.ApplyTaskEditOperation = void 0;
|
|
|
28
28
|
********************************************************************************/
|
|
29
29
|
const client_1 = require("@eclipse-glsp/client");
|
|
30
30
|
const inversify_1 = require("inversify");
|
|
31
|
-
const lib_1 = require("sprotty/lib");
|
|
32
31
|
const dom_helper_1 = require("sprotty/lib/base/views/dom-helper");
|
|
33
32
|
const model_1 = require("../model");
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
var ApplyTaskEditOperation;
|
|
34
|
+
(function (ApplyTaskEditOperation) {
|
|
35
|
+
ApplyTaskEditOperation.KIND = 'applyTaskEdit';
|
|
36
|
+
function is(object) {
|
|
37
|
+
return client_1.Operation.hasKind(object, ApplyTaskEditOperation.KIND) && (0, client_1.hasStringProp)(object, 'taskId') && (0, client_1.hasStringProp)(object, 'expression');
|
|
39
38
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
ApplyTaskEditOperation.KIND
|
|
39
|
+
ApplyTaskEditOperation.is = is;
|
|
40
|
+
function create(options) {
|
|
41
|
+
return Object.assign({ kind: ApplyTaskEditOperation.KIND, isOperation: true }, options);
|
|
42
|
+
}
|
|
43
|
+
ApplyTaskEditOperation.create = create;
|
|
44
|
+
})(ApplyTaskEditOperation = exports.ApplyTaskEditOperation || (exports.ApplyTaskEditOperation = {}));
|
|
43
45
|
let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExtension {
|
|
44
46
|
constructor() {
|
|
45
47
|
super(...arguments);
|
|
@@ -86,15 +88,15 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
|
|
|
86
88
|
containerElement.style.width = '200px';
|
|
87
89
|
}
|
|
88
90
|
async retrieveSuggestions(input) {
|
|
89
|
-
const response = await this.actionDispatcher.request(
|
|
90
|
-
if (
|
|
91
|
+
const response = await this.actionDispatcher.request(client_1.RequestContextActions.create({ contextId: TaskEditor_1.ID, editorContext: this.editorContextService.get({ ['text']: input }) }));
|
|
92
|
+
if (client_1.SetContextActions.is(response)) {
|
|
91
93
|
return response.actions;
|
|
92
94
|
}
|
|
93
95
|
return Promise.reject();
|
|
94
96
|
}
|
|
95
97
|
async validateInput(input) {
|
|
96
|
-
const response = await this.actionDispatcher.request(
|
|
97
|
-
if (
|
|
98
|
+
const response = await this.actionDispatcher.request(client_1.RequestEditValidationAction.create({ contextId: TaskEditor_1.ID, modelElementId: this.task.id, text: input }));
|
|
99
|
+
if (client_1.SetEditValidationResultAction.is(response)) {
|
|
98
100
|
return response.status;
|
|
99
101
|
}
|
|
100
102
|
return Promise.reject();
|
|
@@ -103,7 +105,7 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
|
|
|
103
105
|
this.actionDispatcher.dispatchAll((0, client_1.toActionArray)(input));
|
|
104
106
|
}
|
|
105
107
|
executeFromTextOnlyInput(input) {
|
|
106
|
-
const action =
|
|
108
|
+
const action = ApplyTaskEditOperation.create({ taskId: this.task.id, expression: input });
|
|
107
109
|
this.actionDispatcher.dispatch(action);
|
|
108
110
|
}
|
|
109
111
|
hide() {
|
|
@@ -113,7 +115,7 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
|
|
|
113
115
|
};
|
|
114
116
|
TaskEditor.ID = 'task-editor';
|
|
115
117
|
__decorate([
|
|
116
|
-
(0, inversify_1.inject)(
|
|
118
|
+
(0, inversify_1.inject)(client_1.TYPES.IActionDispatcher),
|
|
117
119
|
__metadata("design:type", client_1.GLSPActionDispatcher)
|
|
118
120
|
], TaskEditor.prototype, "actionDispatcher", void 0);
|
|
119
121
|
__decorate([
|
|
@@ -121,15 +123,15 @@ __decorate([
|
|
|
121
123
|
__metadata("design:type", client_1.EditorContextService)
|
|
122
124
|
], TaskEditor.prototype, "editorContextService", void 0);
|
|
123
125
|
__decorate([
|
|
124
|
-
(0, inversify_1.inject)(
|
|
126
|
+
(0, inversify_1.inject)(client_1.TYPES.ViewerOptions),
|
|
125
127
|
__metadata("design:type", Object)
|
|
126
128
|
], TaskEditor.prototype, "viewerOptions", void 0);
|
|
127
129
|
__decorate([
|
|
128
|
-
(0, inversify_1.inject)(
|
|
130
|
+
(0, inversify_1.inject)(client_1.TYPES.DOMHelper),
|
|
129
131
|
__metadata("design:type", dom_helper_1.DOMHelper)
|
|
130
132
|
], TaskEditor.prototype, "domHelper", void 0);
|
|
131
133
|
__decorate([
|
|
132
|
-
(0, inversify_1.inject)(
|
|
134
|
+
(0, inversify_1.inject)(client_1.TYPES.ILogger),
|
|
133
135
|
__metadata("design:type", Object)
|
|
134
136
|
], TaskEditor.prototype, "logger", void 0);
|
|
135
137
|
TaskEditor = TaskEditor_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-task-editor.js","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,
|
|
1
|
+
{"version":3,"file":"direct-task-editor.js","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"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"}
|
package/lib/workflow-views.d.ts
CHANGED
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Point, PolylineEdgeViewWithGapsOnIntersections, RenderingContext, SEdge } from '@eclipse-glsp/client';
|
|
16
|
+
import { Point, PolylineEdgeViewWithGapsOnIntersections, RenderingContext, SEdge, ShapeView } from '@eclipse-glsp/client';
|
|
17
17
|
import { VNode } from 'snabbdom';
|
|
18
|
-
import { ShapeView } from 'sprotty';
|
|
19
18
|
import { Icon } from './model';
|
|
20
19
|
export declare class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
|
|
21
20
|
protected renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,KAAK,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,EAEL,SAAS,EAGZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,IAAI,EAAc,MAAM,SAAS,CAAC;AAK3C,qBACa,gBAAiB,SAAQ,uCAAuC;cACtD,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE;CAiB3G;AAED,qBACa,QAAS,SAAQ,SAAS;IACnC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,GAAG,SAAS;CAuCtE"}
|
package/lib/workflow-views.js
CHANGED
|
@@ -24,10 +24,9 @@ exports.IconView = exports.WorkflowEdgeView = void 0;
|
|
|
24
24
|
********************************************************************************/
|
|
25
25
|
const client_1 = require("@eclipse-glsp/client");
|
|
26
26
|
const inversify_1 = require("inversify");
|
|
27
|
-
const sprotty_1 = require("sprotty");
|
|
28
27
|
const model_1 = require("./model");
|
|
29
28
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
-
const JSX = { createElement:
|
|
29
|
+
const JSX = { createElement: client_1.svg };
|
|
31
30
|
let WorkflowEdgeView = class WorkflowEdgeView extends client_1.PolylineEdgeViewWithGapsOnIntersections {
|
|
32
31
|
renderAdditionals(edge, segments, context) {
|
|
33
32
|
const additionals = super.renderAdditionals(edge, segments, context);
|
|
@@ -42,9 +41,9 @@ WorkflowEdgeView = __decorate([
|
|
|
42
41
|
(0, inversify_1.injectable)()
|
|
43
42
|
], WorkflowEdgeView);
|
|
44
43
|
exports.WorkflowEdgeView = WorkflowEdgeView;
|
|
45
|
-
let IconView = class IconView extends
|
|
44
|
+
let IconView = class IconView extends client_1.ShapeView {
|
|
46
45
|
render(element, context) {
|
|
47
|
-
const taskNode = (0,
|
|
46
|
+
const taskNode = (0, client_1.findParentByFeature)(element, model_1.isTaskNode);
|
|
48
47
|
if (!taskNode || !this.isVisible(element, context)) {
|
|
49
48
|
return undefined;
|
|
50
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,
|
|
1
|
+
{"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAY8B;AAC9B,yCAAuC;AAEvC,mCAA2C;AAE3C,6DAA6D;AAC7D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,YAAG,EAAE,CAAC;AAGnC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,gDAAuC;IACtD,iBAAiB,CAAC,IAAW,EAAE,QAAiB,EAAE,OAAyB;QAC1F,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CACV,kDACwB,IAAI,iBACX,IAAI,EACjB,CAAC,EAAC,wBAAwB,EAC1B,SAAS,EAAE,UAAU,IAAA,kBAAS,EAAC,IAAA,qBAAY,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAC/G,EAAE,CAAC,CACP,GAAG,GACL,CACL,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ,CAAA;AAlBY,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqB7B,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,kBAAS;IACnC,MAAM,CAAC,OAAa,EAAE,OAAyB;QAC3C,MAAM,QAAQ,GAAG,IAAA,4BAAmB,EAAC,OAAO,EAAE,kBAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YAChD,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,IAAI,CAAC;QACT,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;YACjC,iHAAiH;YACjH,IAAI;gBACA,mCAAmC;gBACnC,ksDAAksD,CAAC;SAC1sD;aAAM;YACH,8GAA8G;YAC9G,IAAI;gBACA,mCAAmC;gBACnC,wbAAwb,CAAC;SAChc;QAED,MAAM,KAAK,GAAG,CACV;YACI,4BACI,SAAS,EAAE,kCAAkC;gBAC7C,kHAAkH;gBAClH,mCAAmC;gBACnC,CAAC,EAAE,IAAI,GACT;YACF,2DAA4B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI;YAChE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAChC,CACP,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE;YACT,IAAA,gBAAO,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACpC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAxCY,QAAQ;IADpB,IAAA,sBAAU,GAAE;GACA,QAAQ,CAwCpB;AAxCY,4BAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-glsp-examples/workflow-glsp",
|
|
3
|
-
"version": "0.10.0-next.
|
|
3
|
+
"version": "0.10.0-next.aa813a8.174+aa813a8",
|
|
4
4
|
"description": "GLSP diagrams for the Workflow DSL",
|
|
5
5
|
"license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
|
|
6
6
|
"keywords": [
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@eclipse-glsp/client": "0.10.0-next.
|
|
29
|
+
"@eclipse-glsp/client": "0.10.0-next.aa813a8.174+aa813a8",
|
|
30
30
|
"balloon-css": "^0.5.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "aa813a895d891b14269a537c27f0dd547f467b11"
|
|
55
55
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { TYPES } from '@eclipse-glsp/client';
|
|
16
17
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { TYPES } from 'sprotty';
|
|
18
|
-
|
|
19
18
|
import { TaskEditor } from './direct-task-editor';
|
|
20
19
|
|
|
21
20
|
export const directTaskEditor = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -20,28 +20,58 @@ import {
|
|
|
20
20
|
EditorContextService,
|
|
21
21
|
getAbsoluteClientBounds,
|
|
22
22
|
GLSPActionDispatcher,
|
|
23
|
+
hasStringProp,
|
|
23
24
|
ILogger,
|
|
24
|
-
isSetContextActionsAction,
|
|
25
|
-
isSetEditValidationResultAction,
|
|
26
25
|
LabeledAction,
|
|
26
|
+
ModelIndexImpl,
|
|
27
|
+
Operation,
|
|
27
28
|
RequestContextActions,
|
|
28
29
|
RequestEditValidationAction,
|
|
29
|
-
|
|
30
|
+
SetContextActions,
|
|
31
|
+
SetEditValidationResultAction,
|
|
30
32
|
SModelRoot,
|
|
31
33
|
toActionArray,
|
|
34
|
+
TYPES,
|
|
32
35
|
ValidationDecorator,
|
|
33
36
|
ValidationStatus,
|
|
34
37
|
ViewerOptions
|
|
35
38
|
} from '@eclipse-glsp/client';
|
|
36
39
|
import { inject, injectable } from 'inversify';
|
|
37
|
-
import { SModelIndex, TYPES } from 'sprotty/lib';
|
|
38
40
|
import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
|
|
39
41
|
import { isTaskNode, TaskNode } from '../model';
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Is send from the {@link TaskEditor} to the GLSP server
|
|
45
|
+
* to execute a task edit operation.
|
|
46
|
+
*/
|
|
47
|
+
export interface ApplyTaskEditOperation extends Operation {
|
|
48
|
+
kind: typeof ApplyTaskEditOperation.KIND;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Id of the task that should be edited
|
|
52
|
+
*/
|
|
53
|
+
taskId: string;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The edit expression
|
|
57
|
+
*/
|
|
58
|
+
expression: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export namespace ApplyTaskEditOperation {
|
|
62
|
+
export const KIND = 'applyTaskEdit';
|
|
63
|
+
|
|
64
|
+
export function is(object: any): object is ApplyTaskEditOperation {
|
|
65
|
+
return Operation.hasKind(object, KIND) && hasStringProp(object, 'taskId') && hasStringProp(object, 'expression');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function create(options: { taskId: string; expression: string }): ApplyTaskEditOperation {
|
|
69
|
+
return {
|
|
70
|
+
kind: KIND,
|
|
71
|
+
isOperation: true,
|
|
72
|
+
...options
|
|
73
|
+
};
|
|
74
|
+
}
|
|
45
75
|
}
|
|
46
76
|
|
|
47
77
|
@injectable()
|
|
@@ -125,17 +155,19 @@ export class TaskEditor extends AbstractUIExtension {
|
|
|
125
155
|
|
|
126
156
|
protected async retrieveSuggestions(input: string): Promise<LabeledAction[]> {
|
|
127
157
|
const response = await this.actionDispatcher.request(
|
|
128
|
-
|
|
158
|
+
RequestContextActions.create({ contextId: TaskEditor.ID, editorContext: this.editorContextService.get({ ['text']: input }) })
|
|
129
159
|
);
|
|
130
|
-
if (
|
|
160
|
+
if (SetContextActions.is(response)) {
|
|
131
161
|
return response.actions;
|
|
132
162
|
}
|
|
133
163
|
return Promise.reject();
|
|
134
164
|
}
|
|
135
165
|
|
|
136
166
|
protected async validateInput(input: string): Promise<ValidationStatus> {
|
|
137
|
-
const response = await this.actionDispatcher.request(
|
|
138
|
-
|
|
167
|
+
const response = await this.actionDispatcher.request(
|
|
168
|
+
RequestEditValidationAction.create({ contextId: TaskEditor.ID, modelElementId: this.task.id, text: input })
|
|
169
|
+
);
|
|
170
|
+
if (SetEditValidationResultAction.is(response)) {
|
|
139
171
|
return response.status;
|
|
140
172
|
}
|
|
141
173
|
return Promise.reject();
|
|
@@ -146,7 +178,7 @@ export class TaskEditor extends AbstractUIExtension {
|
|
|
146
178
|
}
|
|
147
179
|
|
|
148
180
|
protected executeFromTextOnlyInput(input: string): void {
|
|
149
|
-
const action =
|
|
181
|
+
const action = ApplyTaskEditOperation.create({ taskId: this.task.id, expression: input });
|
|
150
182
|
this.actionDispatcher.dispatch(action);
|
|
151
183
|
}
|
|
152
184
|
|
|
@@ -156,6 +188,6 @@ export class TaskEditor extends AbstractUIExtension {
|
|
|
156
188
|
}
|
|
157
189
|
}
|
|
158
190
|
|
|
159
|
-
function getTask(ids: string[], index:
|
|
191
|
+
function getTask(ids: string[], index: ModelIndexImpl): TaskNode[] {
|
|
160
192
|
return ids.map(id => index.getById(id)).filter(element => element && isTaskNode(element)) as TaskNode[];
|
|
161
193
|
}
|
package/src/workflow-views.tsx
CHANGED
|
@@ -15,17 +15,19 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import {
|
|
17
17
|
angleOfPoint,
|
|
18
|
+
findParentByFeature,
|
|
18
19
|
getSubType,
|
|
19
20
|
Point,
|
|
20
21
|
PolylineEdgeViewWithGapsOnIntersections,
|
|
21
22
|
RenderingContext,
|
|
22
23
|
SEdge,
|
|
23
24
|
setAttr,
|
|
25
|
+
ShapeView,
|
|
26
|
+
svg,
|
|
24
27
|
toDegrees
|
|
25
28
|
} from '@eclipse-glsp/client';
|
|
26
29
|
import { injectable } from 'inversify';
|
|
27
30
|
import { VNode } from 'snabbdom';
|
|
28
|
-
import { findParentByFeature, ShapeView, svg } from 'sprotty';
|
|
29
31
|
import { Icon, isTaskNode } from './model';
|
|
30
32
|
|
|
31
33
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -90,6 +92,7 @@ export class IconView extends ShapeView {
|
|
|
90
92
|
if (subType) {
|
|
91
93
|
setAttr(vnode, 'class', subType);
|
|
92
94
|
}
|
|
95
|
+
|
|
93
96
|
return vnode;
|
|
94
97
|
}
|
|
95
98
|
}
|