Skip to content

Commit ec4a2e7

Browse files
authored
Feature/gray 4 comp (#2180)
* Update NodeStatus.js * Update StatusUI.js * setHasOutputs * Update NodeStatus.js * Update EdgeUI.js * update TempEdge CurveColor * renaming * fix dashed connections * Update NodesTree.js
1 parent 1e8cbda commit ec4a2e7

File tree

9 files changed

+66
-52
lines changed

9 files changed

+66
-52
lines changed

services/web/client/source/class/osparc/component/widget/NodesTree.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -401,10 +401,6 @@ qx.Class.define("osparc.component.widget.NodesTree", {
401401
});
402402
}
403403
}, this);
404-
405-
qx.event.message.Bus.getInstance().subscribe("updateStudy", () => {
406-
this.populateTree();
407-
}, this);
408404
}
409405
}
410406
});

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

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ qx.Class.define("osparc.component.workbench.EdgeUI", {
4545
this.setRepresentation(representation);
4646

4747
edge.getInputNode().getStatus().addListener("changeModified", () => {
48-
this.__updateCurveColor();
48+
this.__updateEdgeColor();
4949
});
50-
this.__updateCurveColor();
50+
this.__updateEdgeColor();
5151

5252
this.subscribeToFilterGroup("workbench");
5353
},
@@ -63,26 +63,33 @@ qx.Class.define("osparc.component.workbench.EdgeUI", {
6363
}
6464
},
6565

66-
members: {
67-
__updateCurveColor: function() {
68-
const modified = this.getEdge().getInputNode().getStatus()
69-
.getModified();
66+
statics: {
67+
getEdgeColor(modified) {
7068
let newColor = null;
7169
if (modified === null) {
7270
newColor = qx.theme.manager.Color.getInstance().resolve("workbench-edge-comp-active");
7371
} else {
7472
newColor = osparc.utils.StatusUI.getColor(modified ? "failed" : "ready");
7573
}
76-
const newColorHex = qx.theme.manager.Color.getInstance().resolve(newColor);
77-
osparc.component.workbench.SvgWidget.updateCurveColor(this.getRepresentation(), newColorHex);
74+
const colorHex = qx.theme.manager.Color.getInstance().resolve(newColor);
75+
return colorHex;
76+
}
77+
},
78+
79+
members: {
80+
__updateEdgeColor: function() {
81+
const modified = this.getEdge().getInputNode().getStatus()
82+
.getModified();
83+
const colorHex = this.self().getEdgeColor(modified);
84+
osparc.component.workbench.SvgWidget.updateCurveColor(this.getRepresentation(), colorHex);
7885
},
7986

8087
setSelected: function(selected) {
8188
if (selected) {
8289
const selectedColor = qx.theme.manager.Color.getInstance().resolve("workbench-edge-selected");
8390
osparc.component.workbench.SvgWidget.updateCurveColor(this.getRepresentation(), selectedColor);
8491
} else {
85-
this.__updateCurveColor();
92+
this.__updateEdgeColor();
8693
}
8794
},
8895

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ qx.Class.define("osparc.component.workbench.SvgWidget", {
9696
osparc.wrapper.Svg.removeRect(rect);
9797
},
9898

99-
updateDashes: function(curve, dashed = false) {
100-
osparc.wrapper.Svg.updateDashes(curve, dashed);
99+
updateCurveDashes: function(curve, dashed = false) {
100+
osparc.wrapper.Svg.updateCurveDashes(curve, dashed);
101101
},
102102

103103
updateCurveColor: function(curve, color) {

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
488488

489489
edge.addListener("changePortConnected", e => {
490490
const portConnected = e.getData();
491-
osparc.component.workbench.SvgWidget.updateDashes(edgeRepresentation, !portConnected);
491+
osparc.component.workbench.SvgWidget.updateCurveDashes(edgeRepresentation, !portConnected);
492492
}, this);
493493

494494
const edgeUI = new osparc.component.workbench.EdgeUI(edge, edgeRepresentation);
@@ -544,7 +544,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
544544
qx.bom.Element.addListener(
545545
this.__desktop,
546546
evType,
547-
this.__startTempEdge,
547+
this.__updateTempEdge,
548548
this
549549
);
550550
}, this);
@@ -593,7 +593,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
593593
qx.bom.Element.removeListener(
594594
this.__desktop,
595595
evType,
596-
this.__startTempEdge,
596+
this.__updateTempEdge,
597597
this
598598
);
599599
}
@@ -622,7 +622,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
622622
qx.bom.Element.removeListener(
623623
this.__desktop,
624624
evType,
625-
this.__startTempEdge,
625+
this.__updateTempEdge,
626626
this
627627
);
628628
}, this);
@@ -751,7 +751,7 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
751751
};
752752
},
753753

754-
__startTempEdge: function(pointerEvent) {
754+
__updateTempEdge: function(pointerEvent) {
755755
if (this.__tempEdgeNodeId === null) {
756756
return;
757757
}
@@ -804,6 +804,12 @@ qx.Class.define("osparc.component.workbench.WorkbenchUI", {
804804
} else {
805805
osparc.component.workbench.SvgWidget.updateCurve(this.__tempEdgeRepr, x1, y1, x2, y2);
806806
}
807+
808+
if (!this.__tempEdgeIsInput) {
809+
const modified = nodeUI.getNode().getStatus().getModified();
810+
const colorHex = osparc.component.workbench.EdgeUI.getEdgeColor(modified);
811+
osparc.component.workbench.SvgWidget.updateCurveColor(this.__tempEdgeRepr, colorHex);
812+
}
807813
},
808814

809815
__removeTempEdge: function() {

services/web/client/source/class/osparc/data/model/Edge.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,31 +94,31 @@ qx.Class.define("osparc.data.model.Edge", {
9494

9595
__applyOutputNode: function(node2) {
9696
node2.bind("portsConnected", this, "portConnected", {
97-
converter: portsConnected => {
98-
const isConnected = Boolean(Object.keys(portsConnected).length);
99-
return isConnected;
97+
converter: () => {
98+
const isConnected = this.__checkIsPortConnected();
99+
return Boolean(isConnected);
100100
}
101101
});
102102
},
103103

104104
__checkIsPortConnected: function() {
105+
let anyConnected = false;
105106
const node1 = this.getInputNode();
106107
let node2 = this.getOutputNode();
107108
if (node2.getPropsForm()) {
108-
const anyConnected = this.self().checkAnyPortsConnected(node1, node2);
109-
this.setPortConnected(anyConnected);
109+
anyConnected |= this.self().checkAnyPortsConnected(node1, node2);
110110
}
111111
if (node2.isContainer()) {
112112
const innerNodes = node2.getInnerNodes();
113113
for (const innerNodeId in innerNodes) {
114114
node2 = innerNodes[innerNodeId];
115115
if (node2.getPropsForm()) {
116-
const anyConnected = this.self().checkAnyPortsConnected(node1, node2);
117-
this.setPortConnected(anyConnected);
116+
anyConnected |= this.self().checkAnyPortsConnected(node1, node2);
118117
}
119118
break;
120119
}
121120
}
121+
return anyConnected;
122122
}
123123
}
124124
});

services/web/client/source/class/osparc/data/model/Node.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,17 +643,20 @@ qx.Class.define("osparc.data.model.Node", {
643643

644644
setOutputData: function(outputs) {
645645
if (outputs) {
646+
let hasOutputs = false;
646647
for (const outputKey in this.getOutputs()) {
647648
if (!Object.prototype.hasOwnProperty.call(this.getOutputs(), outputKey)) {
648649
this.getOutputs()[outputKey] = {};
649650
}
650651
if (Object.prototype.hasOwnProperty.call(outputs, outputKey)) {
651652
this.getOutputs()[outputKey]["value"] = outputs[outputKey];
653+
hasOutputs = true;
652654
} else {
653655
this.getOutputs()[outputKey]["value"] = "";
654656
}
655657
}
656-
this.getStatus().setHasOutputs(true);
658+
this.getStatus().setHasOutputs(hasOutputs);
659+
657660
if (this.isFilePicker() || this.isDynamic()) {
658661
this.getStatus().setModified(false);
659662
}

services/web/client/source/class/osparc/data/model/NodeStatus.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,17 @@ qx.Class.define("osparc.data.model.NodeStatus", {
5656
apply: "__applyDependencies"
5757
},
5858

59+
hasOutputs: {
60+
check: "Boolean",
61+
init: false
62+
},
63+
5964
modified: {
6065
check: "Boolean",
6166
nullable: true,
6267
init: null,
6368
event: "changeModified",
6469
apply: "__applyModified"
65-
},
66-
67-
hasOutputs: {
68-
check: "Boolean",
69-
init: false,
70-
apply: "__applyModified"
7170
}
7271
},
7372

services/web/client/source/class/osparc/utils/StatusUI.js

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,32 @@ qx.Class.define("osparc.utils.StatusUI", {
2727
getIconSource: function(state) {
2828
switch (state) {
2929
// computationals
30+
case "UNKNOWN":
31+
case "NOT_STARTED":
32+
return "";
3033
case "SUCCESS":
3134
return "@FontAwesome5Solid/check/12";
32-
case "FAILED":
33-
case "ABORTED":
34-
return "@FontAwesome5Solid/exclamation-circle/12";
3535
case "PENDING":
3636
case "PUBLISHED":
3737
case "STARTED":
3838
case "RETRY":
3939
return "@FontAwesome5Solid/circle-notch/12";
40-
case "UNKNOWN":
41-
case "NOT_STARTED":
42-
return "";
40+
case "FAILED":
41+
case "ABORTED":
42+
return "@FontAwesome5Solid/exclamation-circle/12";
4343

4444
// dynamics
45+
case "idle":
46+
return "";
4547
case "ready":
4648
return "@FontAwesome5Solid/check/12";
47-
case "failed":
48-
return "@FontAwesome5Solid/exclamation-circle/12";
4949
case "starting":
5050
case "pending":
5151
case "pulling":
5252
case "connecting":
5353
return "@FontAwesome5Solid/circle-notch/12";
54+
case "failed":
55+
return "@FontAwesome5Solid/exclamation-circle/12";
5456

5557
// ports
5658
case "modified":
@@ -91,31 +93,32 @@ qx.Class.define("osparc.utils.StatusUI", {
9193
getColor: function(state) {
9294
switch (state) {
9395
// computationals
96+
case "UNKNOWN":
97+
case "NOT_STARTED":
98+
return "text";
9499
case "SUCCESS":
95100
return "ready-green";
96-
case "FAILED":
97-
case "ABORTED":
98-
return "failed-red";
99101
case "PENDING":
100102
case "PUBLISHED":
101103
case "STARTED":
102104
case "RETRY":
103105
return "busy-orange";
104-
case "UNKNOWN":
105-
case "NOT_STARTED":
106-
return "text";
106+
case "FAILED":
107+
case "ABORTED":
108+
return "failed-red";
107109

108110
// dynamics
111+
case "idle":
112+
return "text";
109113
case "ready":
110114
return "ready-green";
111-
case "failed":
112-
return "failed-red";
113-
case "idle":
114115
case "starting":
115116
case "pulling":
116117
case "pending":
117118
case "connecting":
118119
return "busy-orange";
120+
case "failed":
121+
return "failed-red";
119122

120123
// ports
121124
case "modified":

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ qx.Class.define("osparc.wrapper.Svg", {
135135
rect.remove();
136136
},
137137

138-
updateDashes: function(curve, dashed) {
138+
updateCurveDashes: function(curve, dashed) {
139139
curve.attr({
140140
"stroke-dasharray": dashed ? 5 : 0
141141
});

0 commit comments

Comments
 (0)