Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceController.as =================================================================== diff -u -r7d05e97c90ca15990f360fbac94bfac2f67677fd -ra0225170da7933a9a3512c86966cb1feea19acba --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceController.as (.../WorkspaceController.as) (revision 7d05e97c90ca15990f360fbac94bfac2f67677fd) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceController.as (.../WorkspaceController.as) (revision a0225170da7933a9a3512c86966cb1feea19acba) @@ -134,7 +134,7 @@ // DC24-01-06 this resource ID must refer to a folder as its been marked as a branch var resourceToOpen = nodeToOpen.attributes.data.resourceID; //must be a folder ID, depoends if this event is fired for an "open" reousrce click - _workspaceModel.openFolderInTree(resourceToOpen); + _workspaceModel.openFolderInTree(resourceToOpen, false); }else{ Debugger.log('nodeToOpen already has children in cache',Debugger.GEN,'onTreeNodeOpen','org.lamsfoundation.lams.WorkspaceController'); @@ -146,10 +146,11 @@ // DC24-01-06 this resource ID must refer to a folder as its been marked as a branch var resourceToOpen = nodeToOpen.attributes.data.resourceID; //must be a folder ID, depoends if this event is fired for an "open" reousrce click - _workspaceModel.openFolderInTree(resourceToOpen); + _workspaceModel.openFolderInTree(resourceToOpen, true); }else{ Debugger.log('nodeToOpen already has children in cache',Debugger.GEN,'forceNodeOpen','org.lamsfoundation.lams.WorkspaceController'); - + _workspaceModel.forced = true; + _workspaceModel.broadcastViewUpdate('OPEN_FOLDER',nodeToOpen); } } Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as =================================================================== diff -u -r173b2ecab4010c960d34d0475478774d12b552ca -ra0225170da7933a9a3512c86966cb1feea19acba --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision 173b2ecab4010c960d34d0475478774d12b552ca) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision a0225170da7933a9a3512c86966cb1feea19acba) @@ -245,7 +245,7 @@ itemSelected(event.data,wm); break; case 'OPEN_FOLDER' : - openFolder(event.data, wm); + openFolder(event.data, wm, false); break; case 'REFRESH_FOLDER' : refreshFolder(event.data, wm); @@ -287,7 +287,7 @@ } } - openFolder(changedNode); + openFolder(changedNode, wm); } private function refreshTree(){ @@ -309,13 +309,23 @@ * Just opens the fodler node - DOES NOT FIRE EVENT - so is used after updatting the child folder * @usage * @param nodeToOpen - * @param wm + * @param wm + * @param isForced * @return */ private function openFolder(nodeToOpen:XMLNode, wm:WorkspaceModel){ Debugger.log('openFolder:'+nodeToOpen ,Debugger.GEN,'openFolder','org.lamsfoundation.lams.ws.WorkspaceDialog'); //open the node treeview.setIsOpen(nodeToOpen,true); + + Debugger.log('openFolder forced:'+wm.isForced() ,Debugger.GEN,'openFolder','org.lamsfoundation.lams.ws.WorkspaceDialog'); + + if(wm.isForced()){ + // select users root workspace folder + treeview.selectedNode = nodeToOpen.firstChild; + dispatchEvent({type:'change', target:this.treeview}); + } + refreshTree(); } @@ -730,9 +740,11 @@ //use the above event, on comlete the drop, send the request to do the move to the server (evt.targetNode); //then immediatly invlaidate the cache. then server may return error if therrte is a problem, else new details willbe shown + // open My Workspace virtual folder + var wsNode:XMLNode = treeview.firstVisibleNode; + //treeview.setIsOpen(wsNode, true); + _workspaceController.forceNodeOpen(wsNode); - - } /** Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as =================================================================== diff -u -r79bc23f688fba54402f2391717fa63d97671c312 -ra0225170da7933a9a3512c86966cb1feea19acba --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as (.../WorkspaceModel.as) (revision 79bc23f688fba54402f2391717fa63d97671c312) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as (.../WorkspaceModel.as) (revision a0225170da7933a9a3512c86966cb1feea19acba) @@ -75,6 +75,8 @@ private var _folderIDPendingRefresh:Number; // The ID of the folder an operation has just been done on, will be refreshed... private var _folderIDPendingRefreshList:Array; // The List of ID of the folder an operation has just been done on, will be refreshed... + // if true folder is being forced to open + private var _forced:Boolean; //These are defined so that the compiler can 'see' the events that are added at runtime by EventDispatcher private var dispatchEvent:Function; @@ -205,12 +207,13 @@ * @param resourceToOpen ID:Number of resource to open * @return */ - public function openFolderInTree(resourceToOpen:Number):Void{ + public function openFolderInTree(resourceToOpen:Number, forced:Boolean):Void{ Debugger.log('resourceToOpen :'+resourceToOpen ,Debugger.GEN,'openFolderInTree','org.lamsfoundation.lams.WorkspaceModel'); //lets see if its in the hash table already (prob not) //if(_workspaceResources.get(resourceToOpen).attributes.data.contents == undefined){ Debugger.log('Requesting...',Debugger.GEN,'openFolderInTree','org.lamsfoundation.lams.WorkspaceModel'); //get that resource + _forced = forced; _workspace.requestFolderContents(resourceToOpen); @@ -265,7 +268,10 @@ Debugger.log('Did not find:'+dto.resourceType+'_'+dto.workspaceFolderID+' Something bad has happened',Debugger.CRITICAL,'setFolderContents','org.lamsfoundation.lams.WorkspaceModel'); } + // sort contents + dto.contents.sortOn("name", Array.CASEINSENSITIVE); + // go throught the contents of DTO and add it aas children to the node to update. for(var i=0; i