@eclipse-glsp-examples/workflow-server 0.9.0-next.5ce3b9a.1 → 0.9.0-next.82d6d28.20
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/app.d.ts.map +1 -1
- package/lib/app.js +7 -4
- package/lib/app.js.map +1 -1
- package/lib/graph-extension.d.ts +1 -2
- package/lib/graph-extension.d.ts.map +1 -1
- package/lib/graph-extension.js +5 -23
- package/lib/graph-extension.js.map +1 -1
- package/lib/handler/create-activity-node-handler.d.ts +4 -4
- package/lib/handler/create-activity-node-handler.d.ts.map +1 -1
- package/lib/handler/create-activity-node-handler.js +6 -6
- package/lib/handler/create-activity-node-handler.js.map +1 -1
- package/lib/handler/create-automated-task-handler.d.ts +18 -3
- package/lib/handler/create-automated-task-handler.d.ts.map +1 -1
- package/lib/handler/create-automated-task-handler.js +4 -19
- package/lib/handler/create-automated-task-handler.js.map +1 -1
- package/lib/handler/create-category-handler.d.ts +3 -3
- package/lib/handler/create-category-handler.d.ts.map +1 -1
- package/lib/handler/create-category-handler.js +5 -4
- package/lib/handler/create-category-handler.js.map +1 -1
- package/lib/handler/create-decision-node-handler.d.ts +18 -3
- package/lib/handler/create-decision-node-handler.d.ts.map +1 -1
- package/lib/handler/create-decision-node-handler.js +4 -19
- package/lib/handler/create-decision-node-handler.js.map +1 -1
- package/lib/handler/create-edge-handler.d.ts +3 -3
- package/lib/handler/create-edge-handler.d.ts.map +1 -1
- package/lib/handler/create-edge-handler.js +2 -2
- package/lib/handler/create-edge-handler.js.map +1 -1
- package/lib/handler/create-fork-node-handler.js +1 -1
- package/lib/handler/create-fork-node-handler.js.map +1 -1
- package/lib/handler/create-fork-or-join-node-handler.d.ts +3 -3
- package/lib/handler/create-fork-or-join-node-handler.d.ts.map +1 -1
- package/lib/handler/create-fork-or-join-node-handler.js +4 -4
- package/lib/handler/create-fork-or-join-node-handler.js.map +1 -1
- package/lib/handler/create-join-node-handler.js +1 -1
- package/lib/handler/create-join-node-handler.js.map +1 -1
- package/lib/handler/create-manual-task-handler.d.ts +18 -3
- package/lib/handler/create-manual-task-handler.d.ts.map +1 -1
- package/lib/handler/create-manual-task-handler.js +4 -19
- package/lib/handler/create-manual-task-handler.js.map +1 -1
- package/lib/handler/create-merge-node-handler.d.ts +18 -3
- package/lib/handler/create-merge-node-handler.d.ts.map +1 -1
- package/lib/handler/create-merge-node-handler.js +4 -19
- package/lib/handler/create-merge-node-handler.js.map +1 -1
- package/lib/handler/create-task-handler.d.ts +5 -5
- package/lib/handler/create-task-handler.d.ts.map +1 -1
- package/lib/handler/create-task-handler.js +7 -7
- package/lib/handler/create-task-handler.js.map +1 -1
- package/lib/handler/create-weighted-edge-handler.d.ts +3 -3
- package/lib/handler/create-weighted-edge-handler.d.ts.map +1 -1
- package/lib/handler/create-weighted-edge-handler.js +2 -2
- package/lib/handler/create-weighted-edge-handler.js.map +1 -1
- package/lib/handler/create-workflow-node-operation-handler.d.ts +3 -3
- package/lib/handler/create-workflow-node-operation-handler.d.ts.map +1 -1
- package/lib/handler/create-workflow-node-operation-handler.js +4 -4
- package/lib/handler/create-workflow-node-operation-handler.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/labeledit/workflow-label-edit-validator.d.ts +2 -2
- package/lib/labeledit/workflow-label-edit-validator.d.ts.map +1 -1
- package/lib/labeledit/workflow-label-edit-validator.js +3 -3
- package/lib/labeledit/workflow-label-edit-validator.js.map +1 -1
- package/lib/{workflow-model-index.d.ts → layout/workflow-layout-configurator.d.ts} +5 -4
- package/lib/layout/workflow-layout-configurator.d.ts.map +1 -0
- package/lib/{workflow-model-index.js → layout/workflow-layout-configurator.js} +12 -17
- package/lib/layout/workflow-layout-configurator.js.map +1 -0
- package/lib/marker/workflow-model-validator.d.ts +2 -2
- package/lib/marker/workflow-model-validator.d.ts.map +1 -1
- package/lib/marker/workflow-model-validator.js +3 -3
- package/lib/marker/workflow-model-validator.js.map +1 -1
- package/lib/model/workflow-navigation-target-resolver.d.ts +2 -2
- package/lib/model/workflow-navigation-target-resolver.d.ts.map +1 -1
- package/lib/model/workflow-navigation-target-resolver.js +3 -3
- package/lib/model/workflow-navigation-target-resolver.js.map +1 -1
- package/lib/provider/abstract-next-or-previous-navigation-target-provider.d.ts +2 -2
- package/lib/provider/abstract-next-or-previous-navigation-target-provider.d.ts.map +1 -1
- package/lib/provider/abstract-next-or-previous-navigation-target-provider.js +4 -4
- package/lib/provider/abstract-next-or-previous-navigation-target-provider.js.map +1 -1
- package/lib/provider/next-node-navigation-target-provider.js +1 -1
- package/lib/provider/next-node-navigation-target-provider.js.map +1 -1
- package/lib/provider/node-documentation-navigation-target-provider.d.ts +2 -2
- package/lib/provider/node-documentation-navigation-target-provider.d.ts.map +1 -1
- package/lib/provider/node-documentation-navigation-target-provider.js +4 -4
- package/lib/provider/node-documentation-navigation-target-provider.js.map +1 -1
- package/lib/provider/previous-node-navigation-target-provider.js +1 -1
- package/lib/provider/previous-node-navigation-target-provider.js.map +1 -1
- package/lib/provider/workflow-command-palette-action-provider.d.ts +6 -6
- package/lib/provider/workflow-command-palette-action-provider.d.ts.map +1 -1
- package/lib/provider/workflow-command-palette-action-provider.js +45 -12
- package/lib/provider/workflow-command-palette-action-provider.js.map +1 -1
- package/lib/provider/workflow-context-menu-item-provider.d.ts +2 -2
- package/lib/provider/workflow-context-menu-item-provider.d.ts.map +1 -1
- package/lib/provider/workflow-context-menu-item-provider.js +22 -9
- package/lib/provider/workflow-context-menu-item-provider.js.map +1 -1
- package/lib/workflow-diagram-configuration.js +2 -2
- package/lib/workflow-diagram-configuration.js.map +1 -1
- package/lib/workflow-diagram-module.d.ts +11 -6
- package/lib/workflow-diagram-module.d.ts.map +1 -1
- package/lib/workflow-diagram-module.js +25 -21
- package/lib/workflow-diagram-module.js.map +1 -1
- package/lib/workflow-glsp-server.d.ts.map +1 -1
- package/lib/workflow-glsp-server.js +2 -2
- package/lib/workflow-glsp-server.js.map +1 -1
- package/lib/workflow-popup-factory.js +1 -1
- package/lib/workflow-popup-factory.js.map +1 -1
- package/package.json +5 -10
- package/src/app.ts +4 -1
- package/src/graph-extension.ts +9 -28
- package/src/handler/create-activity-node-handler.ts +6 -6
- package/src/handler/create-automated-task-handler.ts +5 -5
- package/src/handler/create-category-handler.ts +6 -5
- package/src/handler/create-decision-node-handler.ts +5 -5
- package/src/handler/create-edge-handler.ts +3 -3
- package/src/handler/create-fork-or-join-node-handler.ts +4 -4
- package/src/handler/create-manual-task-handler.ts +5 -5
- package/src/handler/create-merge-node-handler.ts +5 -5
- package/src/handler/create-task-handler.ts +7 -7
- package/src/handler/create-weighted-edge-handler.ts +3 -3
- package/src/handler/create-workflow-node-operation-handler.ts +8 -8
- package/src/labeledit/workflow-label-edit-validator.ts +3 -3
- package/src/{workflow-model-index.ts → layout/workflow-layout-configurator.ts} +7 -11
- package/src/marker/workflow-model-validator.ts +3 -3
- package/src/model/workflow-navigation-target-resolver.ts +3 -3
- package/src/provider/abstract-next-or-previous-navigation-target-provider.ts +3 -3
- package/src/provider/node-documentation-navigation-target-provider.ts +4 -4
- package/src/provider/workflow-command-palette-action-provider.ts +54 -36
- package/src/provider/workflow-context-menu-item-provider.ts +22 -9
- package/src/workflow-diagram-module.ts +38 -30
- package/src/workflow-glsp-server.ts +2 -2
- package/lib/workflow-model-index.d.ts.map +0 -1
- package/lib/workflow-model-index.js.map +0 -1
package/src/graph-extension.ts
CHANGED
|
@@ -30,7 +30,7 @@ import { ModelTypes } from './util/model-types';
|
|
|
30
30
|
export class ActivityNode extends GNode {
|
|
31
31
|
nodeType: string;
|
|
32
32
|
|
|
33
|
-
static builder(): ActivityNodeBuilder {
|
|
33
|
+
static override builder(): ActivityNodeBuilder {
|
|
34
34
|
return new ActivityNodeBuilder(ActivityNode);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -48,7 +48,7 @@ export class TaskNode extends GNode {
|
|
|
48
48
|
taskType: string;
|
|
49
49
|
references: string;
|
|
50
50
|
|
|
51
|
-
static builder(): TaskNodeBuilder {
|
|
51
|
+
static override builder(): TaskNodeBuilder {
|
|
52
52
|
return new TaskNodeBuilder(TaskNode).layout('vbox').addArgs(ArgsUtil.cornerRadius(5));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -75,20 +75,12 @@ export class TaskNodeBuilder<T extends TaskNode = TaskNode> extends GNodeBuilder
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
children(): this {
|
|
78
|
-
this.proxy.children.push(this.createCompartment());
|
|
79
78
|
return this;
|
|
80
79
|
}
|
|
81
80
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return
|
|
85
|
-
.type(ModelTypes.COMP_HEADER)
|
|
86
|
-
.id(this.proxy.id + '_header')
|
|
87
|
-
.layout('hbox')
|
|
88
|
-
.addLayoutOptions(layoutOptions)
|
|
89
|
-
.add(this.createCompartmentIcon())
|
|
90
|
-
.add(this.createCompartmentHeader())
|
|
91
|
-
.build();
|
|
81
|
+
override build(): T {
|
|
82
|
+
this.layout('hbox').addLayoutOption('paddingRight', 10).add(this.createCompartmentIcon()).add(this.createCompartmentHeader());
|
|
83
|
+
return super.build();
|
|
92
84
|
}
|
|
93
85
|
|
|
94
86
|
protected createCompartmentHeader(): GLabel {
|
|
@@ -100,20 +92,9 @@ export class TaskNodeBuilder<T extends TaskNode = TaskNode> extends GNodeBuilder
|
|
|
100
92
|
}
|
|
101
93
|
|
|
102
94
|
protected createCompartmentIcon(): GCompartment {
|
|
103
|
-
return
|
|
104
|
-
.type(ModelTypes.ICON)
|
|
95
|
+
return GCompartment.builder()
|
|
105
96
|
.id(this.proxy.id + '_icon')
|
|
106
|
-
.
|
|
107
|
-
.addLayoutOptions({ hAlign: 'center', resizeContainer: false })
|
|
108
|
-
.add(this.createCompartmentIconLabel())
|
|
109
|
-
.build();
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
protected createCompartmentIconLabel(): GLabel {
|
|
113
|
-
return new GLabelBuilder(GLabel)
|
|
114
|
-
.type(ModelTypes.LABEL_ICON)
|
|
115
|
-
.id(this.proxy.id + '_ticon')
|
|
116
|
-
.text(`${this.proxy.taskType.toUpperCase().charAt(0)}`)
|
|
97
|
+
.type(ModelTypes.ICON)
|
|
117
98
|
.build();
|
|
118
99
|
}
|
|
119
100
|
}
|
|
@@ -121,7 +102,7 @@ export class TaskNodeBuilder<T extends TaskNode = TaskNode> extends GNodeBuilder
|
|
|
121
102
|
export class WeightedEdge extends GEdge {
|
|
122
103
|
probability?: string;
|
|
123
104
|
|
|
124
|
-
static builder(): WeightedEdgeBuilder {
|
|
105
|
+
static override builder(): WeightedEdgeBuilder {
|
|
125
106
|
return new WeightedEdgeBuilder(WeightedEdge).type(ModelTypes.WEIGHTED_EDGE);
|
|
126
107
|
}
|
|
127
108
|
}
|
|
@@ -136,7 +117,7 @@ export class WeightedEdgeBuilder<E extends WeightedEdge = WeightedEdge> extends
|
|
|
136
117
|
export class Category extends ActivityNode {
|
|
137
118
|
name: string;
|
|
138
119
|
|
|
139
|
-
static builder(): CategoryNodeBuilder {
|
|
120
|
+
static override builder(): CategoryNodeBuilder {
|
|
140
121
|
return new CategoryNodeBuilder(Category)
|
|
141
122
|
.layout('vbox')
|
|
142
123
|
.addLayoutOptions({ hAlign: 'center', hGrab: false, vGrab: false })
|
|
@@ -13,21 +13,21 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import { CreateWorkflowNodeOperationHandler } from './create-workflow-node-operation-handler';
|
|
16
|
+
import { CreateNodeOperation, GNode, Point } from '@eclipse-glsp/server-node';
|
|
18
17
|
import { injectable } from 'inversify';
|
|
19
18
|
import { ActivityNode, ActivityNodeBuilder } from '../graph-extension';
|
|
20
19
|
import { ModelTypes } from '../util/model-types';
|
|
20
|
+
import { CreateWorkflowNodeOperationHandler } from './create-workflow-node-operation-handler';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export abstract class CreateActivityNodeHandler extends CreateWorkflowNodeOperationHandler {
|
|
24
|
-
createNode(
|
|
25
|
-
return this.builder(relativeLocation
|
|
24
|
+
createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
|
|
25
|
+
return this.builder(relativeLocation).build();
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
protected builder(point: Point | undefined
|
|
28
|
+
protected builder(point: Point | undefined): ActivityNodeBuilder {
|
|
29
29
|
return ActivityNode.builder()
|
|
30
|
-
.position(point ??
|
|
30
|
+
.position(point ?? Point.ORIGIN)
|
|
31
31
|
.type(this.elementTypeIds[0])
|
|
32
32
|
.nodeType(ModelTypes.toNodeType(this.elementTypeIds[0]));
|
|
33
33
|
}
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import { CreateTaskHandler } from './create-task-handler';
|
|
16
|
+
import { Point } from '@eclipse-glsp/server-node';
|
|
18
17
|
import { injectable } from 'inversify';
|
|
19
|
-
import { Point, GModelState } from '@eclipse-glsp/server-node';
|
|
20
18
|
import { TaskNodeBuilder } from '../graph-extension';
|
|
19
|
+
import { ModelTypes } from '../util/model-types';
|
|
20
|
+
import { CreateTaskHandler } from './create-task-handler';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class CreateAutomatedTaskHandler extends CreateTaskHandler {
|
|
24
24
|
elementTypeIds = [ModelTypes.AUTOMATED_TASK];
|
|
25
25
|
label = 'Automated Task';
|
|
26
26
|
|
|
27
|
-
protected builder(point: Point | undefined
|
|
28
|
-
return super.builder(point
|
|
27
|
+
protected override builder(point: Point | undefined): TaskNodeBuilder {
|
|
28
|
+
return super.builder(point).addCssClass('automated');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -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 {
|
|
16
|
+
import { ArgsUtil, CreateNodeOperation, GNode, Point } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { Category, CategoryNodeBuilder } from '../graph-extension';
|
|
18
18
|
import { ModelTypes } from '../util/model-types';
|
|
19
19
|
import { CreateWorkflowNodeOperationHandler } from './create-workflow-node-operation-handler';
|
|
@@ -22,15 +22,16 @@ export class CreateCategoryHandler extends CreateWorkflowNodeOperationHandler {
|
|
|
22
22
|
elementTypeIds = [ModelTypes.CATEGORY];
|
|
23
23
|
label = 'Category';
|
|
24
24
|
|
|
25
|
-
createNode(
|
|
26
|
-
return this.builder(relativeLocation
|
|
25
|
+
createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
|
|
26
|
+
return this.builder(relativeLocation).build();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
protected builder(point: Point | undefined
|
|
29
|
+
protected builder(point: Point | undefined): CategoryNodeBuilder {
|
|
30
30
|
return Category.builder()
|
|
31
31
|
.type(this.elementTypeIds[0])
|
|
32
|
-
.position(point ??
|
|
32
|
+
.position(point ?? Point.ORIGIN)
|
|
33
33
|
.name(this.label.replace(' ', '') + this.modelState.index.getAllByClass(Category).length)
|
|
34
|
+
.addArgs(ArgsUtil.cornerRadius(5))
|
|
34
35
|
.children();
|
|
35
36
|
}
|
|
36
37
|
}
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Point } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
19
|
-
import { GModelState, Point } from '@eclipse-glsp/server-node';
|
|
20
18
|
import { ActivityNodeBuilder } from '../graph-extension';
|
|
19
|
+
import { ModelTypes } from '../util/model-types';
|
|
20
|
+
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class CreateDecisionNodeHandler extends CreateActivityNodeHandler {
|
|
24
24
|
elementTypeIds = [ModelTypes.DECISION_NODE];
|
|
25
25
|
label = 'Decision Node';
|
|
26
26
|
|
|
27
|
-
protected builder(point
|
|
28
|
-
return super.builder(point
|
|
27
|
+
protected override builder(point?: Point): ActivityNodeBuilder {
|
|
28
|
+
return super.builder(point).addCssClass('decision');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { DefaultTypes, GEdge, GEdgeBuilder, GModelCreateEdgeOperationHandler, GModelElement } from '@eclipse-glsp/server-node';
|
|
17
17
|
|
|
18
|
-
export class CreateEdgeHandler extends
|
|
18
|
+
export class CreateEdgeHandler extends GModelCreateEdgeOperationHandler {
|
|
19
19
|
label = 'Edge';
|
|
20
20
|
elementTypeIds = [DefaultTypes.EDGE];
|
|
21
21
|
|
|
22
|
-
createEdge(source: GModelElement, target: GModelElement
|
|
22
|
+
createEdge(source: GModelElement, target: GModelElement): GEdge | undefined {
|
|
23
23
|
return new GEdgeBuilder(GEdge).sourceId(source.id).targetId(target.id).build();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Point
|
|
17
|
-
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
16
|
+
import { Point } from '@eclipse-glsp/server-node';
|
|
18
17
|
import { injectable } from 'inversify';
|
|
19
18
|
import { ActivityNodeBuilder } from '../graph-extension';
|
|
19
|
+
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export abstract class CreateForkOrJoinNodeHandler extends CreateActivityNodeHandler {
|
|
23
|
-
protected builder(point: Point | undefined
|
|
24
|
-
return super.builder(point
|
|
23
|
+
protected override builder(point: Point | undefined): ActivityNodeBuilder {
|
|
24
|
+
return super.builder(point).addCssClass('forkOrJoin').size(10, 50);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import { CreateTaskHandler } from './create-task-handler';
|
|
16
|
+
import { Point } from '@eclipse-glsp/server-node';
|
|
18
17
|
import { injectable } from 'inversify';
|
|
19
|
-
import { Point, GModelState } from '@eclipse-glsp/server-node';
|
|
20
18
|
import { TaskNodeBuilder } from '../graph-extension';
|
|
19
|
+
import { ModelTypes } from '../util/model-types';
|
|
20
|
+
import { CreateTaskHandler } from './create-task-handler';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class CreateManualTaskHandler extends CreateTaskHandler {
|
|
24
24
|
elementTypeIds = [ModelTypes.MANUAL_TASK];
|
|
25
25
|
label = 'Manual Task';
|
|
26
26
|
|
|
27
|
-
protected builder(point: Point | undefined
|
|
28
|
-
return super.builder(point
|
|
27
|
+
protected override builder(point: Point | undefined): TaskNodeBuilder {
|
|
28
|
+
return super.builder(point).addCssClass('manual');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Point } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
19
|
-
import { GModelState, Point } from '@eclipse-glsp/server-node';
|
|
20
18
|
import { ActivityNodeBuilder } from '../graph-extension';
|
|
19
|
+
import { ModelTypes } from '../util/model-types';
|
|
20
|
+
import { CreateActivityNodeHandler } from './create-activity-node-handler';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class CreateMergeNodeHandler extends CreateActivityNodeHandler {
|
|
24
24
|
elementTypeIds = [ModelTypes.MERGE_NODE];
|
|
25
25
|
label = 'Merge Node';
|
|
26
26
|
|
|
27
|
-
protected builder(point: Point | undefined
|
|
28
|
-
return super.builder(point
|
|
27
|
+
protected override builder(point: Point | undefined): ActivityNodeBuilder {
|
|
28
|
+
return super.builder(point).addCssClass('merge');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -13,22 +13,22 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { CreateNodeOperation, GNode } from '@eclipse-glsp/server-node';
|
|
17
18
|
import { injectable } from 'inversify';
|
|
18
|
-
import { Args, ORIGIN_POINT, Point } from '@eclipse-glsp/protocol';
|
|
19
|
-
import { GModelState, GNode } from '@eclipse-glsp/server-node';
|
|
20
19
|
import { TaskNode, TaskNodeBuilder } from '../graph-extension';
|
|
21
20
|
import { ModelTypes } from '../util/model-types';
|
|
21
|
+
import { CreateWorkflowNodeOperationHandler } from './create-workflow-node-operation-handler';
|
|
22
22
|
|
|
23
23
|
@injectable()
|
|
24
24
|
export abstract class CreateTaskHandler extends CreateWorkflowNodeOperationHandler {
|
|
25
|
-
createNode(
|
|
26
|
-
return this.builder(relativeLocation
|
|
25
|
+
createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
|
|
26
|
+
return this.builder(relativeLocation).build();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
protected builder(point: Point | undefined
|
|
29
|
+
protected builder(point: Point | undefined): TaskNodeBuilder {
|
|
30
30
|
return TaskNode.builder()
|
|
31
|
-
.position(point ??
|
|
31
|
+
.position(point ?? Point.ORIGIN)
|
|
32
32
|
.addCssClass('task')
|
|
33
33
|
.name(this.label.replace(' ', '') + this.modelState.index.getAllByClass(TaskNode).length)
|
|
34
34
|
.type(this.elementTypeIds[0])
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { GEdge, GModelCreateEdgeOperationHandler, GModelElement } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { WeightedEdge } from '../graph-extension';
|
|
18
18
|
import { ModelTypes } from '../util/model-types';
|
|
19
19
|
|
|
20
|
-
export class CreateWeightedEdgeHandler extends
|
|
20
|
+
export class CreateWeightedEdgeHandler extends GModelCreateEdgeOperationHandler {
|
|
21
21
|
elementTypeIds = [ModelTypes.WEIGHTED_EDGE];
|
|
22
22
|
label = 'Weighted edge';
|
|
23
23
|
|
|
24
|
-
createEdge(source: GModelElement, target: GModelElement
|
|
24
|
+
createEdge(source: GModelElement, target: GModelElement): GEdge | undefined {
|
|
25
25
|
return WeightedEdge.builder().sourceId(source.id).targetId(target.id).probability('medium').addCssClass('medium').build();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -15,27 +15,27 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import {
|
|
17
17
|
CreateNodeOperation,
|
|
18
|
-
CreateNodeOperationHandler,
|
|
19
18
|
GCompartment,
|
|
19
|
+
GModelCreateNodeOperationHandler,
|
|
20
20
|
GModelElement,
|
|
21
|
-
|
|
21
|
+
ModelState,
|
|
22
22
|
Point
|
|
23
23
|
} from '@eclipse-glsp/server-node';
|
|
24
|
-
import {
|
|
24
|
+
import { inject, injectable } from 'inversify';
|
|
25
25
|
import { Category } from '../graph-extension';
|
|
26
26
|
import { ModelTypes } from '../util/model-types';
|
|
27
27
|
import { GridSnapper } from './grid-snapper';
|
|
28
28
|
|
|
29
29
|
@injectable()
|
|
30
|
-
export abstract class CreateWorkflowNodeOperationHandler extends
|
|
31
|
-
@inject(
|
|
32
|
-
protected modelState:
|
|
30
|
+
export abstract class CreateWorkflowNodeOperationHandler extends GModelCreateNodeOperationHandler {
|
|
31
|
+
@inject(ModelState)
|
|
32
|
+
protected override modelState: ModelState;
|
|
33
33
|
|
|
34
|
-
getLocation(operation: CreateNodeOperation): Point | undefined {
|
|
34
|
+
override getLocation(operation: CreateNodeOperation): Point | undefined {
|
|
35
35
|
return GridSnapper.snap(operation.location);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
getContainer(operation: CreateNodeOperation): GModelElement | undefined {
|
|
38
|
+
override getContainer(operation: CreateNodeOperation): GModelElement | undefined {
|
|
39
39
|
const container = super.getContainer(operation);
|
|
40
40
|
|
|
41
41
|
if (container instanceof Category) {
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { GModelElement,
|
|
16
|
+
import { GModelElement, LabelEditValidator, ModelState, ValidationStatus } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { TaskNode } from '../graph-extension';
|
|
19
19
|
|
|
20
20
|
@injectable()
|
|
21
21
|
export class WorkflowLabelEditValidator implements LabelEditValidator {
|
|
22
|
-
@inject(
|
|
23
|
-
protected modelState:
|
|
22
|
+
@inject(ModelState)
|
|
23
|
+
protected modelState: ModelState;
|
|
24
24
|
|
|
25
25
|
validate(label: string, element: GModelElement): ValidationStatus {
|
|
26
26
|
if (label.length < 1) {
|
|
@@ -13,19 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { AbstractLayoutConfigurator, LayoutOptions } from '@eclipse-glsp/layout-elk';
|
|
17
|
+
import { GGraph } from '@eclipse-glsp/server-node';
|
|
17
18
|
import { injectable } from 'inversify';
|
|
18
|
-
import { ModelTypes } from './util/model-types';
|
|
19
19
|
|
|
20
20
|
@injectable()
|
|
21
|
-
export class
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
edges.push(weighted);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
return edges;
|
|
21
|
+
export class WorkflowLayoutConfigurator extends AbstractLayoutConfigurator {
|
|
22
|
+
protected override graphOptions(graph: GGraph): LayoutOptions | undefined {
|
|
23
|
+
return {
|
|
24
|
+
'elk.algorithm': 'layered'
|
|
25
|
+
};
|
|
30
26
|
}
|
|
31
27
|
}
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { GCompartment, GLabel, GModelElement, Marker, MarkerKind, ModelState, ModelValidator } from '@eclipse-glsp/server-node';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { ActivityNode, TaskNode } from '../graph-extension';
|
|
19
19
|
|
|
20
20
|
@injectable()
|
|
21
21
|
export class WorkflowModelValidator implements ModelValidator {
|
|
22
|
-
@inject(
|
|
23
|
-
protected readonly modelState:
|
|
22
|
+
@inject(ModelState)
|
|
23
|
+
protected readonly modelState: ModelState;
|
|
24
24
|
|
|
25
25
|
validate(elements: GModelElement[]): Marker[] {
|
|
26
26
|
const markers: Marker[] = [];
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { NavigationTarget } from '@eclipse-glsp/protocol';
|
|
17
|
-
import {
|
|
17
|
+
import { ModelState } from '@eclipse-glsp/server-node';
|
|
18
18
|
import { NavigationTargetResolution } from '@eclipse-glsp/server-node/lib/features/navigation/navigation-target-resolution';
|
|
19
19
|
import { NavigationTargetResolver } from '@eclipse-glsp/server-node/lib/features/navigation/navigation-target-resolver';
|
|
20
20
|
import { inject, injectable } from 'inversify';
|
|
@@ -22,8 +22,8 @@ import { TaskNode } from '../graph-extension';
|
|
|
22
22
|
|
|
23
23
|
@injectable()
|
|
24
24
|
export class WorkflowNavigationTargetResolver extends NavigationTargetResolver {
|
|
25
|
-
@inject(
|
|
26
|
-
protected readonly modelState:
|
|
25
|
+
@inject(ModelState)
|
|
26
|
+
protected readonly modelState: ModelState;
|
|
27
27
|
|
|
28
28
|
async resolve(navigationTarget: NavigationTarget): Promise<NavigationTargetResolution> {
|
|
29
29
|
if (navigationTarget.args && navigationTarget.args['name']) {
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Args, EditorContext, NavigationTarget } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { GEdge, ModelState } from '@eclipse-glsp/server-node';
|
|
17
18
|
import { NavigationTargetProvider } from '@eclipse-glsp/server-node/lib/features/navigation/navigation-target-provider';
|
|
18
19
|
import { inject, injectable } from 'inversify';
|
|
19
|
-
import { GEdge, GModelState } from '@eclipse-glsp/server-node';
|
|
20
20
|
import { TaskNode } from '../graph-extension';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export abstract class AbstractNextOrPreviousNavigationTargetProvider implements NavigationTargetProvider {
|
|
24
24
|
abstract targetTypeId: string;
|
|
25
25
|
|
|
26
|
-
@inject(
|
|
27
|
-
protected readonly modelState:
|
|
26
|
+
@inject(ModelState)
|
|
27
|
+
protected readonly modelState: ModelState;
|
|
28
28
|
|
|
29
29
|
getTargets(editorContext: EditorContext): NavigationTarget[] {
|
|
30
30
|
const sourceUri = this.modelState.sourceUri;
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Args, EditorContext, NavigationTarget } from '@eclipse-glsp/protocol';
|
|
17
|
-
import {
|
|
17
|
+
import { ModelState } from '@eclipse-glsp/server-node';
|
|
18
|
+
import { JsonOpenerOptions } from '@eclipse-glsp/server-node/lib/features/navigation/json-opener-options';
|
|
18
19
|
import { NavigationTargetProvider } from '@eclipse-glsp/server-node/lib/features/navigation/navigation-target-provider';
|
|
19
20
|
import { inject, injectable } from 'inversify';
|
|
20
21
|
import { TaskNode } from '../graph-extension';
|
|
21
|
-
import { JsonOpenerOptions } from '@eclipse-glsp/server-node/lib/features/navigation/json-opener-options';
|
|
22
22
|
|
|
23
23
|
@injectable()
|
|
24
24
|
export class NodeDocumentationNavigationTargetProvider implements NavigationTargetProvider {
|
|
25
25
|
targetTypeId = 'documentation';
|
|
26
26
|
|
|
27
|
-
@inject(
|
|
28
|
-
protected readonly modelState:
|
|
27
|
+
@inject(ModelState)
|
|
28
|
+
protected readonly modelState: ModelState;
|
|
29
29
|
|
|
30
30
|
getTargets(editorContext: EditorContext): NavigationTarget[] {
|
|
31
31
|
if (editorContext.selectedElementIds.length === 1) {
|
|
@@ -21,10 +21,9 @@ import {
|
|
|
21
21
|
DefaultTypes,
|
|
22
22
|
DeleteElementOperation,
|
|
23
23
|
GModelElement,
|
|
24
|
-
GModelState,
|
|
25
24
|
GNode,
|
|
26
25
|
LabeledAction,
|
|
27
|
-
|
|
26
|
+
ModelState,
|
|
28
27
|
Point
|
|
29
28
|
} from '@eclipse-glsp/server-node';
|
|
30
29
|
import { inject, injectable } from 'inversify';
|
|
@@ -33,8 +32,8 @@ import { ModelTypes } from '../util/model-types';
|
|
|
33
32
|
|
|
34
33
|
@injectable()
|
|
35
34
|
export class WorkflowCommandPaletteActionProvider extends CommandPaletteActionProvider {
|
|
36
|
-
@inject(
|
|
37
|
-
protected modelState:
|
|
35
|
+
@inject(ModelState)
|
|
36
|
+
protected override modelState: ModelState;
|
|
38
37
|
|
|
39
38
|
getPaletteActions(selectedElementIds: string[], selectedElements: GModelElement[], position: Point, args?: Args): LabeledAction[] {
|
|
40
39
|
const actions: LabeledAction[] = [];
|
|
@@ -43,28 +42,33 @@ export class WorkflowCommandPaletteActionProvider extends CommandPaletteActionPr
|
|
|
43
42
|
}
|
|
44
43
|
const index = this.modelState.index;
|
|
45
44
|
// Create actions
|
|
45
|
+
const location = position ?? Point.ORIGIN;
|
|
46
46
|
actions.push(
|
|
47
|
-
|
|
48
|
-
'Create Automated Task',
|
|
49
|
-
[
|
|
50
|
-
'fa-plus-square'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
'Create Manual Task',
|
|
54
|
-
[
|
|
55
|
-
'fa-plus-square'
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
'Create Merge Node',
|
|
59
|
-
[
|
|
60
|
-
'fa-plus-square'
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
'Create Decision Node',
|
|
64
|
-
[
|
|
65
|
-
'fa-plus-square'
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
{
|
|
48
|
+
label: 'Create Automated Task',
|
|
49
|
+
actions: [CreateNodeOperation.create(ModelTypes.AUTOMATED_TASK, { location })],
|
|
50
|
+
icon: 'fa-plus-square'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: 'Create Manual Task',
|
|
54
|
+
actions: [CreateNodeOperation.create(ModelTypes.MANUAL_TASK, { location })],
|
|
55
|
+
icon: 'fa-plus-square'
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: 'Create Merge Node',
|
|
59
|
+
actions: [CreateNodeOperation.create(ModelTypes.MERGE_NODE, { location })],
|
|
60
|
+
icon: 'fa-plus-square'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: 'Create Decision Node',
|
|
64
|
+
actions: [CreateNodeOperation.create(ModelTypes.DECISION_NODE, { location })],
|
|
65
|
+
icon: 'fa-plus-square'
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: 'Create Category',
|
|
69
|
+
actions: [CreateNodeOperation.create(ModelTypes.CATEGORY, { location })],
|
|
70
|
+
icon: 'fa-plus-square'
|
|
71
|
+
}
|
|
68
72
|
);
|
|
69
73
|
// Create edge action between two nodes
|
|
70
74
|
if (selectedElements.length === 1) {
|
|
@@ -89,16 +93,14 @@ export class WorkflowCommandPaletteActionProvider extends CommandPaletteActionPr
|
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
// Delete action
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
actions.push(new LabeledAction('Delete All', [new DeleteElementOperation(selectedElementIds)], 'fa-minus-square'));
|
|
96
|
-
}
|
|
96
|
+
|
|
97
|
+
const label = selectedElementIds.length === 1 ? 'Delete' : 'Delete All';
|
|
98
|
+
actions.push({ label, actions: [DeleteElementOperation.create(selectedElementIds)], icon: 'fa-minus-square' });
|
|
97
99
|
|
|
98
100
|
return actions;
|
|
99
101
|
}
|
|
100
102
|
|
|
101
|
-
|
|
103
|
+
protected createEdgeActions(source: GNode, targets: GNode[]): LabeledAction[] {
|
|
102
104
|
const actions: LabeledAction[] = [];
|
|
103
105
|
targets.forEach(node => actions.push(this.createEdgeAction(`Create Edge to ${this.getLabel(node)}`, source, node)));
|
|
104
106
|
targets.forEach(node =>
|
|
@@ -107,15 +109,31 @@ export class WorkflowCommandPaletteActionProvider extends CommandPaletteActionPr
|
|
|
107
109
|
return actions;
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
return
|
|
112
|
+
protected createWeightedEdgeAction(label: string, source: GNode, node: GNode): LabeledAction {
|
|
113
|
+
return {
|
|
114
|
+
label,
|
|
115
|
+
actions: [
|
|
116
|
+
CreateEdgeOperation.create({
|
|
117
|
+
elementTypeId: ModelTypes.WEIGHTED_EDGE,
|
|
118
|
+
sourceElementId: source.id,
|
|
119
|
+
targetElementId: node.id
|
|
120
|
+
})
|
|
121
|
+
],
|
|
122
|
+
icon: 'fa-plus-square'
|
|
123
|
+
};
|
|
112
124
|
}
|
|
113
125
|
|
|
114
|
-
|
|
115
|
-
return
|
|
126
|
+
protected createEdgeAction(label: string, source: GNode, node: GNode): LabeledAction {
|
|
127
|
+
return {
|
|
128
|
+
label,
|
|
129
|
+
actions: [
|
|
130
|
+
CreateEdgeOperation.create({ elementTypeId: DefaultTypes.EDGE, sourceElementId: source.id, targetElementId: node.id })
|
|
131
|
+
],
|
|
132
|
+
icon: 'fa-plus-square'
|
|
133
|
+
};
|
|
116
134
|
}
|
|
117
135
|
|
|
118
|
-
|
|
136
|
+
protected getLabel(node: GNode): string {
|
|
119
137
|
if (node instanceof TaskNode) {
|
|
120
138
|
return node.name;
|
|
121
139
|
}
|