@eclipse-glsp-examples/workflow-server 0.9.0-next.fc2c95e.5 → 1.1.0-next.d0028ef.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/lib/app.js +4 -4
  2. package/lib/app.js.map +1 -1
  3. package/lib/graph-extension.d.ts +1 -2
  4. package/lib/graph-extension.d.ts.map +1 -1
  5. package/lib/graph-extension.js +5 -23
  6. package/lib/graph-extension.js.map +1 -1
  7. package/lib/handler/create-activity-node-handler.d.ts +4 -4
  8. package/lib/handler/create-activity-node-handler.d.ts.map +1 -1
  9. package/lib/handler/create-activity-node-handler.js +6 -6
  10. package/lib/handler/create-activity-node-handler.js.map +1 -1
  11. package/lib/handler/create-automated-task-handler.d.ts +18 -3
  12. package/lib/handler/create-automated-task-handler.d.ts.map +1 -1
  13. package/lib/handler/create-automated-task-handler.js +4 -19
  14. package/lib/handler/create-automated-task-handler.js.map +1 -1
  15. package/lib/handler/create-category-handler.d.ts +3 -3
  16. package/lib/handler/create-category-handler.d.ts.map +1 -1
  17. package/lib/handler/create-category-handler.js +5 -4
  18. package/lib/handler/create-category-handler.js.map +1 -1
  19. package/lib/handler/create-decision-node-handler.d.ts +18 -3
  20. package/lib/handler/create-decision-node-handler.d.ts.map +1 -1
  21. package/lib/handler/create-decision-node-handler.js +4 -19
  22. package/lib/handler/create-decision-node-handler.js.map +1 -1
  23. package/lib/handler/create-edge-handler.d.ts +3 -3
  24. package/lib/handler/create-edge-handler.d.ts.map +1 -1
  25. package/lib/handler/create-edge-handler.js +2 -2
  26. package/lib/handler/create-edge-handler.js.map +1 -1
  27. package/lib/handler/create-fork-node-handler.js +1 -1
  28. package/lib/handler/create-fork-node-handler.js.map +1 -1
  29. package/lib/handler/create-fork-or-join-node-handler.d.ts +3 -3
  30. package/lib/handler/create-fork-or-join-node-handler.d.ts.map +1 -1
  31. package/lib/handler/create-fork-or-join-node-handler.js +4 -4
  32. package/lib/handler/create-fork-or-join-node-handler.js.map +1 -1
  33. package/lib/handler/create-join-node-handler.js +1 -1
  34. package/lib/handler/create-join-node-handler.js.map +1 -1
  35. package/lib/handler/create-manual-task-handler.d.ts +18 -3
  36. package/lib/handler/create-manual-task-handler.d.ts.map +1 -1
  37. package/lib/handler/create-manual-task-handler.js +4 -19
  38. package/lib/handler/create-manual-task-handler.js.map +1 -1
  39. package/lib/handler/create-merge-node-handler.d.ts +18 -3
  40. package/lib/handler/create-merge-node-handler.d.ts.map +1 -1
  41. package/lib/handler/create-merge-node-handler.js +4 -19
  42. package/lib/handler/create-merge-node-handler.js.map +1 -1
  43. package/lib/handler/create-task-handler.d.ts +5 -5
  44. package/lib/handler/create-task-handler.d.ts.map +1 -1
  45. package/lib/handler/create-task-handler.js +7 -7
  46. package/lib/handler/create-task-handler.js.map +1 -1
  47. package/lib/handler/create-weighted-edge-handler.d.ts +3 -3
  48. package/lib/handler/create-weighted-edge-handler.d.ts.map +1 -1
  49. package/lib/handler/create-weighted-edge-handler.js +2 -2
  50. package/lib/handler/create-weighted-edge-handler.js.map +1 -1
  51. package/lib/handler/create-workflow-node-operation-handler.d.ts +3 -3
  52. package/lib/handler/create-workflow-node-operation-handler.d.ts.map +1 -1
  53. package/lib/handler/create-workflow-node-operation-handler.js +4 -4
  54. package/lib/handler/create-workflow-node-operation-handler.js.map +1 -1
  55. package/lib/index.js +1 -1
  56. package/lib/index.js.map +1 -1
  57. package/lib/labeledit/workflow-label-edit-validator.d.ts +2 -2
  58. package/lib/labeledit/workflow-label-edit-validator.d.ts.map +1 -1
  59. package/lib/labeledit/workflow-label-edit-validator.js +3 -3
  60. package/lib/labeledit/workflow-label-edit-validator.js.map +1 -1
  61. package/lib/layout/workflow-layout-configurator.d.ts.map +1 -1
  62. package/lib/layout/workflow-layout-configurator.js +1 -1
  63. package/lib/layout/workflow-layout-configurator.js.map +1 -1
  64. package/lib/marker/workflow-model-validator.d.ts +2 -2
  65. package/lib/marker/workflow-model-validator.d.ts.map +1 -1
  66. package/lib/marker/workflow-model-validator.js +3 -3
  67. package/lib/marker/workflow-model-validator.js.map +1 -1
  68. package/lib/model/workflow-navigation-target-resolver.d.ts +2 -2
  69. package/lib/model/workflow-navigation-target-resolver.d.ts.map +1 -1
  70. package/lib/model/workflow-navigation-target-resolver.js +3 -3
  71. package/lib/model/workflow-navigation-target-resolver.js.map +1 -1
  72. package/lib/provider/abstract-next-or-previous-navigation-target-provider.d.ts +2 -2
  73. package/lib/provider/abstract-next-or-previous-navigation-target-provider.d.ts.map +1 -1
  74. package/lib/provider/abstract-next-or-previous-navigation-target-provider.js +4 -4
  75. package/lib/provider/abstract-next-or-previous-navigation-target-provider.js.map +1 -1
  76. package/lib/provider/next-node-navigation-target-provider.js +1 -1
  77. package/lib/provider/next-node-navigation-target-provider.js.map +1 -1
  78. package/lib/provider/node-documentation-navigation-target-provider.d.ts +2 -2
  79. package/lib/provider/node-documentation-navigation-target-provider.d.ts.map +1 -1
  80. package/lib/provider/node-documentation-navigation-target-provider.js +4 -4
  81. package/lib/provider/node-documentation-navigation-target-provider.js.map +1 -1
  82. package/lib/provider/previous-node-navigation-target-provider.js +1 -1
  83. package/lib/provider/previous-node-navigation-target-provider.js.map +1 -1
  84. package/lib/provider/workflow-command-palette-action-provider.d.ts +6 -6
  85. package/lib/provider/workflow-command-palette-action-provider.d.ts.map +1 -1
  86. package/lib/provider/workflow-command-palette-action-provider.js +45 -12
  87. package/lib/provider/workflow-command-palette-action-provider.js.map +1 -1
  88. package/lib/provider/workflow-context-menu-item-provider.d.ts +2 -2
  89. package/lib/provider/workflow-context-menu-item-provider.d.ts.map +1 -1
  90. package/lib/provider/workflow-context-menu-item-provider.js +22 -9
  91. package/lib/provider/workflow-context-menu-item-provider.js.map +1 -1
  92. package/lib/workflow-diagram-configuration.js +2 -2
  93. package/lib/workflow-diagram-configuration.js.map +1 -1
  94. package/lib/workflow-diagram-module.d.ts +11 -5
  95. package/lib/workflow-diagram-module.d.ts.map +1 -1
  96. package/lib/workflow-diagram-module.js +25 -18
  97. package/lib/workflow-diagram-module.js.map +1 -1
  98. package/lib/workflow-glsp-server.d.ts.map +1 -1
  99. package/lib/workflow-glsp-server.js +2 -2
  100. package/lib/workflow-glsp-server.js.map +1 -1
  101. package/lib/workflow-popup-factory.js +1 -1
  102. package/lib/workflow-popup-factory.js.map +1 -1
  103. package/package.json +5 -8
  104. package/src/graph-extension.ts +9 -28
  105. package/src/handler/create-activity-node-handler.ts +6 -6
  106. package/src/handler/create-automated-task-handler.ts +5 -5
  107. package/src/handler/create-category-handler.ts +6 -5
  108. package/src/handler/create-decision-node-handler.ts +5 -5
  109. package/src/handler/create-edge-handler.ts +3 -3
  110. package/src/handler/create-fork-or-join-node-handler.ts +4 -4
  111. package/src/handler/create-manual-task-handler.ts +5 -5
  112. package/src/handler/create-merge-node-handler.ts +5 -5
  113. package/src/handler/create-task-handler.ts +7 -7
  114. package/src/handler/create-weighted-edge-handler.ts +3 -3
  115. package/src/handler/create-workflow-node-operation-handler.ts +8 -8
  116. package/src/labeledit/workflow-label-edit-validator.ts +3 -3
  117. package/src/layout/workflow-layout-configurator.ts +1 -1
  118. package/src/marker/workflow-model-validator.ts +3 -3
  119. package/src/model/workflow-navigation-target-resolver.ts +3 -3
  120. package/src/provider/abstract-next-or-previous-navigation-target-provider.ts +3 -3
  121. package/src/provider/node-documentation-navigation-target-provider.ts +4 -4
  122. package/src/provider/workflow-command-palette-action-provider.ts +54 -36
  123. package/src/provider/workflow-context-menu-item-provider.ts +22 -9
  124. package/src/workflow-diagram-module.ts +36 -25
  125. package/src/workflow-glsp-server.ts +2 -2
@@ -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 { Point, Args, GNode, GModelState, ORIGIN_POINT } from '@eclipse-glsp/server-node';
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(relativeLocation: Point | undefined, args: Args | undefined): GNode | undefined {
25
- return this.builder(relativeLocation, this.modelState).build();
24
+ createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
25
+ return this.builder(relativeLocation).build();
26
26
  }
27
27
 
28
- protected builder(point: Point | undefined, modelState: GModelState): ActivityNodeBuilder {
28
+ protected builder(point: Point | undefined): ActivityNodeBuilder {
29
29
  return ActivityNode.builder()
30
- .position(point ?? ORIGIN_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 { ModelTypes } from '../util/model-types';
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, modelState: GModelState): TaskNodeBuilder {
28
- return super.builder(point, modelState).addCssClass('automated');
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 { Point, Args, GNode, GModelState, ORIGIN_POINT } from '@eclipse-glsp/server-node';
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(relativeLocation: Point | undefined, args: Args | undefined): GNode | undefined {
26
- return this.builder(relativeLocation, this.modelState).build();
25
+ createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
26
+ return this.builder(relativeLocation).build();
27
27
  }
28
28
 
29
- protected builder(point: Point | undefined, modelState: GModelState): CategoryNodeBuilder {
29
+ protected builder(point: Point | undefined): CategoryNodeBuilder {
30
30
  return Category.builder()
31
31
  .type(this.elementTypeIds[0])
32
- .position(point ?? ORIGIN_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 { ModelTypes } from '../util/model-types';
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: Point | undefined, modelState: GModelState): ActivityNodeBuilder {
28
- return super.builder(point, modelState).addCssClass('decision');
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 { CreateEdgeOperationHandler, DefaultTypes, GEdge, GEdgeBuilder, GModelElement, GModelState } from '@eclipse-glsp/server-node';
16
+ import { DefaultTypes, GEdge, GEdgeBuilder, GModelCreateEdgeOperationHandler, GModelElement } from '@eclipse-glsp/server-node';
17
17
 
18
- export class CreateEdgeHandler extends CreateEdgeOperationHandler {
18
+ export class CreateEdgeHandler extends GModelCreateEdgeOperationHandler {
19
19
  label = 'Edge';
20
20
  elementTypeIds = [DefaultTypes.EDGE];
21
21
 
22
- createEdge(source: GModelElement, target: GModelElement, modelState: GModelState): GEdge | undefined {
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, GModelState } from '@eclipse-glsp/server-node';
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, modelState: GModelState): ActivityNodeBuilder {
24
- return super.builder(point, modelState).addCssClass('forkOrJoin').size(10, 50);
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 { ModelTypes } from '../util/model-types';
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, modelState: GModelState): TaskNodeBuilder {
28
- return super.builder(point, modelState).addCssClass('manual');
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 { ModelTypes } from '../util/model-types';
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, modelState: GModelState): ActivityNodeBuilder {
28
- return super.builder(point, modelState).addCssClass('merge');
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 { CreateWorkflowNodeOperationHandler } from './create-workflow-node-operation-handler';
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(relativeLocation: Point | undefined, args: Args | undefined): GNode | undefined {
26
- return this.builder(relativeLocation, this.modelState).build();
25
+ createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined {
26
+ return this.builder(relativeLocation).build();
27
27
  }
28
28
 
29
- protected builder(point: Point | undefined, modelState: GModelState): TaskNodeBuilder {
29
+ protected builder(point: Point | undefined): TaskNodeBuilder {
30
30
  return TaskNode.builder()
31
- .position(point ?? ORIGIN_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 { CreateEdgeOperationHandler, GEdge, GModelElement, GModelState } from '@eclipse-glsp/server-node';
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 CreateEdgeOperationHandler {
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, modelState: GModelState): GEdge | undefined {
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
- GModelState,
21
+ ModelState,
22
22
  Point
23
23
  } from '@eclipse-glsp/server-node';
24
- import { injectable, inject } from 'inversify';
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 CreateNodeOperationHandler {
31
- @inject(GModelState)
32
- protected modelState: GModelState;
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, GModelState, LabelEditValidator, ValidationStatus } from '@eclipse-glsp/server-node';
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(GModelState)
23
- protected modelState: GModelState;
22
+ @inject(ModelState)
23
+ protected modelState: ModelState;
24
24
 
25
25
  validate(label: string, element: GModelElement): ValidationStatus {
26
26
  if (label.length < 1) {
@@ -19,7 +19,7 @@ import { injectable } from 'inversify';
19
19
 
20
20
  @injectable()
21
21
  export class WorkflowLayoutConfigurator extends AbstractLayoutConfigurator {
22
- protected graphOptions(graph: GGraph): LayoutOptions | undefined {
22
+ protected override graphOptions(graph: GGraph): LayoutOptions | undefined {
23
23
  return {
24
24
  'elk.algorithm': 'layered'
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 { GModelElement, Marker, ModelValidator, GModelState, MarkerKind, GCompartment, GLabel } from '@eclipse-glsp/server-node';
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(GModelState)
23
- protected readonly modelState: GModelState;
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 { GModelState } from '@eclipse-glsp/server-node';
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(GModelState)
26
- protected readonly modelState: GModelState;
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(GModelState)
27
- protected readonly modelState: GModelState;
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 { GModelState } from '@eclipse-glsp/server-node';
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(GModelState)
28
- protected readonly modelState: GModelState;
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
- ORIGIN_POINT,
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(GModelState)
37
- protected modelState: GModelState;
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
- new LabeledAction(
48
- 'Create Automated Task',
49
- [new CreateNodeOperation(ModelTypes.AUTOMATED_TASK, position ?? ORIGIN_POINT)],
50
- 'fa-plus-square'
51
- ),
52
- new LabeledAction(
53
- 'Create Manual Task',
54
- [new CreateNodeOperation(ModelTypes.MANUAL_TASK, position ?? ORIGIN_POINT)],
55
- 'fa-plus-square'
56
- ),
57
- new LabeledAction(
58
- 'Create Merge Node',
59
- [new CreateNodeOperation(ModelTypes.MERGE_NODE, position ?? ORIGIN_POINT)],
60
- 'fa-plus-square'
61
- ),
62
- new LabeledAction(
63
- 'Create Decision Node',
64
- [new CreateNodeOperation(ModelTypes.DECISION_NODE, position ?? ORIGIN_POINT)],
65
- 'fa-plus-square'
66
- ),
67
- new LabeledAction('Create Category', [new CreateNodeOperation(ModelTypes.CATEGORY, position ?? ORIGIN_POINT)], 'fa-plus-square')
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
- if (selectedElements.length === 1) {
93
- actions.push(new LabeledAction('Delete', [new DeleteElementOperation(selectedElementIds)], 'fa-minus-square'));
94
- } else if (selectedElements.length > 1) {
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
- private createEdgeActions(source: GNode, targets: GNode[]): LabeledAction[] {
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
- private createWeightedEdgeAction(label: string, source: GNode, node: GNode): LabeledAction {
111
- return new LabeledAction(label, [new CreateEdgeOperation(ModelTypes.WEIGHTED_EDGE, source.id, node.id)], 'fa-plus-square');
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
- private createEdgeAction(label: string, source: GNode, node: GNode): LabeledAction {
115
- return new LabeledAction(label, [new CreateEdgeOperation(DefaultTypes.EDGE, source.id, node.id)], 'fa-plus-square');
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
- private getLabel(node: GNode): string {
136
+ protected getLabel(node: GNode): string {
119
137
  if (node instanceof TaskNode) {
120
138
  return node.name;
121
139
  }
@@ -13,26 +13,39 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Args, ContextMenuItemProvider, CreateNodeOperation, GModelState, MenuItem, Point } from '@eclipse-glsp/server-node';
16
+ import { Args, ContextMenuItemProvider, CreateNodeOperation, MenuItem, ModelState, Point } from '@eclipse-glsp/server-node';
17
17
  import { inject, injectable } from 'inversify';
18
18
  import { GridSnapper } from '../handler/grid-snapper';
19
19
  import { ModelTypes } from '../util/model-types';
20
20
 
21
21
  @injectable()
22
22
  export class WorkflowContextMenuItemProvider extends ContextMenuItemProvider {
23
- @inject(GModelState)
24
- protected modelState: GModelState;
23
+ @inject(ModelState)
24
+ protected modelState: ModelState;
25
25
 
26
26
  getItems(selectedElementIds: string[], position: Point, args?: Args): MenuItem[] {
27
- if (this.modelState.isReadonly) {
27
+ if (this.modelState.isReadonly || selectedElementIds.length !== 0) {
28
28
  return [];
29
29
  }
30
30
  const snappedPosition = GridSnapper.snap(position);
31
- const newAutTask = new MenuItem('newAutoTask', 'Automated Task', [
32
- new CreateNodeOperation(ModelTypes.AUTOMATED_TASK, snappedPosition)
33
- ]);
34
- const newManTask = new MenuItem('newManualTask', 'Manual Task', [new CreateNodeOperation(ModelTypes.MANUAL_TASK, snappedPosition)]);
35
- const newChildMenu = new MenuItem('new', 'New', undefined, [newAutTask, newManTask], 'add', '0_new');
31
+ const newAutTask: MenuItem = {
32
+ id: 'newAutoTask',
33
+ label: 'Automated Task',
34
+ actions: [CreateNodeOperation.create(ModelTypes.AUTOMATED_TASK, { location: snappedPosition })]
35
+ };
36
+ const newManTask: MenuItem = {
37
+ id: 'newManualTask',
38
+ label: 'Manual Task',
39
+ actions: [CreateNodeOperation.create(ModelTypes.MANUAL_TASK, { location: snappedPosition })]
40
+ };
41
+ const newChildMenu: MenuItem = {
42
+ id: 'new',
43
+ label: 'New',
44
+ actions: [],
45
+ children: [newAutTask, newManTask],
46
+ icon: 'add',
47
+ group: '0_new'
48
+ };
36
49
  return [newChildMenu];
37
50
  }
38
51
  }