@eclipse-glsp/client 2.1.0 → 2.2.0-next.325

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 (164) hide show
  1. package/css/ghost-element.css +3 -1
  2. package/css/glsp-sprotty.css +4 -5
  3. package/lib/base/action-dispatcher.d.ts +3 -2
  4. package/lib/base/action-dispatcher.d.ts.map +1 -1
  5. package/lib/base/action-dispatcher.js +17 -2
  6. package/lib/base/action-dispatcher.js.map +1 -1
  7. package/lib/base/action-dispatcher.spec.js +2 -2
  8. package/lib/base/action-dispatcher.spec.js.map +1 -1
  9. package/lib/base/action-handler-registry.d.ts +6 -2
  10. package/lib/base/action-handler-registry.d.ts.map +1 -1
  11. package/lib/base/action-handler-registry.js +31 -3
  12. package/lib/base/action-handler-registry.js.map +1 -1
  13. package/lib/base/command-stack.d.ts +8 -16
  14. package/lib/base/command-stack.d.ts.map +1 -1
  15. package/lib/base/command-stack.js +15 -14
  16. package/lib/base/command-stack.js.map +1 -1
  17. package/lib/base/default.module.d.ts +1 -1
  18. package/lib/base/default.module.d.ts.map +1 -1
  19. package/lib/base/default.module.js +16 -3
  20. package/lib/base/default.module.js.map +1 -1
  21. package/lib/base/editor-context-service.d.ts +44 -3
  22. package/lib/base/editor-context-service.d.ts.map +1 -1
  23. package/lib/base/editor-context-service.js +36 -13
  24. package/lib/base/editor-context-service.js.map +1 -1
  25. package/lib/base/feedback/feedback-action-dispatcher.d.ts +28 -1
  26. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
  27. package/lib/base/feedback/feedback-action-dispatcher.js +27 -2
  28. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  29. package/lib/base/feedback/feedback-command.d.ts +9 -4
  30. package/lib/base/feedback/feedback-command.d.ts.map +1 -1
  31. package/lib/base/feedback/feedback-command.js +14 -3
  32. package/lib/base/feedback/feedback-command.js.map +1 -1
  33. package/lib/base/feedback/index.d.ts +2 -1
  34. package/lib/base/feedback/index.d.ts.map +1 -1
  35. package/lib/base/feedback/index.js +2 -1
  36. package/lib/base/feedback/index.js.map +1 -1
  37. package/lib/base/feedback/set-model-command.d.ts +25 -0
  38. package/lib/base/feedback/set-model-command.d.ts.map +1 -0
  39. package/lib/base/feedback/set-model-command.js +65 -0
  40. package/lib/base/feedback/set-model-command.js.map +1 -0
  41. package/lib/base/feedback/update-model-command.d.ts +17 -6
  42. package/lib/base/feedback/update-model-command.d.ts.map +1 -1
  43. package/lib/base/feedback/update-model-command.js +9 -29
  44. package/lib/base/feedback/update-model-command.js.map +1 -1
  45. package/lib/base/index.d.ts +2 -1
  46. package/lib/base/index.d.ts.map +1 -1
  47. package/lib/base/index.js +2 -1
  48. package/lib/base/index.js.map +1 -1
  49. package/lib/base/model/diagram-loader.d.ts +12 -7
  50. package/lib/base/model/diagram-loader.d.ts.map +1 -1
  51. package/lib/base/model/diagram-loader.js +10 -17
  52. package/lib/base/model/diagram-loader.js.map +1 -1
  53. package/lib/base/model/glsp-model-source.d.ts +1 -1
  54. package/lib/base/model/glsp-model-source.js +1 -1
  55. package/lib/base/ranked.d.ts +11 -1
  56. package/lib/base/ranked.d.ts.map +1 -1
  57. package/lib/base/ranked.js +7 -1
  58. package/lib/base/ranked.js.map +1 -1
  59. package/lib/base/selection-service.d.ts +9 -8
  60. package/lib/base/selection-service.d.ts.map +1 -1
  61. package/lib/base/selection-service.js +11 -14
  62. package/lib/base/selection-service.js.map +1 -1
  63. package/lib/base/selection-service.spec.js +5 -1
  64. package/lib/base/selection-service.spec.js.map +1 -1
  65. package/lib/base/tool-manager/tool-manager.d.ts +10 -8
  66. package/lib/base/tool-manager/tool-manager.d.ts.map +1 -1
  67. package/lib/base/tool-manager/tool-manager.js +25 -22
  68. package/lib/base/tool-manager/tool-manager.js.map +1 -1
  69. package/lib/base/ui-extension-registry.d.ts +23 -0
  70. package/lib/base/ui-extension-registry.d.ts.map +1 -0
  71. package/lib/base/ui-extension-registry.js +51 -0
  72. package/lib/base/ui-extension-registry.js.map +1 -0
  73. package/lib/base/view/key-tool.d.ts +21 -2
  74. package/lib/base/view/key-tool.d.ts.map +1 -1
  75. package/lib/base/view/key-tool.js +21 -3
  76. package/lib/base/view/key-tool.js.map +1 -1
  77. package/lib/base/view/mouse-tool.d.ts +20 -3
  78. package/lib/base/view/mouse-tool.d.ts.map +1 -1
  79. package/lib/base/view/mouse-tool.js +9 -5
  80. package/lib/base/view/mouse-tool.js.map +1 -1
  81. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +6 -4
  82. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
  83. package/lib/features/bounds/glsp-hidden-bounds-updater.js +20 -3
  84. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  85. package/lib/features/bounds/local-bounds.d.ts +8 -4
  86. package/lib/features/bounds/local-bounds.d.ts.map +1 -1
  87. package/lib/features/bounds/local-bounds.js +9 -5
  88. package/lib/features/bounds/local-bounds.js.map +1 -1
  89. package/lib/features/bounds/set-bounds-feedback-command.d.ts +2 -2
  90. package/lib/features/bounds/set-bounds-feedback-command.d.ts.map +1 -1
  91. package/lib/features/bounds/set-bounds-feedback-command.js +5 -3
  92. package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
  93. package/lib/features/change-bounds/position-snapper.d.ts +1 -1
  94. package/lib/features/change-bounds/position-snapper.js +1 -1
  95. package/lib/features/element-template/add-template-element.d.ts +1 -1
  96. package/lib/features/element-template/add-template-element.d.ts.map +1 -1
  97. package/lib/features/element-template/add-template-element.js +6 -5
  98. package/lib/features/element-template/add-template-element.js.map +1 -1
  99. package/lib/features/helper-lines/helper-line-feedback.d.ts +1 -1
  100. package/lib/features/helper-lines/helper-line-feedback.d.ts.map +1 -1
  101. package/lib/features/helper-lines/helper-line-feedback.js +9 -3
  102. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  103. package/lib/features/helper-lines/helper-line-manager-default.d.ts +1 -1
  104. package/lib/features/helper-lines/helper-line-manager-default.js +1 -1
  105. package/lib/features/helper-lines/helper-line-manager.d.ts +1 -1
  106. package/lib/features/hints/type-hint-provider.d.ts +17 -2
  107. package/lib/features/hints/type-hint-provider.d.ts.map +1 -1
  108. package/lib/features/hints/type-hint-provider.js +13 -13
  109. package/lib/features/hints/type-hint-provider.js.map +1 -1
  110. package/lib/features/navigation/navigation-action-handler.d.ts +15 -0
  111. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  112. package/lib/features/navigation/navigation-action-handler.js +2 -2
  113. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  114. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts +1 -1
  115. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +1 -1
  116. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +1 -1
  117. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +1 -1
  118. package/lib/features/validation/validate.d.ts +20 -2
  119. package/lib/features/validation/validate.d.ts.map +1 -1
  120. package/lib/features/validation/validate.js +14 -11
  121. package/lib/features/validation/validate.js.map +1 -1
  122. package/lib/utils/gmodel-util.d.ts +2 -1
  123. package/lib/utils/gmodel-util.d.ts.map +1 -1
  124. package/lib/utils/gmodel-util.js +15 -5
  125. package/lib/utils/gmodel-util.js.map +1 -1
  126. package/lib/utils/html-utils.js +1 -1
  127. package/package.json +7 -6
  128. package/src/base/action-dispatcher.spec.ts +5 -4
  129. package/src/base/action-dispatcher.ts +20 -4
  130. package/src/base/action-handler-registry.ts +24 -3
  131. package/src/base/command-stack.ts +17 -29
  132. package/src/base/default.module.ts +22 -4
  133. package/src/base/editor-context-service.ts +61 -16
  134. package/src/base/feedback/feedback-action-dispatcher.ts +50 -2
  135. package/src/base/feedback/feedback-command.ts +16 -5
  136. package/src/base/feedback/index.ts +3 -1
  137. package/src/base/feedback/set-model-command.ts +45 -0
  138. package/src/base/feedback/update-model-command.ts +9 -46
  139. package/src/base/index.ts +2 -1
  140. package/src/base/model/diagram-loader.ts +21 -14
  141. package/src/base/model/glsp-model-source.ts +1 -1
  142. package/src/base/ranked.ts +15 -1
  143. package/src/base/selection-service.spec.ts +8 -2
  144. package/src/base/selection-service.ts +22 -21
  145. package/src/base/tool-manager/tool-manager.ts +27 -23
  146. package/src/base/ui-extension-registry.ts +33 -0
  147. package/src/base/view/key-tool.ts +16 -4
  148. package/src/base/view/mouse-tool.ts +23 -6
  149. package/src/features/bounds/glsp-hidden-bounds-updater.ts +27 -5
  150. package/src/features/bounds/local-bounds.ts +24 -7
  151. package/src/features/bounds/set-bounds-feedback-command.ts +5 -3
  152. package/src/features/change-bounds/position-snapper.ts +1 -1
  153. package/src/features/element-template/add-template-element.ts +6 -5
  154. package/src/features/helper-lines/helper-line-feedback.ts +9 -3
  155. package/src/features/helper-lines/helper-line-manager-default.ts +1 -1
  156. package/src/features/helper-lines/helper-line-manager.ts +1 -1
  157. package/src/features/hints/type-hint-provider.ts +6 -6
  158. package/src/features/navigation/navigation-action-handler.ts +2 -2
  159. package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +1 -1
  160. package/src/features/tools/marquee-selection/marquee-behavior.spec.ts +1 -1
  161. package/src/features/validation/validate.ts +19 -12
  162. package/src/utils/gmodel-util.ts +16 -5
  163. package/src/utils/html-utils.ts +1 -1
  164. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -14,7 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeleteMarkersCommand = exports.ApplyMarkersCommand = exports.ApplyMarkersAction = exports.SetMarkersActionHandler = exports.ExternalMarkerManager = exports.ValidationFeedbackEmitter = void 0;
16
16
  /********************************************************************************
17
- * Copyright (c) 2019-2023 EclipseSource and others.
17
+ * Copyright (c) 2019-2024 EclipseSource and others.
18
18
  *
19
19
  * This program and the accompanying materials are made available under the
20
20
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -28,8 +28,8 @@ exports.DeleteMarkersCommand = exports.ApplyMarkersCommand = exports.ApplyMarker
28
28
  *
29
29
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
30
30
  ********************************************************************************/
31
- const inversify_1 = require("inversify");
32
31
  const sprotty_1 = require("@eclipse-glsp/sprotty");
32
+ const inversify_1 = require("inversify");
33
33
  const editor_context_service_1 = require("../../base/editor-context-service");
34
34
  const feedback_command_1 = require("../../base/feedback/feedback-command");
35
35
  const gmodel_util_1 = require("../../utils/gmodel-util");
@@ -50,14 +50,21 @@ let ValidationFeedbackEmitter = class ValidationFeedbackEmitter {
50
50
  registerValidationFeedbackAction(action, reason = '') {
51
51
  // De-register feedback and clear existing markers with the same reason
52
52
  const previousFeedbackWithSameReason = this.registeredFeedbackByReason.get(reason);
53
+ let emitter;
53
54
  if (previousFeedbackWithSameReason) {
54
- this.feedbackActionDispatcher.deregisterFeedback(this, [previousFeedbackWithSameReason]);
55
- const deleteMarkersAction = sprotty_1.DeleteMarkersAction.create(previousFeedbackWithSameReason.markers);
56
- this.actionDispatcher().then(dispatcher => dispatcher.dispatch(deleteMarkersAction));
55
+ emitter = previousFeedbackWithSameReason.emitter;
56
+ const deleteMarkersAction = sprotty_1.DeleteMarkersAction.create(previousFeedbackWithSameReason.action.markers);
57
+ this.feedbackActionDispatcher.deregisterFeedback(emitter, [deleteMarkersAction]);
58
+ }
59
+ if (!emitter) {
60
+ emitter = this.createEmitter(reason);
57
61
  }
58
62
  // Register new action responsible for applying markers and re-applying them when the model is updated
59
- this.registeredFeedbackByReason.set(reason, action);
60
- this.feedbackActionDispatcher.registerFeedback(this, [...this.registeredFeedbackByReason.values()]);
63
+ this.registeredFeedbackByReason.set(reason, { action, emitter });
64
+ this.feedbackActionDispatcher.registerFeedback(emitter, [action]);
65
+ }
66
+ createEmitter(reason) {
67
+ return { id: 'validationFeedbackEmitter_' + reason };
61
68
  }
62
69
  };
63
70
  exports.ValidationFeedbackEmitter = ValidationFeedbackEmitter;
@@ -65,10 +72,6 @@ __decorate([
65
72
  (0, inversify_1.inject)(sprotty_1.TYPES.IFeedbackActionDispatcher),
66
73
  __metadata("design:type", Object)
67
74
  ], ValidationFeedbackEmitter.prototype, "feedbackActionDispatcher", void 0);
68
- __decorate([
69
- (0, inversify_1.inject)(sprotty_1.TYPES.IActionDispatcherProvider),
70
- __metadata("design:type", Function)
71
- ], ValidationFeedbackEmitter.prototype, "actionDispatcher", void 0);
72
75
  exports.ValidationFeedbackEmitter = ValidationFeedbackEmitter = __decorate([
73
76
  (0, inversify_1.injectable)()
74
77
  ], ValidationFeedbackEmitter);
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/features/validation/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/features/validation/validate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -173,4 +173,5 @@ export declare function getElementTypeId(input: GModelElement | GModelElementSch
173
173
  export declare function findTopLevelElementByFeature<T>(element: GModelElement, predicate: (t: GModelElement) => t is GModelElement & T, skip?: (t: GModelElement) => boolean): (GModelElement & T) | undefined;
174
174
  export declare function calculateDeltaBetweenPoints(target: Point, source: Point, element: GModelElement): Point;
175
175
  export declare function isVisibleOnCanvas(model: BoundsAwareModelElement): boolean;
176
+ export declare function getDescendantIds(element?: GModelElement, skip?: (t: GModelElement) => boolean): string[];
176
177
  //# sourceMappingURL=gmodel-util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gmodel-util.d.ts","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmodel-util.d.ts","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isVisibleOnCanvas = exports.calculateDeltaBetweenPoints = exports.findTopLevelElementByFeature = exports.getElementTypeId = exports.calcRoute = exports.calcElementAndRoute = exports.calcElementAndRoutingPoints = exports.ROUTE_KINDS = exports.ROUTING_POINT_KINDS = exports.ALL_ROUTING_POINTS = exports.toElementAndRoutingPoints = exports.toElementAndBounds = exports.isSelectableAndBoundsAware = exports.isRoutingHandle = exports.isRoutable = exports.isNonRoutableSelectedBoundsAware = exports.isNonRoutableSelectedMovableBoundsAware = exports.removeCssClasses = exports.addCssClasses = exports.isNotUndefined = exports.hasSelectedElements = exports.getSelectedElementCount = exports.getElements = exports.getMatchingElements = exports.forEachElement = exports.filter = void 0;
3
+ exports.getDescendantIds = exports.isVisibleOnCanvas = exports.calculateDeltaBetweenPoints = exports.findTopLevelElementByFeature = exports.getElementTypeId = exports.calcRoute = exports.calcElementAndRoute = exports.calcElementAndRoutingPoints = exports.ROUTE_KINDS = exports.ROUTING_POINT_KINDS = exports.ALL_ROUTING_POINTS = exports.toElementAndRoutingPoints = exports.toElementAndBounds = exports.isSelectableAndBoundsAware = exports.isRoutingHandle = exports.isRoutable = exports.isNonRoutableSelectedBoundsAware = exports.isNonRoutableSelectedMovableBoundsAware = exports.removeCssClasses = exports.addCssClasses = exports.isNotUndefined = exports.hasSelectedElements = exports.getSelectedElementCount = exports.getElements = exports.getMatchingElements = exports.forEachElement = exports.filter = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2019-2023 EclipseSource and others.
5
+ * Copyright (c) 2019-2024 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -293,10 +293,8 @@ function findTopLevelElementByFeature(element, predicate, skip = _t => false) {
293
293
  }
294
294
  exports.findTopLevelElementByFeature = findTopLevelElementByFeature;
295
295
  function calculateDeltaBetweenPoints(target, source, element) {
296
- var _a;
297
296
  const delta = sprotty_1.Point.subtract(target, source);
298
- const viewport = (0, sprotty_1.findParentByFeature)(element, sprotty_1.isViewport);
299
- const zoom = (_a = viewport === null || viewport === void 0 ? void 0 : viewport.zoom) !== null && _a !== void 0 ? _a : 1;
297
+ const zoom = (0, sprotty_1.getZoom)(element);
300
298
  const adaptedDelta = { x: delta.x / zoom, y: delta.y / zoom };
301
299
  return adaptedDelta;
302
300
  }
@@ -310,4 +308,16 @@ function isVisibleOnCanvas(model) {
310
308
  modelBounds.y + modelBounds.height >= 0);
311
309
  }
312
310
  exports.isVisibleOnCanvas = isVisibleOnCanvas;
311
+ function getDescendantIds(element, skip) {
312
+ if (!element || (skip === null || skip === void 0 ? void 0 : skip(element))) {
313
+ return [];
314
+ }
315
+ const parent = element;
316
+ const ids = [parent.id];
317
+ if (parent instanceof sprotty_1.GParentElement) {
318
+ ids.push(...parent.children.flatMap(child => getDescendantIds(child, skip)));
319
+ }
320
+ return ids;
321
+ }
322
+ exports.getDescendantIds = getDescendantIds;
313
323
  //# sourceMappingURL=gmodel-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gmodel-util.js","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmodel-util.js","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isMouseEvent = exports.createElementFromHTML = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2019-2020 EclipseSource and others.
5
+ * Copyright (c) 2019-2023 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "2.1.0",
3
+ "version": "2.2.0-next.325+8efa638",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "keywords": [
6
6
  "eclipse",
@@ -37,17 +37,15 @@
37
37
  ],
38
38
  "scripts": {
39
39
  "build": "tsc -b",
40
- "clean": "rimraf lib tsconfig.tsbuildinfo coverage .nyc_output",
40
+ "clean": "rimraf lib *.tsbuildinfo coverage .nyc_output",
41
41
  "lint": "eslint --ext .ts,.tsx ./src",
42
- "lint:ci": "yarn lint -o eslint.xml -f checkstyle",
43
- "prepare": "yarn clean && yarn build",
44
42
  "test": "mocha --config ../../.mocharc \"./src/**/*.spec.?(ts|tsx)\"",
45
43
  "test:ci": "export JUNIT_REPORT_PATH=./report.xml && yarn test --reporter mocha-jenkins-reporter",
46
44
  "test:coverage": "nyc yarn test",
47
45
  "watch": "tsc -w"
48
46
  },
49
47
  "dependencies": {
50
- "@eclipse-glsp/sprotty": "2.1.0",
48
+ "@eclipse-glsp/sprotty": "2.2.0-next.325+8efa638",
51
49
  "autocompleter": "^9.1.0",
52
50
  "file-saver": "^2.0.5",
53
51
  "lodash": "4.17.21"
@@ -56,8 +54,11 @@
56
54
  "@types/file-saver": "^2.0.5",
57
55
  "@types/lodash": "4.14.191"
58
56
  },
57
+ "peerDependencies": {
58
+ "inversify": "^6.0.1"
59
+ },
59
60
  "publishConfig": {
60
61
  "access": "public"
61
62
  },
62
- "gitHead": "4e4db4be13e12dff413aaa0e6472dec4a4f24406"
63
+ "gitHead": "8efa63840b0569ae8fd40ada5ef995ea1cdad4cf"
63
64
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2023 EclipseSource and others.
2
+ * Copyright (c) 2023-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,19 +13,20 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { ActionHandlerRegistry, IActionHandler, RequestAction, ResponseAction, TYPES } from '@eclipse-glsp/sprotty';
16
17
  import { expect } from 'chai';
17
18
  import { Container } from 'inversify';
18
- import { ActionHandlerRegistry, IActionHandler, RequestAction, ResponseAction, TYPES } from '@eclipse-glsp/sprotty';
19
- import { IDiagramOptions } from '..';
19
+
20
20
  import { GLSPActionDispatcher } from './action-dispatcher';
21
21
  import { defaultModule } from './default.module';
22
+ import { IDiagramOptions } from './model';
22
23
 
23
24
  const container = new Container();
24
25
  container.load(defaultModule);
25
26
  container.bind(TYPES.IDiagramOptions).toConstantValue(<IDiagramOptions>(<unknown>{
26
27
  clientId: 'client1',
27
28
  diagramType: 'diagramType',
28
- glspClientProvider: async () => ({} as any)
29
+ glspClientProvider: async () => ({}) as any
29
30
  }));
30
31
  const registry = container.get(ActionHandlerRegistry);
31
32
  const actionDispatcher = container.get(GLSPActionDispatcher);
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,8 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, ActionDispatcher, RequestAction, ResponseAction } from '@eclipse-glsp/sprotty';
16
+ import { Action, ActionDispatcher, EMPTY_ROOT, RequestAction, ResponseAction, SetModelAction } from '@eclipse-glsp/sprotty';
17
17
  import { inject, injectable } from 'inversify';
18
+ import { GLSPActionHandlerRegistry } from './action-handler-registry';
18
19
  import { OptionalAction } from './model/glsp-model-source';
19
20
  import { ModelInitializationConstraint } from './model/model-initialization-constraint';
20
21
 
@@ -27,10 +28,25 @@ export class GLSPActionDispatcher extends ActionDispatcher {
27
28
  protected initializationConstraint: ModelInitializationConstraint;
28
29
 
29
30
  override initialize(): Promise<void> {
30
- return super.initialize().then(() => this.startModelInitialization());
31
+ if (!this.initialized) {
32
+ this.initialized = this.doInitialize();
33
+ }
34
+ return this.initialized;
35
+ }
36
+
37
+ protected async doInitialize(): Promise<void> {
38
+ const registry = await this.actionHandlerRegistryProvider();
39
+ this.actionHandlerRegistry = registry;
40
+ if (registry instanceof GLSPActionHandlerRegistry) {
41
+ registry.initialize();
42
+ }
43
+ this.handleAction(SetModelAction.create(EMPTY_ROOT)).catch(() => {
44
+ /* Logged in handleAction method */
45
+ });
46
+ this.startModelInitialization();
31
47
  }
32
48
 
33
- startModelInitialization(): void {
49
+ protected startModelInitialization(): void {
34
50
  if (!this.initializedConstraint) {
35
51
  this.logger.log(this, 'Starting model initialization mode');
36
52
  this.initializationConstraint.onInitialized(() => this.logger.log(this, 'Model initialization completed'));
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2023 EclipseSource and others.
2
+ * Copyright (c) 2023-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,11 +14,19 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import { injectable } from 'inversify';
18
- import { ActionHandlerRegistry } from '@eclipse-glsp/sprotty';
17
+ import { ActionHandlerRegistration, ActionHandlerRegistry, IActionHandlerInitializer, LazyInjector, TYPES } from '@eclipse-glsp/sprotty';
18
+ import { inject, injectable, optional } from 'inversify';
19
19
 
20
20
  @injectable()
21
21
  export class GLSPActionHandlerRegistry extends ActionHandlerRegistry {
22
+ @inject(LazyInjector)
23
+ protected lazyInjector: LazyInjector;
24
+
25
+ protected initialized = false;
26
+
27
+ constructor(@optional() registrations: ActionHandlerRegistration[] = [], @optional() initializers: IActionHandlerInitializer[] = []) {
28
+ super(registrations, initializers);
29
+ }
22
30
  /**
23
31
  * Retrieve a set of all action kinds for which (at least) one
24
32
  * handler is registered
@@ -27,4 +35,17 @@ export class GLSPActionHandlerRegistry extends ActionHandlerRegistry {
27
35
  getHandledActionKinds(): string[] {
28
36
  return Array.from(this.elements.keys());
29
37
  }
38
+
39
+ initialize(): void {
40
+ if (this.initialized) {
41
+ return;
42
+ }
43
+
44
+ this.lazyInjector
45
+ .getAll<ActionHandlerRegistration>(TYPES.ActionHandlerRegistration)
46
+ .forEach(registration => this.register(registration.actionKind, registration.factory()));
47
+ this.lazyInjector
48
+ .getAll<IActionHandlerInitializer>(TYPES.IActionHandlerInitializer)
49
+ .forEach(initializer => this.initializeActionHandler(initializer));
50
+ }
30
51
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -17,50 +17,38 @@ import {
17
17
  CommandStack,
18
18
  Disposable,
19
19
  DisposableCollection,
20
- Emitter,
21
20
  Event,
22
21
  GModelRoot,
23
22
  ICommand,
23
+ LazyInjector,
24
24
  SetModelCommand,
25
- TYPES,
26
25
  UpdateModelCommand
27
26
  } from '@eclipse-glsp/sprotty';
28
- import { injectable, multiInject, optional, preDestroy } from 'inversify';
29
-
30
- /**
31
- * A hook to listen for model root changes. Will be called after a server update
32
- * has been processed
33
- */
34
- export interface IGModelRootListener {
35
- modelRootChanged(root: Readonly<GModelRoot>): void;
36
- }
37
-
38
- /**
39
- * @deprecated Use {@link IGModelRootListener} instead
40
- */
41
- export type ISModelRootListener = IGModelRootListener;
27
+ import { inject, injectable, preDestroy } from 'inversify';
28
+ import { EditorContextService } from './editor-context-service';
42
29
 
43
30
  @injectable()
44
31
  export class GLSPCommandStack extends CommandStack implements Disposable {
45
- @multiInject(TYPES.IGModelRootListener)
46
- @optional()
47
- protected modelRootListeners: IGModelRootListener[] = [];
32
+ @inject(LazyInjector)
33
+ protected lazyInjector: LazyInjector;
48
34
  protected toDispose = new DisposableCollection();
49
35
 
50
- protected override initialize(): void {
51
- super.initialize();
52
- this.toDispose.push(this.onModelRootChangedEmitter);
53
- this.modelRootListeners.forEach(listener => this.onModelRootChanged(root => listener.modelRootChanged(root)));
54
- }
55
-
56
36
  @preDestroy()
57
37
  dispose(): void {
58
38
  this.toDispose.dispose();
59
39
  }
60
40
 
61
- protected onModelRootChangedEmitter = new Emitter<Readonly<GModelRoot>>();
41
+ // Use lazyInjector to resolve circular dependency
42
+ // GLSPActionDispatcher --> GLSPCommandStack --> EditorContextService --> GLSPActionDispatcher
43
+ get editorContext(): EditorContextService {
44
+ return this.lazyInjector.get(EditorContextService);
45
+ }
46
+
47
+ /**
48
+ * @deprecated Use the `EditorContext.onModelRootChanged` event instead
49
+ */
62
50
  get onModelRootChanged(): Event<Readonly<GModelRoot>> {
63
- return this.onModelRootChangedEmitter.event;
51
+ return this.editorContext.onModelRootChanged;
64
52
  }
65
53
 
66
54
  override undo(): Promise<GModelRoot> {
@@ -88,6 +76,6 @@ export class GLSPCommandStack extends CommandStack implements Disposable {
88
76
  }
89
77
 
90
78
  protected notifyListeners(root: Readonly<GModelRoot>): void {
91
- this.onModelRootChangedEmitter.fire(root);
79
+ this.editorContext.notifyModelRootChanged(root, this);
92
80
  }
93
81
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -22,8 +22,10 @@ import {
22
22
  MoveCommand,
23
23
  SetDirtyStateAction,
24
24
  SetEditModeAction,
25
+ SetModelCommand,
25
26
  TYPES,
26
27
  bindAsService,
28
+ bindLazyInjector,
27
29
  bindOrRebind,
28
30
  configureActionHandler,
29
31
  configureCommand,
@@ -35,6 +37,7 @@ import { GLSPActionDispatcher } from './action-dispatcher';
35
37
  import { GLSPActionHandlerRegistry } from './action-handler-registry';
36
38
  import { GLSPCommandStack } from './command-stack';
37
39
  import { EditorContextService } from './editor-context-service';
40
+ import { FeedbackAwareSetModelCommand } from './feedback';
38
41
  import { ModifyCssFeedbackCommand } from './feedback/css-feedback';
39
42
  import { FeedbackActionDispatcher } from './feedback/feedback-action-dispatcher';
40
43
  import { FeedbackAwareUpdateModelCommand } from './feedback/update-model-command';
@@ -48,6 +51,7 @@ import { SelectionClearingMouseListener } from './selection-clearing-mouse-liste
48
51
  import { SelectionService } from './selection-service';
49
52
  import { EnableDefaultToolsAction, EnableToolsAction } from './tool-manager/tool';
50
53
  import { DefaultToolsEnablingKeyListener, ToolManager, ToolManagerActionHandler } from './tool-manager/tool-manager';
54
+ import { GLSPUIExtensionRegistry } from './ui-extension-registry';
51
55
  import { GLSPKeyTool } from './view/key-tool';
52
56
  import { GLSPMouseTool } from './view/mouse-tool';
53
57
  import { GViewRegistry } from './view/view-registry';
@@ -61,7 +65,10 @@ export const defaultModule = new FeatureModule((bind, unbind, isBound, rebind, .
61
65
  sprottyDefaultModule.registry(bind, unbind, isBound, rebind, ...rest);
62
66
  const context = { bind, unbind, isBound, rebind };
63
67
 
68
+ bindLazyInjector(context);
69
+
64
70
  bind(EditorContextService).toSelf().inSingletonScope();
71
+ bind(TYPES.IDiagramStartup).toService(EditorContextService);
65
72
  bind(TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(ctx => async () => ctx.container.get(EditorContextService));
66
73
 
67
74
  configureActionHandler(context, SetEditModeAction.KIND, EditorContextService);
@@ -73,19 +80,22 @@ export const defaultModule = new FeatureModule((bind, unbind, isBound, rebind, .
73
80
  // Model update initialization ------------------------------------
74
81
  bind(TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
75
82
  configureCommand(context, FeedbackAwareUpdateModelCommand);
83
+ rebind(SetModelCommand).to(FeedbackAwareSetModelCommand);
76
84
 
77
85
  bind(GLSPMouseTool).toSelf().inSingletonScope();
78
86
  bindOrRebind(context, MouseTool).toService(GLSPMouseTool);
87
+ bind(TYPES.IDiagramStartup).toService(GLSPMouseTool);
88
+
79
89
  bind(GLSPKeyTool).toSelf().inSingletonScope();
80
90
  bindOrRebind(context, KeyTool).toService(GLSPKeyTool);
91
+ bind(TYPES.IDiagramStartup).toService(GLSPKeyTool);
81
92
 
82
93
  bindAsService(context, TYPES.MouseListener, SelectionClearingMouseListener);
83
-
84
94
  bindOrRebind(context, TYPES.ICommandStack).to(GLSPCommandStack).inSingletonScope();
85
95
  bind(GLSPActionDispatcher).toSelf().inSingletonScope();
86
96
  bindOrRebind(context, TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
87
- bind(GLSPActionHandlerRegistry).toSelf().inSingletonScope();
88
- bindOrRebind(context, ActionHandlerRegistry).toService(GLSPActionHandlerRegistry);
97
+
98
+ bindOrRebind(context, ActionHandlerRegistry).to(GLSPActionHandlerRegistry).inSingletonScope();
89
99
 
90
100
  bindAsService(context, TYPES.ModelSource, GLSPModelSource);
91
101
  bind(DiagramLoader).toSelf().inSingletonScope();
@@ -96,6 +106,8 @@ export const defaultModule = new FeatureModule((bind, unbind, isBound, rebind, .
96
106
  bindOrRebind(context, TYPES.ViewRegistry).to(GViewRegistry).inSingletonScope();
97
107
 
98
108
  bind(SelectionService).toSelf().inSingletonScope();
109
+ bind(TYPES.IGModelRootListener).toService(SelectionService);
110
+ bind(TYPES.IDiagramStartup).toService(SelectionService);
99
111
 
100
112
  // Feedback Support ------------------------------------
101
113
  // Generic re-usable feedback modifying css classes
@@ -108,9 +120,15 @@ export const defaultModule = new FeatureModule((bind, unbind, isBound, rebind, .
108
120
 
109
121
  // Tool manager initialization ------------------------------------
110
122
  bind(TYPES.IToolManager).to(ToolManager).inSingletonScope();
123
+ bind(TYPES.IDiagramStartup).toService(TYPES.IToolManager);
124
+ bind(TYPES.IEditModeListener).toService(TYPES.IToolManager);
111
125
  bind(DefaultToolsEnablingKeyListener).toSelf().inSingletonScope();
112
126
  bind(TYPES.KeyListener).toService(DefaultToolsEnablingKeyListener);
113
127
  bind(ToolManagerActionHandler).toSelf().inSingletonScope();
114
128
  configureActionHandler(context, EnableDefaultToolsAction.KIND, ToolManagerActionHandler);
115
129
  configureActionHandler(context, EnableToolsAction.KIND, ToolManagerActionHandler);
130
+
131
+ bind(GLSPUIExtensionRegistry).toSelf().inSingletonScope();
132
+ bindOrRebind(context, TYPES.UIExtensionRegistry).toService(GLSPUIExtensionRegistry);
133
+ bind(TYPES.IDiagramStartup).toService(GLSPUIExtensionRegistry);
116
134
  });