Skip to content

Commit b70f404

Browse files
authored
Delete link UI/UX (ITISFoundation#2743)
1 parent 99b8022 commit b70f404

File tree

9 files changed

+47
-31
lines changed

9 files changed

+47
-31
lines changed

services/web/client/source/class/osparc/component/workbench/WorkbenchUI.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -440,8 +440,9 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
440440
return selectedNodeIDs;
441441
},
442442

443-
resetSelectedNodes: function() {
443+
resetSelection: function() {
444444
this.__setSelectedNodes([]);
445+
this.__selectedItemChanged(null);
445446
},
446447

447448
__setSelectedNodes: function(selectedNodeUIs) {
@@ -526,6 +527,11 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
526527
this.__edgesUI.push(edgeUI);
527528

528529
const that = this;
530+
edgeUI.getRepresentation().widerCurve.node.addEventListener("click", e => {
531+
// this is needed to get out of the context of svg
532+
that.__selectedItemChanged(edgeUI.getEdgeId()); // eslint-disable-line no-underscore-dangle
533+
e.stopPropagation();
534+
}, this);
529535
edgeUI.getRepresentation().node.addEventListener("click", e => {
530536
// this is needed to get out of the context of svg
531537
that.__selectedItemChanged(edgeUI.getEdgeId()); // eslint-disable-line no-underscore-dangle
@@ -994,7 +1000,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
9941000

9951001
_loadModel: async function(model) {
9961002
this._clearAll();
997-
this.resetSelectedNodes();
1003+
this.resetSelection();
9981004
this._currentModel = model;
9991005
if (model) {
10001006
const isContainer = model.isContainer();
@@ -1419,7 +1425,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
14191425
this.fireDataEvent("removeNode", selectedNodeIDs[0]);
14201426
break;
14211427
case "Escape":
1422-
this.resetSelectedNodes();
1428+
this.resetSelection();
14231429
break;
14241430
}
14251431
} else if (keyEvent.getKeyIdentifier() === "Delete" && this.__isSelectedItemAnEdge()) {
@@ -1428,16 +1434,13 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
14281434
} else if (keyEvent.getKeyIdentifier() === "Delete") {
14291435
this.fireDataEvent("removeNodes", selectedNodeIDs);
14301436
} else if (keyEvent.getKeyIdentifier() === "Escape") {
1431-
this.resetSelectedNodes();
1437+
this.resetSelection();
14321438
this.__removeTempEdge();
14331439
this.__removePointerMoveListener();
14341440
}
14351441
}, this);
14361442

1437-
this.__workbenchLayout.addListener("tap", () => {
1438-
this.resetSelectedNodes();
1439-
this.__selectedItemChanged(null);
1440-
}, this);
1443+
this.__workbenchLayout.addListener("tap", () => this.resetSelection(), this);
14411444
this.__workbenchLayout.addListener("dbltap", e => this.__openServiceCatalog(e), this);
14421445
this.__workbenchLayout.addListener("resize", () => this.__updateHint(), this);
14431446

services/web/client/source/class/osparc/component/workbench/WorkbenchUIPreview.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUIPreview", {
5454
// overridden
5555
_loadModel: function(model) {
5656
this._clearAll();
57-
this.resetSelectedNodes();
57+
this.resetSelection();
5858
this._currentModel = model;
5959
if (model) {
6060
qx.ui.core.queue.Visibility.flush();

services/web/client/source/class/osparc/desktop/WorkbenchView.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,7 +1091,7 @@ qx.Class.define("osparc.desktop.WorkbenchView", {
10911091
this.nodeSelected(currentModel.getNodeId ? currentModel.getNodeId() : this.getStudy().getUuid());
10921092
this.__workbenchChanged();
10931093

1094-
this.__workbenchUI.resetSelectedNodes();
1094+
this.__workbenchUI.resetSelection();
10951095
},
10961096

10971097
__ungroupSelection: function() {
@@ -1121,7 +1121,7 @@ qx.Class.define("osparc.desktop.WorkbenchView", {
11211121
this.nodeSelected(currentModel.getNodeId ? currentModel.getNodeId() : this.getStudy().getUuid());
11221122
this.__workbenchChanged();
11231123

1124-
this.__workbenchUI.resetSelectedNodes();
1124+
this.__workbenchUI.resetSelection();
11251125
},
11261126

11271127
__attachEventHandlers: function() {

services/web/client/source/class/osparc/theme/ColorDark.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ qx.Theme.define("osparc.theme.ColorDark", {
44
colors: {
55
"workbench-edge-comp-active": "#777777",
66
"workbench-edge-api-active": "#BBBBBB",
7-
"workbench-edge-selected": "#0000FF",
87
"workbench-start-hint": "#505050",
98

109
"node-selected-background": "#666666",
@@ -13,8 +12,6 @@ qx.Theme.define("osparc.theme.ColorDark", {
1312

1413
"logger-debug-message": "#FFFFFF",
1514
"logger-info-message": "#FFFFFF",
16-
"logger-warning-message": "#FFFF00",
17-
"logger-error-message": "#FF0000",
1815

1916
"service-window-hint": "#808080",
2017

services/web/client/source/class/osparc/theme/ColorLight.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ qx.Theme.define("osparc.theme.ColorLight", {
44
colors: {
55
"workbench-edge-comp-active": "#888888",
66
"workbench-edge-api-active": "#444444",
7-
"workbench-edge-selected": "#FFFF00",
87
"workbench-start-hint": "#AFAFAF",
98

109
"node-selected-background": "#999999",
@@ -13,8 +12,6 @@ qx.Theme.define("osparc.theme.ColorLight", {
1312

1413
"logger-debug-message": "#000000",
1514
"logger-info-message": "#000000",
16-
"logger-warning-message": "#FFFF00",
17-
"logger-error-message": "#FF0000",
1815

1916
"service-window-hint": "#7F7F7F",
2017

services/web/client/source/class/osparc/theme/ColorLightBlue.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ qx.Theme.define("osparc.theme.ColorLightBlue", {
148148

149149
"workbench-edge-comp-active": "#888888",
150150
"workbench-edge-api-active": "#444444",
151-
"workbench-edge-selected": "#FFFF00",
152151
"workbench-start-hint": "#AFAFAF",
153152

154153
"node-selected-background": "#999999",
@@ -157,8 +156,6 @@ qx.Theme.define("osparc.theme.ColorLightBlue", {
157156

158157
"logger-debug-message": "#000000",
159158
"logger-info-message": "#000000",
160-
"logger-warning-message": "#FFFF00",
161-
"logger-error-message": "#FF0000",
162159

163160
"service-window-hint": "#7F7F7F",
164161

services/web/client/source/class/osparc/theme/ColorPurple.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ qx.Theme.define("osparc.theme.ColorPurple", {
44
colors: {
55
"workbench-edge-comp-active": "#888888",
66
"workbench-edge-api-active": "#444444",
7-
"workbench-edge-selected": "#FFFF00",
87
"workbench-start-hint": "#AFAFAF",
98

109
"node-selected-background": "#5495d2",
@@ -13,8 +12,6 @@ qx.Theme.define("osparc.theme.ColorPurple", {
1312

1413
"logger-debug-message": "#000000",
1514
"logger-info-message": "#000000",
16-
"logger-warning-message": "#FFFF00",
17-
"logger-error-message": "#FF0000",
1815

1916
"service-window-hint": "#7F7F7F",
2017

services/web/client/source/class/osparc/theme/mixin/Color.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@ qx.Theme.define("osparc.theme.mixin.Color", {
22
colors: {
33
"activitytree-background-cpu": "#2C7CCE",
44
"activitytree-background-memory": "#358475",
5+
56
"ready-green": "#58A6FF", // It is not really green because of reasons
67
"warning-yellow": "#FFFF00",
78
"failed-red": "#FF2D2D",
89
"busy-orange": "#FFA500",
10+
11+
"logger-warning-message": "#FFFF00",
12+
"logger-error-message": "#FF0000",
13+
914
"contrasted-text-dark": "#222222",
10-
"contrasted-text-light": "#EEEEEE"
15+
"contrasted-text-light": "#EEEEEE",
16+
17+
"workbench-edge-selected": "#FFFF00"
1118
}
1219
});

services/web/client/source/class/osparc/wrapper/Svg.js

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,18 @@ qx.Class.define("osparc.wrapper.Svg", {
6868

6969
osparc.wrapper.Svg.curateCurveControls(controls);
7070

71-
const edge = draw.path()
71+
const widerCurve = draw.path()
72+
.M(controls[0].x, controls[0].y)
73+
.C(controls[1], controls[2], controls[3])
74+
.style({
75+
cursor: "pointer"
76+
})
77+
.opacity(0)
78+
.stroke({
79+
width: edgeWidth*4
80+
});
81+
82+
const curve = draw.path()
7283
.M(controls[0].x, controls[0].y)
7384
.C(controls[1], controls[2], controls[3])
7485
.fill("none")
@@ -80,33 +91,40 @@ qx.Class.define("osparc.wrapper.Svg", {
8091
color: edgeColor,
8192
dasharray: dashed ? 5 : 0
8293
});
94+
curve.widerCurve = widerCurve;
8395

8496
const portArrow = draw.marker(arrowSize, arrowSize, add => {
8597
add.path("M 0 0 V 4 L 2 2 Z")
8698
.fill(edgeColor)
8799
.size(arrowSize, arrowSize);
88100
});
89-
edge.marker("end", portArrow);
101+
curve.marker("end", portArrow);
102+
curve.markers = [portArrow];
90103

91-
edge.markers = [portArrow];
92-
93-
return edge;
104+
return curve;
94105
},
95106

96107
updateCurve: function(curve, controls) {
97108
if (curve.type === "path") {
98109
let mSegment = curve.getSegment(0);
99110
mSegment.coords = [controls[0].x, controls[0].y];
100-
curve.replaceSegment(0, mSegment);
101-
102111
let cSegment = curve.getSegment(1);
103112
cSegment.coords = [controls[1].x, controls[1].y, controls[2].x, controls[2].y, controls[3].x, controls[3].y];
113+
114+
if (curve.widerCurve) {
115+
curve.widerCurve.replaceSegment(0, mSegment);
116+
curve.widerCurve.replaceSegment(1, cSegment);
117+
}
118+
curve.replaceSegment(0, mSegment);
104119
curve.replaceSegment(1, cSegment);
105120
}
106121
},
107122

108123
removeCurve: function(curve) {
109124
if (curve.type === "path") {
125+
if (curve.widerCurve) {
126+
curve.widerCurve.remove();
127+
}
110128
curve.remove();
111129
}
112130
},

0 commit comments

Comments
 (0)