Skip to content

Commit b414a66

Browse files
committed
addNode working
1 parent 77b2152 commit b414a66

File tree

3 files changed

+31
-15
lines changed

3 files changed

+31
-15
lines changed

services/static-webserver/client/source/class/osparc/data/model/Workbench.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ qx.Class.define("osparc.data.model.Workbench", {
5454
"projectDocumentChanged": "qx.event.type.Data",
5555
"restartAutoSaveTimer": "qx.event.type.Event",
5656
"pipelineChanged": "qx.event.type.Event",
57+
"nodeAdded": "qx.event.type.Data",
5758
"nodeRemoved": "qx.event.type.Data",
5859
"reloadModel": "qx.event.type.Event",
5960
"retrieveInputs": "qx.event.type.Data",
@@ -873,12 +874,6 @@ qx.Class.define("osparc.data.model.Workbench", {
873874
},
874875

875876
__addNodesFromPatches: function(nodesAdded, workbenchPatchesByNode) {
876-
console.log("Adding nodes from patches:", nodesAdded, workbenchPatchesByNode);
877-
878-
// not solved yet, log the user out to avoid issues
879-
qx.core.Init.getApplication().logout(qx.locale.Manager.tr("Potentially conflicting updates coming from a collaborator"));
880-
return;
881-
882877
nodesAdded.forEach(nodeId => {
883878
const addNodePatch = workbenchPatchesByNode[nodeId].find(workbenchPatch => {
884879
const pathParts = workbenchPatch.path.split("/");
@@ -891,9 +886,11 @@ qx.Class.define("osparc.data.model.Workbench", {
891886
workbenchPatchesByNode[nodeId].splice(index, 1);
892887
}
893888
const node = this.__createNode(nodeData["key"], nodeData["version"], nodeId);
894-
node.fetchMetadataAndPopulate(nodeData, null);
895-
// OM here: then maybe
896-
node.checkState();
889+
node.fetchMetadataAndPopulate(nodeData, null)
890+
.then(() => {
891+
this.fireDataEvent("nodeAdded", node);
892+
node.checkState();
893+
});
897894
});
898895
},
899896

services/static-webserver/client/source/class/osparc/desktop/WorkbenchView.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,9 +246,13 @@ qx.Class.define("osparc.desktop.WorkbenchView", {
246246
this.__connectEvents();
247247

248248
study.getWorkbench().addListener("pipelineChanged", () => this.__evalSlidesButtons());
249+
study.getWorkbench().addListener("nodeAdded", e => {
250+
const node = e.getData();
251+
this.__nodeAdded(node);
252+
});
249253
study.getWorkbench().addListener("nodeRemoved", e => {
250254
const {nodeId, connectedEdgeIds} = e.getData();
251-
this.nodeRemoved(nodeId, connectedEdgeIds);
255+
this.__nodeRemoved(nodeId, connectedEdgeIds);
252256
});
253257
study.getUi().getSlideshow().addListener("changeSlideshow", () => this.__evalSlidesButtons());
254258
study.getUi().addListener("changeMode", () => this.__evalSlidesButtons());
@@ -1133,6 +1137,10 @@ qx.Class.define("osparc.desktop.WorkbenchView", {
11331137
this.addListener("disappear", () => qx.event.message.Bus.getInstance().unsubscribe("maximizeIframe", maximizeIframeCb, this), this);
11341138
},
11351139

1140+
__nodeAdded: function(node) {
1141+
this.__workbenchUI.addNode(node);
1142+
},
1143+
11361144
__removeNode: function(nodeId) {
11371145
const workbench = this.getStudy().getWorkbench();
11381146
const node = workbench.getNode(nodeId);
@@ -1188,7 +1196,7 @@ qx.Class.define("osparc.desktop.WorkbenchView", {
11881196
}
11891197
},
11901198

1191-
nodeRemoved: function(nodeId, connectedEdgeIds) {
1199+
__nodeRemoved: function(nodeId, connectedEdgeIds) {
11921200
// remove first the connected edges
11931201
connectedEdgeIds.forEach(edgeId => {
11941202
this.__workbenchUI.clearEdge(edgeId);

services/static-webserver/client/source/class/osparc/workbench/WorkbenchUI.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,7 @@ qx.Class.define("osparc.workbench.WorkbenchUI", {
351351
let nodeUI = null;
352352
try {
353353
const node = await this.__getWorkbench().createNode(service.getKey(), service.getVersion());
354-
nodeUI = this._createNodeUI(node.getNodeId());
355-
this._addNodeUIToWorkbench(nodeUI, pos);
356-
qx.ui.core.queue.Layout.flush();
357-
this.__createDragDropMechanism(nodeUI);
354+
nodeUI = this.addNode(node, pos);
358355
} catch (err) {
359356
console.error(err);
360357
} finally {
@@ -364,6 +361,20 @@ qx.Class.define("osparc.workbench.WorkbenchUI", {
364361
return nodeUI;
365362
},
366363

364+
addNode: function(node, pos) {
365+
if (pos === undefined) {
366+
pos = {
367+
x: 0,
368+
y: 0,
369+
};
370+
}
371+
const nodeUI = this._createNodeUI(node.getNodeId());
372+
this._addNodeUIToWorkbench(nodeUI, pos);
373+
qx.ui.core.queue.Layout.flush();
374+
this.__createDragDropMechanism(nodeUI);
375+
return nodeUI;
376+
},
377+
367378
__getNodesBounds: function() {
368379
if (this.__nodesUI.length === 0) {
369380
return null;

0 commit comments

Comments
 (0)