@eclipse-glsp/client 0.9.0-next.da0ffb79 → 0.9.0-next.e0116720

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 (32) hide show
  1. package/LICENSE +642 -277
  2. package/lib/base/types.d.ts +1 -0
  3. package/lib/base/types.d.ts.map +1 -1
  4. package/lib/base/types.js +2 -1
  5. package/lib/base/types.js.map +1 -1
  6. package/lib/features/layout/di.config.d.ts +0 -4
  7. package/lib/features/layout/di.config.d.ts.map +1 -1
  8. package/lib/features/layout/di.config.js +1 -37
  9. package/lib/features/layout/di.config.js.map +1 -1
  10. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  11. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  12. package/lib/features/tools/marquee-behavior.js +128 -0
  13. package/lib/features/tools/marquee-behavior.js.map +1 -0
  14. package/lib/features/tools/marquee-behavior.spec.d.ts +17 -0
  15. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  16. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  17. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  18. package/lib/features/tools/marquee-mouse-tool.d.ts +9 -14
  19. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  20. package/lib/features/tools/marquee-mouse-tool.js +30 -119
  21. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  22. package/lib/index.d.ts +1 -0
  23. package/lib/index.d.ts.map +1 -1
  24. package/lib/index.js +1 -0
  25. package/lib/index.js.map +1 -1
  26. package/package.json +3 -3
  27. package/src/base/types.ts +2 -1
  28. package/src/features/layout/di.config.ts +3 -25
  29. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  30. package/src/features/tools/marquee-behavior.ts +158 -0
  31. package/src/features/tools/marquee-mouse-tool.ts +46 -144
  32. package/src/index.ts +1 -0
@@ -30,11 +30,13 @@ const protocol_1 = require("@eclipse-glsp/protocol");
30
30
  const inversify_1 = require("inversify");
31
31
  const sprotty_1 = require("sprotty");
32
32
  const dom_helper_1 = require("sprotty/lib/base/views/dom-helper");
33
+ const types_1 = require("../../base/types");
33
34
  const drag_aware_mouse_listener_1 = require("../../base/drag-aware-mouse-listener");
34
35
  const viewpoint_util_1 = require("../../utils/viewpoint-util");
35
36
  const css_feedback_1 = require("../tool-feedback/css-feedback");
36
37
  const marquee_tool_feedback_1 = require("../tool-feedback/marquee-tool-feedback");
37
- const base_glsp_tool_1 = require("../tools/base-glsp-tool");
38
+ const base_glsp_tool_1 = require("./base-glsp-tool");
39
+ const marquee_behavior_1 = require("./marquee-behavior");
38
40
  let MarqueeMouseTool = MarqueeMouseTool_1 = class MarqueeMouseTool extends base_glsp_tool_1.BaseGLSPTool {
39
41
  constructor() {
40
42
  super(...arguments);
@@ -44,7 +46,7 @@ let MarqueeMouseTool = MarqueeMouseTool_1 = class MarqueeMouseTool extends base_
44
46
  return MarqueeMouseTool_1.ID;
45
47
  }
46
48
  enable() {
47
- this.marqueeMouseListener = new MarqueeMouseListener(this.domHelper);
49
+ this.marqueeMouseListener = new MarqueeMouseListener(this.domHelper, this.editorContext.modelRoot, this.marqueeBehavior);
48
50
  this.mouseTool.register(this.marqueeMouseListener);
49
51
  this.keyTool.register(this.shiftKeyListener);
50
52
  this.dispatchFeedback([css_feedback_1.cursorFeedbackAction(css_feedback_1.CursorCSS.MARQUEE)]);
@@ -60,19 +62,36 @@ __decorate([
60
62
  inversify_1.inject(sprotty_1.TYPES.DOMHelper),
61
63
  __metadata("design:type", dom_helper_1.DOMHelper)
62
64
  ], MarqueeMouseTool.prototype, "domHelper", void 0);
65
+ __decorate([
66
+ inversify_1.inject(types_1.GLSP_TYPES.IMarqueeBehavior),
67
+ inversify_1.optional(),
68
+ __metadata("design:type", Object)
69
+ ], MarqueeMouseTool.prototype, "marqueeBehavior", void 0);
63
70
  MarqueeMouseTool = MarqueeMouseTool_1 = __decorate([
64
71
  inversify_1.injectable()
65
72
  ], MarqueeMouseTool);
66
73
  exports.MarqueeMouseTool = MarqueeMouseTool;
67
- let MarqueeMouseListener = class MarqueeMouseListener extends drag_aware_mouse_listener_1.DragAwareMouseListener {
68
- constructor(domHelper) {
74
+ class MarqueeMouseListener extends drag_aware_mouse_listener_1.DragAwareMouseListener {
75
+ constructor(domHelper, root, marqueeBehavior) {
69
76
  super();
70
77
  this.isActive = false;
71
78
  this.domHelper = domHelper;
79
+ this.marqueeUtil = new marquee_behavior_1.MarqueeUtil(marqueeBehavior);
80
+ this.nodes = Array.from(root.index
81
+ .all()
82
+ .map(e => e)
83
+ .filter(e => sprotty_1.isSelectable(e))
84
+ .filter(e => e instanceof sprotty_1.SNode));
85
+ const sEdges = Array.from(root.index
86
+ .all()
87
+ .filter(e => e instanceof sprotty_1.SEdge)
88
+ .filter(e => sprotty_1.isSelectable(e))
89
+ .map(e => e.id));
90
+ this.edges = Array.from(document.querySelectorAll('g')).filter(e => sEdges.includes(this.domHelper.findSModelIdByDOMElement(e)));
72
91
  }
73
92
  mouseDown(target, event) {
74
93
  this.isActive = true;
75
- this.startPoint = { x: viewpoint_util_1.getAbsolutePosition(target, event).x, y: viewpoint_util_1.getAbsolutePosition(target, event).y };
94
+ this.marqueeUtil.updateStartPoint(viewpoint_util_1.getAbsolutePosition(target, event));
76
95
  if (event.ctrlKey) {
77
96
  this.previouslySelected = Array.from(target.root.index
78
97
  .all()
@@ -83,21 +102,15 @@ let MarqueeMouseListener = class MarqueeMouseListener extends drag_aware_mouse_l
83
102
  return [];
84
103
  }
85
104
  mouseMove(target, event) {
86
- this.currentPoint = { x: viewpoint_util_1.getAbsolutePosition(target, event).x, y: viewpoint_util_1.getAbsolutePosition(target, event).y };
105
+ this.marqueeUtil.updateCurrentPoint(viewpoint_util_1.getAbsolutePosition(target, event));
87
106
  if (this.isActive) {
88
- const nodeIdsSelected = Array.from(target.root.index
89
- .all()
90
- .map(e => e)
91
- .filter(e => sprotty_1.isSelectable(e))
92
- .filter(e => e instanceof sprotty_1.SNode)
93
- .filter(e => this.isNodeMarked(e))
94
- .map(e => e.id));
95
- const edgeIdsSelected = this.getMarkedEdges(target.root);
107
+ const nodeIdsSelected = this.nodes.filter(e => this.marqueeUtil.isNodeMarked(viewpoint_util_1.toAbsoluteBounds(e))).map(e => e.id);
108
+ const edgeIdsSelected = this.edges.filter(e => this.isEdgeMarked(e)).map(e => this.domHelper.findSModelIdByDOMElement(e));
96
109
  const selected = nodeIdsSelected.concat(edgeIdsSelected);
97
110
  return [
98
111
  new protocol_1.SelectAction([], Array.from(target.root.index.all().map(e => e.id))),
99
112
  new protocol_1.SelectAction(selected.concat(this.previouslySelected), []),
100
- new marquee_tool_feedback_1.DrawMarqueeAction(this.startPoint, { x: viewpoint_util_1.getAbsolutePosition(target, event).x, y: viewpoint_util_1.getAbsolutePosition(target, event).y })
113
+ this.marqueeUtil.drawMarqueeAction()
101
114
  ];
102
115
  }
103
116
  return [];
@@ -109,118 +122,16 @@ let MarqueeMouseListener = class MarqueeMouseListener extends drag_aware_mouse_l
109
122
  }
110
123
  return [new marquee_tool_feedback_1.RemoveMarqueeAction(), new sprotty_1.EnableDefaultToolsAction()];
111
124
  }
112
- getMarkedEdges(root) {
113
- const elements = Array.from(document.querySelectorAll('g'));
114
- const edges = Array.from(root.index
115
- .all()
116
- .filter(e => e instanceof sprotty_1.SEdge)
117
- .filter(e => sprotty_1.isSelectable(e))
118
- .map(e => e.id));
119
- return elements
120
- .filter(e => edges.includes(this.domHelper.findSModelIdByDOMElement(e)))
121
- .filter(e => this.isEdgeMarked(e))
122
- .map(e => this.domHelper.findSModelIdByDOMElement(e));
123
- }
124
125
  isEdgeMarked(element) {
125
126
  if (!element.getAttribute('transform')) {
126
127
  if (element.children[0]) {
127
128
  const path = element.children[0].getAttribute('d');
128
- if (path) {
129
- const points = path.split(/M|L/);
130
- for (let i = 0; i < points.length - 1; i++) {
131
- const coord1 = points[i].split(',');
132
- const coord2 = points[i + 1].split(',');
133
- const point1 = { x: parseInt(coord1[0], 10), y: parseInt(coord1[1], 10) };
134
- const point2 = { x: parseInt(coord2[0], 10), y: parseInt(coord2[1], 10) };
135
- if (this.isLineMarked(point1, point2)) {
136
- return true;
137
- }
138
- }
139
- }
129
+ return this.marqueeUtil.isEdgePathMarked(path);
140
130
  }
141
131
  }
142
132
  return false;
143
133
  }
144
- isLineMarked(point1, point2) {
145
- if (this.pointInRect(point1) || this.pointInRect(point2)) {
146
- return true;
147
- }
148
- if (this.linesIntersect(point1, point2, this.startPoint, { x: this.startPoint.x, y: this.currentPoint.y })) {
149
- return true;
150
- }
151
- if (this.linesIntersect(point1, point2, this.startPoint, { x: this.currentPoint.x, y: this.startPoint.y })) {
152
- return true;
153
- }
154
- if (this.linesIntersect(point1, point2, { x: this.currentPoint.x, y: this.startPoint.y }, this.currentPoint)) {
155
- return true;
156
- }
157
- if (this.linesIntersect(point1, point2, { x: this.startPoint.x, y: this.currentPoint.y }, this.currentPoint)) {
158
- return true;
159
- }
160
- return false;
161
- }
162
- linesIntersect(p1, p2, p3, p4) {
163
- const tCount = (p1.x - p3.x) * (p3.y - p4.y) - (p1.y - p3.y) * (p3.x - p4.x);
164
- const tDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
165
- const t = tCount / tDenom;
166
- const uCount = (p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x);
167
- const uDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
168
- const u = uCount / uDenom;
169
- if (t >= 0.0 && t <= 1.0 && u >= 0.0 && u <= 1.0) {
170
- return true;
171
- }
172
- return false;
173
- }
174
- pointInRect(point) {
175
- const boolX = this.startPoint.x <= this.currentPoint.x
176
- ? this.isBetween(point.x, this.startPoint.x, this.currentPoint.x)
177
- : this.isBetween(point.x, this.currentPoint.x, this.startPoint.x);
178
- const boolY = this.startPoint.y <= this.currentPoint.y
179
- ? this.isBetween(point.y, this.startPoint.y, this.currentPoint.y)
180
- : this.isBetween(point.y, this.currentPoint.y, this.startPoint.y);
181
- return boolX && boolY;
182
- }
183
- isNodeMarked(element) {
184
- const horizontallyIn = this.startPoint.x < this.currentPoint.x
185
- ? this.isElementBetweenXAxis(element, this.startPoint.x, this.currentPoint.x)
186
- : this.isElementBetweenXAxis(element, this.currentPoint.x, this.startPoint.x);
187
- const verticallyIn = this.startPoint.y < this.currentPoint.y
188
- ? this.isElementBetweenYAxis(element, this.startPoint.y, this.currentPoint.y)
189
- : this.isElementBetweenYAxis(element, this.currentPoint.y, this.startPoint.y);
190
- if (horizontallyIn && verticallyIn) {
191
- return true;
192
- }
193
- return false;
194
- }
195
- isElementBetweenXAxis(element, marqueeLeft, marqueeRight) {
196
- if (this.isBetween(marqueeLeft, viewpoint_util_1.toAbsoluteBounds(element).x, viewpoint_util_1.toAbsoluteBounds(element).x + viewpoint_util_1.toAbsoluteBounds(element).width) ||
197
- this.isBetween(marqueeRight, viewpoint_util_1.toAbsoluteBounds(element).x, viewpoint_util_1.toAbsoluteBounds(element).x + viewpoint_util_1.toAbsoluteBounds(element).width)) {
198
- return true;
199
- }
200
- const leftEdge = this.isBetween(viewpoint_util_1.toAbsoluteBounds(element).x, marqueeLeft, marqueeRight);
201
- const rightEdge = this.isBetween(viewpoint_util_1.toAbsoluteBounds(element).x + viewpoint_util_1.toAbsoluteBounds(element).width, marqueeLeft, marqueeRight);
202
- return leftEdge || rightEdge;
203
- }
204
- isElementBetweenYAxis(element, marqueeTop, marqueeBottom) {
205
- if (this.isBetween(marqueeTop, viewpoint_util_1.toAbsoluteBounds(element).y, viewpoint_util_1.toAbsoluteBounds(element).y + viewpoint_util_1.toAbsoluteBounds(element).height) ||
206
- this.isBetween(marqueeBottom, viewpoint_util_1.toAbsoluteBounds(element).y, viewpoint_util_1.toAbsoluteBounds(element).y + viewpoint_util_1.toAbsoluteBounds(element).height)) {
207
- return true;
208
- }
209
- const topEdge = this.isBetween(viewpoint_util_1.toAbsoluteBounds(element).y, marqueeTop, marqueeBottom);
210
- const bottomEdge = this.isBetween(viewpoint_util_1.toAbsoluteBounds(element).y + viewpoint_util_1.toAbsoluteBounds(element).height, marqueeTop, marqueeBottom);
211
- return topEdge || bottomEdge;
212
- }
213
- isBetween(x, lower, upper) {
214
- if (lower <= x && x <= upper) {
215
- return true;
216
- }
217
- return false;
218
- }
219
- };
220
- MarqueeMouseListener = __decorate([
221
- inversify_1.injectable(),
222
- __metadata("design:paramtypes", [dom_helper_1.DOMHelper])
223
- ], MarqueeMouseListener);
134
+ }
224
135
  exports.MarqueeMouseListener = MarqueeMouseListener;
225
136
  let ShiftKeyListener = class ShiftKeyListener extends sprotty_1.KeyListener {
226
137
  keyUp(element, event) {
@@ -1 +1 @@
1
- {"version":3,"file":"marquee-mouse-tool.js","sourceRoot":"","sources":["../../../src/features/tools/marquee-mouse-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marquee-mouse-tool.js","sourceRoot":"","sources":["../../../src/features/tools/marquee-mouse-tool.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -87,6 +87,7 @@ export * from './features/tools/delete-tool';
87
87
  export * from './features/tools/edge-creation-tool';
88
88
  export * from './features/tools/edge-edit-tool';
89
89
  export * from './features/tools/node-creation-tool';
90
+ export * from './features/tools/marquee-behavior';
90
91
  export * from './features/validation/issue-marker';
91
92
  export * from './features/validation/marker-navigator';
92
93
  export * from './features/validation/validate';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -122,6 +122,7 @@ __exportStar(require("./features/tools/delete-tool"), exports);
122
122
  __exportStar(require("./features/tools/edge-creation-tool"), exports);
123
123
  __exportStar(require("./features/tools/edge-edit-tool"), exports);
124
124
  __exportStar(require("./features/tools/node-creation-tool"), exports);
125
+ __exportStar(require("./features/tools/marquee-behavior"), exports);
125
126
  __exportStar(require("./features/validation/issue-marker"), exports);
126
127
  __exportStar(require("./features/validation/marker-navigator"), exports);
127
128
  __exportStar(require("./features/validation/validate"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,gDAAiD;AA4F7C,4BA5FG,mBAAiB,CA4FH;AA3FrB,oEAA4E;AA6FxE,mCA7FG,mBAAwB,CA6FH;AA5F5B,iEAAsE;AA6FlE,gCA7FG,mBAAqB,CA6FH;AA5FzB,+DAAwG;AA8FpG,2GA9FK,sCAA0B,OA8FL;AAD1B,0GA7FiC,qCAAyB,OA6FjC;AA5F7B,+DAAmE;AAsG/D,+BAtGG,mBAAoB,CAsGH;AArGxB,+DAAkE;AAgG9D,8BAhGG,mBAAmB,CAgGH;AA/FvB,0DAA0D;AAuFtD,2BAvFG,mBAAgB,CAuFH;AAtFpB,0DAAyD;AA+FrD,0BA/FG,mBAAe,CA+FH;AA9FnB,2DAA+D;AA4F3D,+BA5FG,mBAAoB,CA4FH;AA3FxB,0EAAiF;AAkG7E,mCAlGG,oBAAwB,CAkGH;AAjG5B,gEAAkE;AAyF9D,8BAzFG,oBAAmB,CAyFH;AAxFvB,gEAAmE;AA6F/D,iGA7FK,6BAAgB,OA6FL;AA5FpB,0DAAmD;AA6E/C,qBA7EG,oBAAU,CA6EH;AA5Ed,4DAA2D;AAqFvD,2BArFG,oBAAgB,CAqFH;AApFpB,mEAAoE;AA6EhE,6BA7EG,oBAAkB,CA6EH;AA5EtB,kEAA8D;AA2E1D,wBA3EG,oBAAa,CA2EH;AA1EjB,2DAAqD;AAuFjD,sBAvFG,oBAAW,CAuFH;AAtFf,gEAA0F;AAwFtF,sGAxFK,kCAAqB,OAwFL;AAjBrB,iGAvE4B,6BAAgB,OAuE5B;AAtEpB,8DAA+D;AA0F3D,6BA1FG,oBAAkB,CA0FH;AAxFtB,0CAAwB;AACxB,2DAAyC;AACzC,qEAAmD;AACnD,sDAAoC;AACpC,6EAA2D;AAC3D,4EAA0D;AAC1D,4EAA0D;AAC1D,uDAAqC;AACrC,2DAAyC;AACzC,+CAA0D;AAAjD,oHAAA,sBAAsB,OAAA;AAC/B,mEAAiD;AACjD,gEAA8C;AAC9C,uDAAqC;AACrC,yEAAuD;AACvD,8DAA4C;AAC5C,oEAAkD;AAClD,2EAAyD;AACzD,0DAAwC;AACxC,+CAA6B;AAC7B,4DAA0C;AAC1C,iEAA+C;AAC/C,+EAA6D;AAC7D,gEAA8C;AAC9C,6FAA2E;AAC3E,sFAAoE;AACpE,2EAAyD;AACzD,0EAAwD;AACxD,wEAAsD;AACtD,6EAA2D;AAC3D,yDAAuC;AACvC,8DAA4C;AAC5C,yDAAuC;AACvC,oEAAkD;AAClD,sGAAoF;AACpF,mEAAiD;AACjD,kFAAgE;AAChE,mFAAiE;AACjE,wDAAsC;AACtC,6DAA2C;AAC3C,wDAAsC;AACtC,mEAAiD;AACjD,uFAAqE;AACrE,kFAAgE;AAChE,wEAAsD;AACtD,mFAAiE;AACjE,sFAAoE;AACpE,iEAA+C;AAC/C,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,sEAAoD;AACpD,+DAA6C;AAC7C,sEAAoD;AACpD,kEAAgD;AAChD,sEAAoD;AACpD,qEAAmD;AACnD,yEAAuD;AACvD,iEAA+C;AAC/C,iFAA+D;AAC/D,8CAA4B;AAC5B,qEAAmD;AACnD,sDAAoC;AACpC,yDAAuC;AACvC,iDAA+B;AAC/B,sDAAoC;AACpC,yDAAuC;AACvC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,gDAAiD;AA6F7C,4BA7FG,mBAAiB,CA6FH;AA5FrB,oEAA4E;AA8FxE,mCA9FG,mBAAwB,CA8FH;AA7F5B,iEAAsE;AA8FlE,gCA9FG,mBAAqB,CA8FH;AA7FzB,+DAAwG;AA+FpG,2GA/FK,sCAA0B,OA+FL;AAD1B,0GA9FiC,qCAAyB,OA8FjC;AA7F7B,+DAAmE;AAuG/D,+BAvGG,mBAAoB,CAuGH;AAtGxB,+DAAkE;AAiG9D,8BAjGG,mBAAmB,CAiGH;AAhGvB,0DAA0D;AAwFtD,2BAxFG,mBAAgB,CAwFH;AAvFpB,0DAAyD;AAgGrD,0BAhGG,mBAAe,CAgGH;AA/FnB,2DAA+D;AA6F3D,+BA7FG,mBAAoB,CA6FH;AA5FxB,0EAAiF;AAmG7E,mCAnGG,oBAAwB,CAmGH;AAlG5B,gEAAkE;AA0F9D,8BA1FG,oBAAmB,CA0FH;AAzFvB,gEAAmE;AA8F/D,iGA9FK,6BAAgB,OA8FL;AA7FpB,0DAAmD;AA8E/C,qBA9EG,oBAAU,CA8EH;AA7Ed,4DAA2D;AAsFvD,2BAtFG,oBAAgB,CAsFH;AArFpB,mEAAoE;AA8EhE,6BA9EG,oBAAkB,CA8EH;AA7EtB,kEAA8D;AA4E1D,wBA5EG,oBAAa,CA4EH;AA3EjB,2DAAqD;AAwFjD,sBAxFG,oBAAW,CAwFH;AAvFf,gEAA0F;AAyFtF,sGAzFK,kCAAqB,OAyFL;AAjBrB,iGAxE4B,6BAAgB,OAwE5B;AAvEpB,8DAA+D;AA2F3D,6BA3FG,oBAAkB,CA2FH;AAzFtB,0CAAwB;AACxB,2DAAyC;AACzC,qEAAmD;AACnD,sDAAoC;AACpC,6EAA2D;AAC3D,4EAA0D;AAC1D,4EAA0D;AAC1D,uDAAqC;AACrC,2DAAyC;AACzC,+CAA0D;AAAjD,oHAAA,sBAAsB,OAAA;AAC/B,mEAAiD;AACjD,gEAA8C;AAC9C,uDAAqC;AACrC,yEAAuD;AACvD,8DAA4C;AAC5C,oEAAkD;AAClD,2EAAyD;AACzD,0DAAwC;AACxC,+CAA6B;AAC7B,4DAA0C;AAC1C,iEAA+C;AAC/C,+EAA6D;AAC7D,gEAA8C;AAC9C,6FAA2E;AAC3E,sFAAoE;AACpE,2EAAyD;AACzD,0EAAwD;AACxD,wEAAsD;AACtD,6EAA2D;AAC3D,yDAAuC;AACvC,8DAA4C;AAC5C,yDAAuC;AACvC,oEAAkD;AAClD,sGAAoF;AACpF,mEAAiD;AACjD,kFAAgE;AAChE,mFAAiE;AACjE,wDAAsC;AACtC,6DAA2C;AAC3C,wDAAsC;AACtC,mEAAiD;AACjD,uFAAqE;AACrE,kFAAgE;AAChE,wEAAsD;AACtD,mFAAiE;AACjE,sFAAoE;AACpE,iEAA+C;AAC/C,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,sEAAoD;AACpD,+DAA6C;AAC7C,sEAAoD;AACpD,kEAAgD;AAChD,sEAAoD;AACpD,oEAAkD;AAClD,qEAAmD;AACnD,yEAAuD;AACvD,iEAA+C;AAC/C,iFAA+D;AAC/D,8CAA4B;AAC5B,qEAAmD;AACnD,sDAAoC;AACpC,yDAAuC;AACvC,iDAA+B;AAC/B,sDAAoC;AACpC,yDAAuC;AACvC,0CAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp/client",
3
- "version": "0.9.0-next.da0ffb79",
3
+ "version": "0.9.0-next.e0116720",
4
4
  "description": "A sprotty-based client for GLSP",
5
5
  "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
6
6
  "keywords": [
@@ -34,9 +34,9 @@
34
34
  "css"
35
35
  ],
36
36
  "dependencies": {
37
- "@eclipse-glsp/protocol": "0.9.0-next.da0ffb79",
37
+ "@eclipse-glsp/protocol": "0.9.0-next.e0116720",
38
38
  "autocompleter": "5.1.0",
39
- "sprotty": "next"
39
+ "sprotty": "0.10.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@babel/runtime": "^7.11.2",
package/src/base/types.ts CHANGED
@@ -34,5 +34,6 @@ export const GLSP_TYPES = {
34
34
  ITool: Symbol.for('ITool'),
35
35
  IDefaultTool: Symbol.for('IDefaultTool'),
36
36
  IEditModeListener: Symbol.for('IEditModeListener'),
37
- LayoutRegistration: Symbol.for('LayoutRegistration')
37
+ LayoutRegistration: Symbol.for('LayoutRegistration'),
38
+ IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
38
39
  };
@@ -13,8 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { ContainerModule, inject, injectable, multiInject, optional } from 'inversify';
17
- import { configureCommand, configureLayout, ILogger, LayoutRegistration, LayoutRegistry, TYPES } from 'sprotty';
16
+ import { ContainerModule } from 'inversify';
17
+ import { configureCommand, configureLayout, VBoxLayouter } from 'sprotty';
18
18
  import { FreeFormLayouter } from './freeform-layout';
19
19
  import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
20
20
  import { VBoxLayouterExt } from './vbox-layout';
@@ -23,30 +23,8 @@ const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind
23
23
  configureCommand({ bind, isBound }, ResizeElementsCommand);
24
24
  configureCommand({ bind, isBound }, AlignElementsCommand);
25
25
 
26
- configureLayout({ bind, isBound }, VBoxLayouterExt.KIND, VBoxLayouterExt);
26
+ rebind(VBoxLayouter).to(VBoxLayouterExt);
27
27
  configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
28
-
29
- bind(OverridableLayoutRegistry).toSelf().inSingletonScope();
30
- rebind(TYPES.LayoutRegistry).toService(OverridableLayoutRegistry);
31
28
  });
32
29
 
33
30
  export default layoutCommandsModule;
34
-
35
- @injectable()
36
- export class OverridableLayoutRegistry extends LayoutRegistry {
37
- // ensure logger is already used in constructor as otherwise not usable
38
- constructor(
39
- @multiInject(TYPES.LayoutRegistration) @optional() layouts: LayoutRegistration[] = [],
40
- @inject(TYPES.ILogger) logger: ILogger
41
- ) {
42
- super();
43
- layouts.forEach(layout => {
44
- if (this.hasKey(layout.layoutKind)) {
45
- logger.warn('Layout kind is already defined and will be overridden: ', layout.layoutKind);
46
- this.deregister(layout.layoutKind);
47
- }
48
- // allow overriding an existing layout kind
49
- this.register(layout.layoutKind, layout.factory());
50
- });
51
- }
52
- }
@@ -0,0 +1,175 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 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
+
17
+ import { expect } from 'chai';
18
+ import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
19
+
20
+ describe('MarqueeUtil', () => {
21
+ function initUtil(marqueeBehavior?: IMarqueeBehavior): MarqueeUtil {
22
+ const util = new MarqueeUtil(marqueeBehavior);
23
+ util.updateStartPoint({ x: 0, y: 0 });
24
+ util.updateCurrentPoint({ x: 0, y: 0 });
25
+ return util;
26
+ }
27
+
28
+ describe('Node marquee', () => {
29
+ const node = { x: 20, y: 20, width: 200, height: 50 };
30
+
31
+ it('touch element', () => {
32
+ const util = initUtil();
33
+ expect(util.isNodeMarked(node)).is.equals(false);
34
+ util.updateCurrentPoint({ x: 30, y: 50 });
35
+ expect(util.isNodeMarked(node)).is.equals(true);
36
+ util.updateCurrentPoint({ x: 250, y: 85 });
37
+ expect(util.isNodeMarked(node)).is.equals(true);
38
+ util.updateStartPoint({ x: 30, y: 25 });
39
+ expect(util.isNodeMarked(node)).is.equals(true);
40
+ });
41
+
42
+ it('touch element (reverse)', () => {
43
+ const util = initUtil();
44
+ expect(util.isNodeMarked(node)).is.equals(false);
45
+ util.updateStartPoint({ x: 30, y: 50 });
46
+ expect(util.isNodeMarked(node)).is.equals(true);
47
+ util.updateStartPoint({ x: 250, y: 85 });
48
+ expect(util.isNodeMarked(node)).is.equals(true);
49
+ util.updateCurrentPoint({ x: 30, y: 25 });
50
+ expect(util.isNodeMarked(node)).is.equals(true);
51
+ });
52
+
53
+ it('mark entire element', () => {
54
+ const util = initUtil({ entireElement: true, entireEdge: false });
55
+ expect(util.isNodeMarked(node)).is.equals(false);
56
+ util.updateCurrentPoint({ x: 30, y: 50 });
57
+ expect(util.isNodeMarked(node)).is.equals(false);
58
+ util.updateCurrentPoint({ x: 250, y: 85 });
59
+ expect(util.isNodeMarked(node)).is.equals(true);
60
+ util.updateStartPoint({ x: 30, y: 85 });
61
+ expect(util.isNodeMarked(node)).is.equals(false);
62
+ });
63
+
64
+ it('mark entire element (reverse)', () => {
65
+ const util = initUtil({ entireElement: true, entireEdge: false });
66
+ expect(util.isNodeMarked(node)).is.equals(false);
67
+ util.updateStartPoint({ x: 30, y: 50 });
68
+ expect(util.isNodeMarked(node)).is.equals(false);
69
+ util.updateStartPoint({ x: 250, y: 85 });
70
+ expect(util.isNodeMarked(node)).is.equals(true);
71
+ util.updateCurrentPoint({ x: 30, y: 85 });
72
+ expect(util.isNodeMarked(node)).is.equals(false);
73
+ });
74
+ });
75
+
76
+ describe('Edge marquee', () => {
77
+ const edge = [
78
+ { x: 20, y: 40 },
79
+ { x: 40, y: 20 }
80
+ ];
81
+ const edge2 = [
82
+ { x: 20, y: 20 },
83
+ { x: 40, y: 40 },
84
+ { x: 50, y: 10 }
85
+ ];
86
+
87
+ it('touch edge', () => {
88
+ const util = initUtil();
89
+ expect(util.isEdgeMarked(edge)).is.equals(false);
90
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
91
+ util.updateCurrentPoint({ x: 20, y: 20 });
92
+ expect(util.isEdgeMarked(edge)).is.equals(false);
93
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
94
+ util.updateCurrentPoint({ x: 30, y: 30 });
95
+ expect(util.isEdgeMarked(edge)).is.equals(true);
96
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
97
+ util.updateCurrentPoint({ x: 50, y: 50 });
98
+ expect(util.isEdgeMarked(edge)).is.equals(true);
99
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
100
+ util.updateStartPoint({ x: 25, y: 25 });
101
+ expect(util.isEdgeMarked(edge)).is.equals(true);
102
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
103
+ });
104
+
105
+ it('touch edge (reverse)', () => {
106
+ const util = initUtil();
107
+ expect(util.isEdgeMarked(edge)).is.equals(false);
108
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
109
+ util.updateStartPoint({ x: 20, y: 20 });
110
+ expect(util.isEdgeMarked(edge)).is.equals(false);
111
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
112
+ util.updateStartPoint({ x: 30, y: 30 });
113
+ expect(util.isEdgeMarked(edge)).is.equals(true);
114
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
115
+ util.updateStartPoint({ x: 50, y: 50 });
116
+ expect(util.isEdgeMarked(edge)).is.equals(true);
117
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
118
+ util.updateCurrentPoint({ x: 25, y: 25 });
119
+ expect(util.isEdgeMarked(edge)).is.equals(true);
120
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
121
+ });
122
+
123
+ it('mark entire edge', () => {
124
+ const util = initUtil({ entireElement: false, entireEdge: true });
125
+ expect(util.isEdgeMarked(edge)).is.equals(false);
126
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
127
+ util.updateCurrentPoint({ x: 20, y: 20 });
128
+ expect(util.isEdgeMarked(edge)).is.equals(false);
129
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
130
+ util.updateCurrentPoint({ x: 30, y: 30 });
131
+ expect(util.isEdgeMarked(edge)).is.equals(false);
132
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
133
+ util.updateCurrentPoint({ x: 45, y: 50 });
134
+ expect(util.isEdgeMarked(edge)).is.equals(true);
135
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
136
+ util.updateCurrentPoint({ x: 55, y: 50 });
137
+ expect(util.isEdgeMarked(edge)).is.equals(true);
138
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
139
+ util.updateStartPoint({ x: 25, y: 25 });
140
+ expect(util.isEdgeMarked(edge)).is.equals(false);
141
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
142
+ });
143
+
144
+ it('mark entire edge (reverse)', () => {
145
+ const util = initUtil({ entireElement: false, entireEdge: true });
146
+ expect(util.isEdgeMarked(edge)).is.equals(false);
147
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
148
+ util.updateStartPoint({ x: 20, y: 20 });
149
+ expect(util.isEdgeMarked(edge)).is.equals(false);
150
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
151
+ util.updateStartPoint({ x: 30, y: 30 });
152
+ expect(util.isEdgeMarked(edge)).is.equals(false);
153
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
154
+ util.updateStartPoint({ x: 45, y: 50 });
155
+ expect(util.isEdgeMarked(edge)).is.equals(true);
156
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
157
+ util.updateStartPoint({ x: 55, y: 50 });
158
+ expect(util.isEdgeMarked(edge)).is.equals(true);
159
+ expect(util.isEdgeMarked(edge2)).is.equals(true);
160
+ util.updateCurrentPoint({ x: 25, y: 25 });
161
+ expect(util.isEdgeMarked(edge)).is.equals(false);
162
+ expect(util.isEdgeMarked(edge2)).is.equals(false);
163
+ });
164
+
165
+ it('edge path should be marked', () => {
166
+ const path = 'M 599.968775008469,272.3972942960205 L 677.0904664855072,232';
167
+ const util = initUtil({ entireElement: false, entireEdge: true });
168
+ expect(util.isEdgePathMarked(path)).is.equals(false);
169
+ util.updateCurrentPoint({ x: 600, y: 300 });
170
+ expect(util.isEdgePathMarked(path)).is.equals(false);
171
+ util.updateCurrentPoint({ x: 700, y: 300 });
172
+ expect(util.isEdgePathMarked(path)).is.equals(true);
173
+ });
174
+ });
175
+ });