@eclipse-glsp-examples/workflow-glsp 0.9.0-next.f6bfed94 → 0.10.0-next.ca17587.154

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/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # workflow-glsp
2
2
 
3
- This package contains the configuration for the GLSP diagrams of the Workflow example language. It contains the base code that is independent from the actual application framework and integration variant. Separating this base configuration and the actual integration code means that it can be reused for various different integration variants of the GLSP Workflow example language e.g in a Theia application, Standalone application, VS Code plugin or integrated into the Eclipse IDE.
3
+ This package contains the configuration for the GLSP diagrams of the Workflow example language.
4
+ It contains the base code that is independent from the actual application framework and integration variant.
5
+ Separating this base configuration and the actual integration code means that it can be reused for various different integration variants of the GLSP Workflow example language e.g in a Theia application, Standalone application, VS Code plugin or integrated into the Eclipse IDE.
4
6
 
5
7
  ## Building
6
8
 
@@ -8,6 +10,7 @@ This package is built with `yarn` and is available from npm via [@eclipse-glsp-e
8
10
 
9
11
  ## More information
10
12
 
11
- For more information, please visit the [Eclipse GLSP Umbrella repository](https://github.com/eclipse-glsp/glsp) and the [Eclipse GLSP Website](https://www.eclipse.org/glsp/). If you have questions, contact us on our [spectrum chat](https://spectrum.chat/glsp/) and have a look at our [communication and support options](https://www.eclipse.org/glsp/contact/).
13
+ For more information, please visit the [Eclipse GLSP Umbrella repository](https://github.com/eclipse-glsp/glsp) and the [Eclipse GLSP Website](https://www.eclipse.org/glsp/).
14
+ If you have questions, contact us on our [spectrum chat](https://spectrum.chat/glsp/) and have a look at our [communication and support options](https://www.eclipse.org/glsp/contact/).
12
15
 
13
16
  ![alt](https://www.eclipse.org/glsp/images/diagramanimated.gif)
package/css/diagram.css CHANGED
@@ -35,12 +35,11 @@
35
35
  }
36
36
 
37
37
  .sprotty-node.mouseover:not(.selected) {
38
- stroke-width: 3;
38
+ stroke-width: 2;
39
39
  }
40
40
 
41
41
  .sprotty-comp {
42
42
  line-height: 3px;
43
- font-weight: normal;
44
43
  text-align: left;
45
44
  }
46
45
 
@@ -53,16 +52,18 @@
53
52
  }
54
53
 
55
54
  .sprotty-label.heading {
56
- font-weight: bold;
55
+ font-weight: normal;
57
56
  }
58
57
 
59
58
  .sprotty-icon {
60
- fill: black;
61
- stroke-width: 0;
59
+ stroke: black;
60
+ stroke-width: 0.5;
61
+ fill: #ffffff;
62
+ opacity: 0.5;
62
63
  }
63
64
 
64
65
  .sprotty-label.icon {
65
- fill: #fff;
66
+ fill: black;
66
67
  }
67
68
 
68
69
  .sprotty-button {
@@ -72,15 +73,15 @@
72
73
 
73
74
  .sprotty-edge {
74
75
  fill: none;
75
- stroke-width: 2px;
76
+ stroke-width: 1px;
76
77
  }
77
78
 
78
79
  .sprotty-edge.selected {
79
- stroke-width: 4px;
80
+ stroke-width: 3px;
80
81
  }
81
82
 
82
83
  .sprotty-edge.mouseover:not(.selected) {
83
- stroke-width: 3px;
84
+ stroke-width: 2px;
84
85
  }
85
86
 
86
87
  .sprotty-edge > .sprotty-routing-handle {
@@ -116,18 +117,22 @@
116
117
  }
117
118
 
118
119
  .sprotty-node.marquee {
119
- fill: grey;
120
+ fill: lightgray;
120
121
  opacity: 0.2;
121
122
  }
122
123
 
123
124
  .task.automated > .sprotty-node {
124
- fill: gray;
125
+ fill: lightgray;
125
126
  }
126
127
 
127
128
  .task.manual > .sprotty-node {
128
129
  fill: lightblue;
129
130
  }
130
131
 
132
+ .category > .sprotty-node {
133
+ fill: lightblue;
134
+ }
135
+
131
136
  text {
132
137
  stroke-width: 0;
133
138
  stroke: #000;
@@ -150,12 +155,12 @@ text {
150
155
  .sprotty-edge.weighted .arrow,
151
156
  .sprotty-edge.weighted.medium,
152
157
  .sprotty-edge.weighted.medium .arrow {
153
- stroke: rgb(53, 53, 226);
158
+ stroke: #007fd4;
154
159
  }
155
160
 
156
161
  .sprotty-edge.weighted .arrow,
157
162
  .sprotty-edge.weighted.medium .arrow {
158
- fill: rgb(53, 53, 226);
163
+ fill: #007fd4;
159
164
  }
160
165
 
161
166
  .sprotty-edge.weighted.high,
@@ -173,7 +178,16 @@ polygon.sprotty-node {
173
178
  }
174
179
 
175
180
  .sprotty-node.selected {
176
- stroke-width: 4;
181
+ stroke-width: 3px;
182
+ }
183
+
184
+ .sprotty-comp {
185
+ stroke: transparent;
186
+ fill: transparent;
187
+ }
188
+
189
+ .sprotty-comp.debug {
190
+ stroke: deepskyblue;
177
191
  }
178
192
 
179
193
  svg {
@@ -1,21 +1,6 @@
1
- /********************************************************************************
2
- * Copyright (c) 2019-2021 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
- import '../css/diagram.css';
17
1
  import 'balloon-css/balloon.min.css';
18
- import 'sprotty/css/edit-label.css';
19
2
  import { Container } from 'inversify';
3
+ import 'sprotty/css/edit-label.css';
4
+ import '../css/diagram.css';
20
5
  export default function createContainer(widgetId: string): Container;
21
6
  //# sourceMappingURL=di.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,oBAAoB,CAAC;AAC5B,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AAyDpC,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AA+BvD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CA8CnE"}
1
+ {"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":"AAsCA,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAgC5B,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAOnE"}
package/lib/di.config.js CHANGED
@@ -15,18 +15,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  *
16
16
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
17
  ********************************************************************************/
18
- require("../css/diagram.css");
19
- require("balloon-css/balloon.min.css");
20
- require("sprotty/css/edit-label.css");
21
18
  const client_1 = require("@eclipse-glsp/client");
19
+ const protocol_1 = require("@eclipse-glsp/protocol");
20
+ require("balloon-css/balloon.min.css");
22
21
  const inversify_1 = require("inversify");
22
+ require("sprotty/css/edit-label.css");
23
+ require("../css/diagram.css");
23
24
  const di_config_1 = require("./direct-task-editing/di.config");
24
25
  const model_1 = require("./model");
25
26
  const workflow_views_1 = require("./workflow-views");
26
27
  const workflowDiagramModule = new inversify_1.ContainerModule((bind, unbind, isBound, rebind) => {
27
28
  rebind(client_1.TYPES.ILogger).to(client_1.ConsoleLogger).inSingletonScope();
28
29
  rebind(client_1.TYPES.LogLevel).toConstantValue(client_1.LogLevel.warn);
29
- bind(client_1.GLSP_TYPES.IMovementRestrictor).to(client_1.NoOverlapMovmentRestrictor).inSingletonScope();
30
30
  bind(client_1.TYPES.ISnapper).to(client_1.GridSnapper);
31
31
  bind(client_1.TYPES.ICommandPaletteActionProvider).to(client_1.RevealNamedElementActionProvider);
32
32
  bind(client_1.TYPES.IContextMenuItemProvider).to(client_1.DeleteElementContextMenuItemProvider);
@@ -38,17 +38,18 @@ const workflowDiagramModule = new inversify_1.ContainerModule((bind, unbind, isB
38
38
  client_1.configureModelElement(context, 'comp:comp', client_1.SCompartment, client_1.SCompartmentView);
39
39
  client_1.configureModelElement(context, 'comp:header', client_1.SCompartment, client_1.SCompartmentView);
40
40
  client_1.configureModelElement(context, 'label:icon', client_1.SLabel, client_1.SLabelView);
41
- client_1.configureModelElement(context, client_1.DefaultTypes.EDGE, client_1.SEdge, workflow_views_1.WorkflowEdgeView);
41
+ client_1.configureModelElement(context, protocol_1.DefaultTypes.EDGE, client_1.SEdge, workflow_views_1.WorkflowEdgeView);
42
42
  client_1.configureModelElement(context, 'edge:weighted', model_1.WeightedEdge, workflow_views_1.WorkflowEdgeView);
43
43
  client_1.configureModelElement(context, 'icon', model_1.Icon, workflow_views_1.IconView);
44
44
  client_1.configureModelElement(context, 'activityNode:merge', model_1.ActivityNode, client_1.DiamondNodeView);
45
45
  client_1.configureModelElement(context, 'activityNode:decision', model_1.ActivityNode, client_1.DiamondNodeView);
46
46
  client_1.configureModelElement(context, 'activityNode:fork', model_1.ActivityNode, client_1.RectangularNodeView);
47
47
  client_1.configureModelElement(context, 'activityNode:join', model_1.ActivityNode, client_1.RectangularNodeView);
48
+ client_1.configureModelElement(context, 'category', model_1.CategoryNode, client_1.RoundedCornerNodeView);
49
+ client_1.configureModelElement(context, 'struct', client_1.SCompartment, client_1.StructureCompartmentView);
48
50
  });
49
51
  function createContainer(widgetId) {
50
- const container = new inversify_1.Container();
51
- container.load(client_1.defaultModule, client_1.defaultGLSPModule, client_1.glspMouseToolModule, client_1.validationModule, client_1.glspSelectModule, client_1.boundsModule, client_1.glspViewportModule, client_1.toolsModule, client_1.glspHoverModule, client_1.fadeModule, client_1.exportModule, client_1.expandModule, client_1.openModule, client_1.buttonModule, client_1.modelSourceModule, client_1.labelEditUiModule, client_1.glspEditLabelModule, workflowDiagramModule, client_1.toolFeedbackModule, client_1.modelHintsModule, client_1.glspContextMenuModule, client_1.glspServerCopyPasteModule, client_1.modelSourceWatcherModule, client_1.glspCommandPaletteModule, client_1.paletteModule, client_1.routingModule, client_1.glspDecorationModule, client_1.edgeLayoutModule, client_1.zorderModule, client_1.edgeIntersectionModule, client_1.layoutCommandsModule, di_config_1.directTaskEditor, client_1.navigationModule, client_1.markerNavigatorModule);
52
+ const container = client_1.createClientContainer(workflowDiagramModule, di_config_1.directTaskEditor);
52
53
  client_1.overrideViewerOptions(container, {
53
54
  baseDiv: widgetId,
54
55
  hiddenDiv: widgetId + '_hidden'
@@ -1 +1 @@
1
- {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAqB8B;AAC9B,qDAAsD;AACtD,uCAAqC;AACrC,yCAAuD;AACvD,sCAAoC;AACpC,8BAA4B;AAC5B,+DAAmE;AACnE,mCAAmF;AACnF,qDAA8D;AAE9D,MAAM,qBAAqB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAChF,MAAM,CAAC,cAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3D,MAAM,CAAC,cAAK,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,cAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,oBAAW,CAAC,CAAC;IACrC,IAAI,CAAC,cAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,yCAAgC,CAAC,CAAC;IAC/E,IAAI,CAAC,cAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,6CAAoC,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAElD,sCAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,8BAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAQ,EAAE,8BAAqB,CAAC,CAAC;IAClF,8BAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAQ,EAAE,8BAAqB,CAAC,CAAC;IAC/E,8BAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,eAAM,EAAE,mBAAU,EAAE,EAAE,MAAM,EAAE,CAAC,yBAAgB,CAAC,EAAE,CAAC,CAAC;IACpG,8BAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAY,EAAE,yBAAgB,CAAC,CAAC;IAC5E,8BAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,qBAAY,EAAE,yBAAgB,CAAC,CAAC;IAC9E,8BAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,eAAM,EAAE,mBAAU,CAAC,CAAC;IACjE,8BAAqB,CAAC,OAAO,EAAE,uBAAY,CAAC,IAAI,EAAE,cAAK,EAAE,iCAAgB,CAAC,CAAC;IAC3E,8BAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,oBAAY,EAAE,iCAAgB,CAAC,CAAC;IAChF,8BAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAI,EAAE,yBAAQ,CAAC,CAAC;IACvD,8BAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,oBAAY,EAAE,wBAAe,CAAC,CAAC;IACpF,8BAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,oBAAY,EAAE,wBAAe,CAAC,CAAC;IACvF,8BAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,oBAAY,EAAE,4BAAmB,CAAC,CAAC;IACvF,8BAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,oBAAY,EAAE,4BAAmB,CAAC,CAAC;IAEvF,8BAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAY,EAAE,8BAAqB,CAAC,CAAC;IAChF,8BAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAY,EAAE,iCAAwB,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC;AAEH,SAAwB,eAAe,CAAC,QAAgB;IACpD,MAAM,SAAS,GAAG,8BAAqB,CAAC,qBAAqB,EAAE,4BAAgB,CAAC,CAAC;IACjF,8BAAqB,CAAC,SAAS,EAAE;QAC7B,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,QAAQ,GAAG,SAAS;KAClC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC;AAPD,kCAOC"}
package/lib/model.d.ts CHANGED
@@ -56,4 +56,9 @@ export declare class Icon extends SShapeElement implements LayoutContainer {
56
56
  height: number;
57
57
  };
58
58
  }
59
+ export declare class CategoryNode extends RectangularNode implements Nameable, WithEditableLabel {
60
+ static readonly DEFAULT_FEATURES: symbol[];
61
+ name: string;
62
+ get editableLabel(): (SChildElement & EditableLabel) | undefined;
63
+ }
59
64
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,WAAW,EACX,aAAa,EAKb,eAAe,EAGf,QAAQ,EAGR,eAAe,EACf,aAAa,EACb,KAAK,EAEL,aAAa,EACb,aAAa,EACb,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,QAAS,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IAChF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAY9B;IACF,IAAI,SAAM;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAS/D;CACJ;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,QAAQ,CAEtE;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,QAAQ,EAAE,MAAM,CAA+B;IAC/C,IAAI;;;MAGF;IACF,WAAW,SAAK;CACnB;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,IAAI,CAAC;QACX,MAAM,OAAO,eAAe,CAAC;QAC7B,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,QAAQ,iBAAiB,CAAC;QAChC,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,SAAS,cAAc,CAAC;KACxC;CACJ;AAED,qBAAa,IAAK,SAAQ,aAAc,YAAW,eAAe;IAC9D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAgF;IAEhH,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D,IAAI;;;MAGF;CACL"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,WAAW,EACX,aAAa,EAKb,eAAe,EAGf,QAAQ,EAGR,eAAe,EACf,aAAa,EACb,KAAK,EAEL,aAAa,EACb,aAAa,EACb,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,QAAS,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IAChF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAY9B;IACF,IAAI,SAAM;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAS/D;CACJ;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,QAAQ,CAEtE;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,QAAQ,EAAE,MAAM,CAA+B;IAC/C,IAAI;;;MAGF;IACF,WAAW,SAAK;CACnB;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,IAAI,CAAC;QACX,MAAM,OAAO,eAAe,CAAC;QAC7B,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,QAAQ,iBAAiB,CAAC;QAChC,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,SAAS,cAAc,CAAC;KACxC;CACJ;AAED,qBAAa,IAAK,SAAQ,aAAc,YAAW,eAAe;IAC9D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAgF;IAEhH,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D,IAAI;;;MAGF;CACL;AAED,qBAAa,YAAa,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IACpF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAW9B;IAEF,IAAI,SAAM;IAEV,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAM/D;CACJ"}
package/lib/model.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Icon = exports.ActivityNode = exports.WeightedEdge = exports.isTaskNode = exports.TaskNode = void 0;
3
+ exports.CategoryNode = exports.Icon = exports.ActivityNode = exports.WeightedEdge = exports.isTaskNode = exports.TaskNode = void 0;
4
4
  /********************************************************************************
5
5
  * Copyright (c) 2020-2021 EclipseSource and others.
6
6
  *
@@ -89,4 +89,30 @@ class Icon extends client_1.SShapeElement {
89
89
  }
90
90
  exports.Icon = Icon;
91
91
  Icon.DEFAULT_FEATURES = [client_1.boundsFeature, client_1.layoutContainerFeature, client_1.layoutableChildFeature, client_1.fadeFeature];
92
+ class CategoryNode extends client_1.RectangularNode {
93
+ constructor() {
94
+ super(...arguments);
95
+ this.name = '';
96
+ }
97
+ get editableLabel() {
98
+ const label = this.children.find(element => element.type === 'label:heading');
99
+ if (label && client_1.isEditableLabel(label)) {
100
+ return label;
101
+ }
102
+ return undefined;
103
+ }
104
+ }
105
+ exports.CategoryNode = CategoryNode;
106
+ CategoryNode.DEFAULT_FEATURES = [
107
+ client_1.deletableFeature,
108
+ client_1.selectFeature,
109
+ client_1.boundsFeature,
110
+ client_1.moveFeature,
111
+ client_1.layoutContainerFeature,
112
+ client_1.fadeFeature,
113
+ client_1.hoverFeedbackFeature,
114
+ client_1.popupFeature,
115
+ client_1.nameFeature,
116
+ client_1.withEditLabelFeature
117
+ ];
92
118
  //# sourceMappingURL=model.js.map
package/lib/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAwB8B;AAE9B,MAAa,QAAS,SAAQ,wBAAe;IAA7C;;QAcI,SAAI,GAAG,EAAE,CAAC;IAed,CAAC;IAVG,IAAI,aAAa;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACjF,IAAI,UAAU,EAAE;YACZ,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YACpF,IAAI,KAAK,IAAI,wBAAe,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AA5BL,4BA6BC;AA5BmB,yBAAgB,GAAG;IAC/B,2BAAkB;IAClB,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC;AAkBN,SAAgB,UAAU,CAAC,OAAsB;IAC7C,OAAO,OAAO,YAAY,QAAQ,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED,MAAa,YAAa,SAAQ,cAAK;CAEtC;AAFD,oCAEC;AAED,MAAa,YAAa,SAAQ,oBAAW;IAA7C;;QACI,aAAQ,GAAW,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QACF,gBAAW,GAAG,CAAC,CAAC;IACpB,CAAC;CAAA;AAPD,oCAOC;AAED,WAAiB,YAAY;IACzB,IAAiB,IAAI,CAQpB;IARD,WAAiB,IAAI;QACJ,YAAO,GAAG,YAAY,CAAC;QACvB,UAAK,GAAG,WAAW,CAAC;QACpB,aAAQ,GAAG,cAAc,CAAC;QAC1B,UAAK,GAAG,WAAW,CAAC;QACpB,SAAI,GAAG,UAAU,CAAC;QAClB,SAAI,GAAG,UAAU,CAAC;QAClB,cAAS,GAAG,WAAW,CAAC;IACzC,CAAC,EARgB,IAAI,GAAJ,iBAAI,KAAJ,iBAAI,QAQpB;AACL,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED,MAAa,IAAK,SAAQ,sBAAa;IAAvC;;QAKI,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;IACN,CAAC;;AATD,oBASC;AARmB,qBAAgB,GAAG,CAAC,sBAAa,EAAE,+BAAsB,EAAE,+BAAsB,EAAE,oBAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAwB8B;AAE9B,MAAa,QAAS,SAAQ,wBAAe;IAA7C;;QAcI,SAAI,GAAG,EAAE,CAAC;IAed,CAAC;IAVG,IAAI,aAAa;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACjF,IAAI,UAAU,EAAE;YACZ,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YACpF,IAAI,KAAK,IAAI,wBAAe,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AA5BL,4BA6BC;AA5BmB,yBAAgB,GAAG;IAC/B,2BAAkB;IAClB,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC;AAkBN,SAAgB,UAAU,CAAC,OAAsB;IAC7C,OAAO,OAAO,YAAY,QAAQ,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED,MAAa,YAAa,SAAQ,cAAK;CAEtC;AAFD,oCAEC;AAED,MAAa,YAAa,SAAQ,oBAAW;IAA7C;;QACI,aAAQ,GAAW,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QACF,gBAAW,GAAG,CAAC,CAAC;IACpB,CAAC;CAAA;AAPD,oCAOC;AAED,WAAiB,YAAY;IACzB,IAAiB,IAAI,CAQpB;IARD,WAAiB,IAAI;QACJ,YAAO,GAAG,YAAY,CAAC;QACvB,UAAK,GAAG,WAAW,CAAC;QACpB,aAAQ,GAAG,cAAc,CAAC;QAC1B,UAAK,GAAG,WAAW,CAAC;QACpB,SAAI,GAAG,UAAU,CAAC;QAClB,SAAI,GAAG,UAAU,CAAC;QAClB,cAAS,GAAG,WAAW,CAAC;IACzC,CAAC,EARgB,IAAI,GAAJ,iBAAI,KAAJ,iBAAI,QAQpB;AACL,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED,MAAa,IAAK,SAAQ,sBAAa;IAAvC;;QAKI,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;IACN,CAAC;;AATD,oBASC;AARmB,qBAAgB,GAAG,CAAC,sBAAa,EAAE,+BAAsB,EAAE,+BAAsB,EAAE,oBAAW,CAAC,CAAC;AAUpH,MAAa,YAAa,SAAQ,wBAAe;IAAjD;;QAcI,SAAI,GAAG,EAAE,CAAC;IASd,CAAC;IAPG,IAAI,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,IAAI,KAAK,IAAI,wBAAe,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AAtBL,oCAuBC;AAtBmB,6BAAgB,GAAG;IAC/B,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,KAAK,EACL,KAAK,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,EAER,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,qBACa,gBAAiB,SAAQ,uCAAuC;IACzE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE;CAiBlG;AAED,qBACa,QAAS,YAAW,KAAK;IAClC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK;IAUvD,SAAS,IAAI,MAAM;CAGtB"}
1
+ {"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,KAAK,EACL,KAAK,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,EAER,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,qBACa,gBAAiB,SAAQ,uCAAuC;IACzE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE;CAiBlG;AAED,qBACa,QAAS,YAAW,KAAK;IAClC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK;IAUvD,SAAS,IAAI,MAAM;CAGtB"}
@@ -45,11 +45,11 @@ let IconView = class IconView {
45
45
  render(element, context) {
46
46
  const radius = this.getRadius();
47
47
  return (JSX.createElement("g", null,
48
- JSX.createElement("circle", { "class-sprotty-icon": true, r: radius, cx: radius, cy: radius }),
48
+ JSX.createElement("circle", { "class-sprotty-icon": true, r: radius, cx: radius + 2, cy: radius + 2 }),
49
49
  context.renderChildren(element)));
50
50
  }
51
51
  getRadius() {
52
- return 16;
52
+ return 14;
53
53
  }
54
54
  };
55
55
  IconView = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAQ8B;AAC9B,yCAAuC;AAEvC,qCAA8B;AAI9B,6DAA6D;AAC7D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,aAAG,EAAE,CAAC;AAGnC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,gDAAuC;IAC/D,iBAAiB,CAAC,IAAW,EAAE,QAAiB,EAAE,OAAyB;QACjF,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,0BAA0B,EAC5B,SAAS,EAAE,UAAU,kBAAS,CAAC,qBAAY,CAAC,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,sBAAU,EAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqB7B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IACjB,MAAM,CAAC,OAAa,EAAE,OAAyB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CACH;YACI,oDAA4B,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAW;YAC7E,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAChC,CACP,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAA;AAdY,QAAQ;IADpB,sBAAU,EAAE;GACA,QAAQ,CAcpB;AAdY,4BAAQ"}
1
+ {"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAQ8B;AAC9B,yCAAuC;AAEvC,qCAA8B;AAG9B,6DAA6D;AAC7D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,aAAG,EAAE,CAAC;AAGnC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,gDAAuC;IAC/D,iBAAiB,CAAC,IAAW,EAAE,QAAiB,EAAE,OAAyB;QACjF,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,0BAA0B,EAC5B,SAAS,EAAE,UAAU,kBAAS,CAAC,qBAAY,CAAC,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,sBAAU,EAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqB7B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IACjB,MAAM,CAAC,OAAa,EAAE,OAAyB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CACH;YACI,oDAA4B,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAW;YACrF,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAChC,CACP,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAA;AAdY,QAAQ;IADpB,sBAAU,EAAE;GACA,QAAQ,CAcpB;AAdY,4BAAQ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp-examples/workflow-glsp",
3
- "version": "0.9.0-next.f6bfed94",
3
+ "version": "0.10.0-next.ca17587.154+ca17587",
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.9.0-next.f6bfed94",
29
+ "@eclipse-glsp/client": "0.10.0-next.ca17587.154+ca17587",
30
30
  "balloon-css": "^0.5.0"
31
31
  },
32
32
  "devDependencies": {
@@ -52,5 +52,6 @@
52
52
  "types": "lib/index",
53
53
  "publishConfig": {
54
54
  "access": "public"
55
- }
55
+ },
56
+ "gitHead": "ca1758788eff5c6f3dafc8f4ca96b0d3bf8adc10"
56
57
  }
package/src/di.config.ts CHANGED
@@ -13,75 +13,40 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import '../css/diagram.css';
17
- import 'balloon-css/balloon.min.css';
18
- import 'sprotty/css/edit-label.css';
19
-
20
16
  import {
21
- boundsModule,
22
- buttonModule,
23
17
  configureDefaultModelElements,
24
18
  configureModelElement,
25
19
  ConsoleLogger,
26
- defaultGLSPModule,
27
- defaultModule,
28
- DefaultTypes,
20
+ createClientContainer,
29
21
  DeleteElementContextMenuItemProvider,
30
22
  DiamondNodeView,
31
- edgeIntersectionModule,
32
- edgeLayoutModule,
33
23
  editLabelFeature,
34
- expandModule,
35
- exportModule,
36
- fadeModule,
37
- GLSP_TYPES,
38
- glspCommandPaletteModule,
39
- glspContextMenuModule,
40
- glspDecorationModule,
41
- glspEditLabelModule,
42
- glspHoverModule,
43
- glspMouseToolModule,
44
- glspSelectModule,
45
- glspServerCopyPasteModule,
46
- glspViewportModule,
47
24
  GridSnapper,
48
- labelEditUiModule,
49
- layoutCommandsModule,
50
25
  LogLevel,
51
- markerNavigatorModule,
52
- modelHintsModule,
53
- modelSourceModule,
54
- modelSourceWatcherModule,
55
- navigationModule,
56
- NoOverlapMovmentRestrictor,
57
- openModule,
58
26
  overrideViewerOptions,
59
- paletteModule,
60
27
  RectangularNodeView,
61
28
  RevealNamedElementActionProvider,
62
29
  RoundedCornerNodeView,
63
- routingModule,
64
30
  SCompartment,
65
31
  SCompartmentView,
66
32
  SEdge,
67
33
  SLabel,
68
34
  SLabelView,
69
- toolFeedbackModule,
70
- toolsModule,
71
- TYPES,
72
- validationModule,
73
- zorderModule
35
+ StructureCompartmentView,
36
+ TYPES
74
37
  } from '@eclipse-glsp/client';
38
+ import { DefaultTypes } from '@eclipse-glsp/protocol';
39
+ import 'balloon-css/balloon.min.css';
75
40
  import { Container, ContainerModule } from 'inversify';
76
-
41
+ import 'sprotty/css/edit-label.css';
42
+ import '../css/diagram.css';
77
43
  import { directTaskEditor } from './direct-task-editing/di.config';
78
- import { ActivityNode, Icon, TaskNode, WeightedEdge } from './model';
44
+ import { ActivityNode, CategoryNode, Icon, TaskNode, WeightedEdge } from './model';
79
45
  import { IconView, WorkflowEdgeView } from './workflow-views';
80
46
 
81
47
  const workflowDiagramModule = new ContainerModule((bind, unbind, isBound, rebind) => {
82
48
  rebind(TYPES.ILogger).to(ConsoleLogger).inSingletonScope();
83
49
  rebind(TYPES.LogLevel).toConstantValue(LogLevel.warn);
84
- bind(GLSP_TYPES.IMovementRestrictor).to(NoOverlapMovmentRestrictor).inSingletonScope();
85
50
  bind(TYPES.ISnapper).to(GridSnapper);
86
51
  bind(TYPES.ICommandPaletteActionProvider).to(RevealNamedElementActionProvider);
87
52
  bind(TYPES.IContextMenuItemProvider).to(DeleteElementContextMenuItemProvider);
@@ -101,52 +66,16 @@ const workflowDiagramModule = new ContainerModule((bind, unbind, isBound, rebind
101
66
  configureModelElement(context, 'activityNode:decision', ActivityNode, DiamondNodeView);
102
67
  configureModelElement(context, 'activityNode:fork', ActivityNode, RectangularNodeView);
103
68
  configureModelElement(context, 'activityNode:join', ActivityNode, RectangularNodeView);
69
+
70
+ configureModelElement(context, 'category', CategoryNode, RoundedCornerNodeView);
71
+ configureModelElement(context, 'struct', SCompartment, StructureCompartmentView);
104
72
  });
105
73
 
106
74
  export default function createContainer(widgetId: string): Container {
107
- const container = new Container();
108
-
109
- container.load(
110
- defaultModule,
111
- defaultGLSPModule,
112
- glspMouseToolModule,
113
- validationModule,
114
- glspSelectModule,
115
- boundsModule,
116
- glspViewportModule,
117
- toolsModule,
118
- glspHoverModule,
119
- fadeModule,
120
- exportModule,
121
- expandModule,
122
- openModule,
123
- buttonModule,
124
- modelSourceModule,
125
- labelEditUiModule,
126
- glspEditLabelModule,
127
- workflowDiagramModule,
128
- toolFeedbackModule,
129
- modelHintsModule,
130
- glspContextMenuModule,
131
- glspServerCopyPasteModule,
132
- modelSourceWatcherModule,
133
- glspCommandPaletteModule,
134
- paletteModule,
135
- routingModule,
136
- glspDecorationModule,
137
- edgeLayoutModule,
138
- zorderModule,
139
- edgeIntersectionModule,
140
- layoutCommandsModule,
141
- directTaskEditor,
142
- navigationModule,
143
- markerNavigatorModule
144
- );
145
-
75
+ const container = createClientContainer(workflowDiagramModule, directTaskEditor);
146
76
  overrideViewerOptions(container, {
147
77
  baseDiv: widgetId,
148
78
  hiddenDiv: widgetId + '_hidden'
149
79
  });
150
-
151
80
  return container;
152
81
  }
package/src/model.ts CHANGED
@@ -109,3 +109,28 @@ export class Icon extends SShapeElement implements LayoutContainer {
109
109
  height: 32
110
110
  };
111
111
  }
112
+
113
+ export class CategoryNode extends RectangularNode implements Nameable, WithEditableLabel {
114
+ static readonly DEFAULT_FEATURES = [
115
+ deletableFeature,
116
+ selectFeature,
117
+ boundsFeature,
118
+ moveFeature,
119
+ layoutContainerFeature,
120
+ fadeFeature,
121
+ hoverFeedbackFeature,
122
+ popupFeature,
123
+ nameFeature,
124
+ withEditLabelFeature
125
+ ];
126
+
127
+ name = '';
128
+
129
+ get editableLabel(): (SChildElement & EditableLabel) | undefined {
130
+ const label = this.children.find(element => element.type === 'label:heading');
131
+ if (label && isEditableLabel(label)) {
132
+ return label;
133
+ }
134
+ return undefined;
135
+ }
136
+ }
@@ -25,7 +25,6 @@ import {
25
25
  import { injectable } from 'inversify';
26
26
  import { VNode } from 'snabbdom';
27
27
  import { svg } from 'sprotty';
28
-
29
28
  import { Icon } from './model';
30
29
 
31
30
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -58,13 +57,13 @@ export class IconView implements IView {
58
57
  const radius = this.getRadius();
59
58
  return (
60
59
  <g>
61
- <circle class-sprotty-icon={true} r={radius} cx={radius} cy={radius}></circle>
60
+ <circle class-sprotty-icon={true} r={radius} cx={radius + 2} cy={radius + 2}></circle>
62
61
  {context.renderChildren(element)}
63
62
  </g>
64
63
  );
65
64
  }
66
65
 
67
66
  getRadius(): number {
68
- return 16;
67
+ return 14;
69
68
  }
70
69
  }