@@ -84,33 +84,38 @@ qx.Class.define("osparc.file.TreeFolderView", {
8484 const folderTree = this . getChildControl ( "folder-tree" ) ;
8585 const folderViewer = this . getChildControl ( "folder-viewer" ) ;
8686
87- // Connect elements
8887 folderTree . addListener ( "selectionChanged" , ( ) => {
89- const selectedFolder = folderTree . getSelectedItem ( ) ;
90- if ( selectedFolder ) {
91- if ( selectedFolder . getPath ( ) ) {
92- folderTree . requestPathItems ( selectedFolder . getLocation ( ) , selectedFolder . getPath ( ) )
88+ const selectedModel = folderTree . getSelectedItem ( ) ;
89+ if ( selectedModel ) {
90+ if ( selectedModel . getPath ( ) && ! selectedModel . getLoaded ( ) ) {
91+ folderTree . requestPathItems ( selectedModel . getLocation ( ) , selectedModel . getPath ( ) )
9392 . then ( pathModel => {
9493 if ( osparc . file . FilesTree . isDir ( pathModel ) ) {
9594 folderViewer . setFolder ( pathModel ) ;
9695 }
9796 } ) ;
98- } else if ( osparc . file . FilesTree . isDir ( selectedFolder ) ) {
99- folderViewer . setFolder ( selectedFolder ) ;
97+ } else if ( osparc . file . FilesTree . isDir ( selectedModel ) ) {
98+ folderViewer . setFolder ( selectedModel ) ;
10099 }
101100 }
102101 } , this ) ;
103102
104103 folderViewer . addListener ( "openItemSelected" , e => {
105- const data = e . getData ( ) ;
106- folderTree . requestPathItems ( data . getLocation ( ) , data . getPath ( ) )
107- . then ( pathModel => {
108- folderTree . openNodeAndParents ( pathModel ) ;
109- folderTree . setSelection ( new qx . data . Array ( [ pathModel ] ) ) ;
110- if ( osparc . file . FilesTree . isDir ( pathModel ) ) {
111- folderViewer . setFolder ( pathModel ) ;
112- }
113- } ) ;
104+ const selectedModel = e . getData ( ) ;
105+ if ( selectedModel ) {
106+ if ( selectedModel . getPath ( ) && ! selectedModel . getLoaded ( ) ) {
107+ folderTree . requestPathItems ( selectedModel . getLocation ( ) , selectedModel . getPath ( ) )
108+ . then ( pathModel => {
109+ folderTree . openNodeAndParents ( pathModel ) ;
110+ folderTree . setSelection ( new qx . data . Array ( [ pathModel ] ) ) ;
111+ if ( osparc . file . FilesTree . isDir ( pathModel ) ) {
112+ folderViewer . setFolder ( pathModel ) ;
113+ }
114+ } ) ;
115+ } else if ( osparc . file . FilesTree . isDir ( selectedModel ) ) {
116+ folderViewer . setFolder ( selectedModel ) ;
117+ }
118+ }
114119 } , this ) ;
115120
116121 folderViewer . addListener ( "folderUp" , e => {
0 commit comments