@@ -106,16 +106,18 @@ qx.Class.define("osparc.data.model.Workbench", {
106106 buildWorkbench : function ( ) {
107107 this . __nodes = { } ;
108108 this . __edges = { } ;
109+
109110 const newWay = true ;
110111 if ( newWay ) {
111- this . __deserializeAll ( this . __workbenchInitData , this . __workbenchUIInitData ) ;
112- this . __workbenchInitData = null ;
113- this . __workbenchUIInitData = null ;
114- } else {
115- this . __deserialize ( this . __workbenchInitData , this . __workbenchUIInitData ) ;
112+ this . __deserialize2 ( this . __workbenchInitData , this . __workbenchUIInitData ) ;
116113 this . __workbenchInitData = null ;
117114 this . __workbenchUIInitData = null ;
115+ return ;
118116 }
117+
118+ this . __deserialize ( this . __workbenchInitData , this . __workbenchUIInitData ) ;
119+ this . __workbenchInitData = null ;
120+ this . __workbenchUIInitData = null ;
119121 } ,
120122
121123 // starts the dynamic services
@@ -299,23 +301,23 @@ qx.Class.define("osparc.data.model.Workbench", {
299301 return node ;
300302 } ,
301303
302- __deserializeNode : function ( key , version , nodeId , nodeData , nodeUiData ) {
304+ __createNode2 : function ( key , version , nodeId , nodeData , nodeUiData ) {
303305 const node = new osparc . data . model . Node ( this . getStudy ( ) , key , version , nodeId ) ;
304- node . fetchMetadataAndPopulate ( nodeData , nodeUiData ) ;
305- if ( osparc . utils . Utils . eventDrivenPatch ( ) ) {
306- node . listenToChanges ( ) ;
307- node . addListener ( "projectDocumentChanged" , e => this . fireDataEvent ( "projectDocumentChanged" , e . getData ( ) ) , this ) ;
308- }
309- node . addListener ( "keyChanged" , ( ) => this . fireEvent ( "reloadModel" ) , this ) ;
310- node . addListener ( "changeInputNodes " , ( ) => this . fireDataEvent ( "pipelineChanged ") , this ) ;
311- node . addListener ( "reloadModel " , ( ) => this . fireEvent ( "reloadModel ") , this ) ;
312- node . addListener ( "updateStudyDocument " , ( ) => this . fireEvent ( "updateStudyDocument " ) , this ) ;
313- osparc . utils . Utils . localCache . serviceToFavs ( key ) ;
314-
315- this . __initNodeSignals ( node ) ;
316- this . __addNode ( node ) ;
317-
318- return node ;
306+ return node . fetchMetadataAndPopulate ( nodeData , nodeUiData )
307+ . then ( ( ) => {
308+ if ( osparc . utils . Utils . eventDrivenPatch ( ) ) {
309+ node . listenToChanges ( ) ;
310+ node . addListener ( "projectDocumentChanged" , e => this . fireDataEvent ( "projectDocumentChanged" , e . getData ( ) ) , this ) ;
311+ }
312+ node . addListener ( "keyChanged " , ( ) => this . fireEvent ( "reloadModel ") , this ) ;
313+ node . addListener ( "changeInputNodes " , ( ) => this . fireDataEvent ( "pipelineChanged ") , this ) ;
314+ node . addListener ( "reloadModel " , ( ) => this . fireEvent ( "reloadModel " ) , this ) ;
315+ node . addListener ( "updateStudyDocument" , ( ) => this . fireEvent ( "updateStudyDocument" ) , this ) ;
316+ osparc . utils . Utils . localCache . serviceToFavs ( key ) ;
317+
318+ this . __initNodeSignals ( node ) ;
319+ this . __addNode ( node ) ;
320+ } ) ;
319321 } ,
320322
321323 createUnknownNode : function ( nodeId ) {
@@ -737,7 +739,7 @@ qx.Class.define("osparc.data.model.Workbench", {
737739 } ) ;
738740 } ,
739741
740- __deserializeAll : function ( workbenchInitData , uiData = { } ) {
742+ __deserialize2 : function ( workbenchInitData , uiData = { } ) {
741743 const nodeDatas = { } ;
742744 const nodeUiDatas = { } ;
743745 for ( const nodeId in workbenchInitData ) {
@@ -747,15 +749,11 @@ qx.Class.define("osparc.data.model.Workbench", {
747749 nodeUiDatas [ nodeId ] = uiData [ "workbench" ] [ nodeId ] ;
748750 }
749751 }
750- for ( const nodeId in nodeDatas ) {
751- const nodeData = nodeDatas [ nodeId ] ;
752- const nodeUiData = nodeUiDatas [ nodeId ] ;
753- this . __deserializeNode ( nodeData [ "key" ] , nodeData [ "version" ] , nodeId , nodeData , nodeUiData ) ;
754- }
755- setTimeout ( ( ) => {
756- this . __deserializeEdges ( workbenchInitData ) ;
757- this . setDeserialized ( true ) ;
758- } , 2000 ) ;
752+ this . __deserializeNodes2 ( nodeDatas , nodeUiDatas )
753+ . then ( ( ) => {
754+ this . __deserializeEdges ( workbenchInitData ) ;
755+ this . setDeserialized ( true ) ;
756+ } ) ;
759757 } ,
760758
761759 __deserializeNodes : function ( workbenchData , workbenchUIData = { } ) {
@@ -786,6 +784,16 @@ qx.Class.define("osparc.data.model.Workbench", {
786784 } ) ;
787785 } ,
788786
787+ __deserializeNodes2 : function ( nodeDatas , nodeUiDatas ) {
788+ const nodesPromises = [ ] ;
789+ for ( const nodeId in nodeDatas ) {
790+ const nodeData = nodeDatas [ nodeId ] ;
791+ const nodeUiData = nodeUiDatas [ nodeId ] ;
792+ nodesPromises . push ( this . __createNode2 ( nodeData [ "key" ] , nodeData [ "version" ] , nodeId , nodeData , nodeUiData ) ) ;
793+ }
794+ return Promise . allSettled ( nodesPromises ) ;
795+ } ,
796+
789797 __deserializeEdges : function ( workbenchData ) {
790798 for ( const nodeId in workbenchData ) {
791799 const node = this . getNode ( nodeId ) ;
0 commit comments