tune file list update
authorkoutsoub <devnull@localhost>
Wed, 9 Mar 2011 13:08:50 +0000 (15:08 +0200)
committerkoutsoub <devnull@localhost>
Wed, 9 Mar 2011 13:08:50 +0000 (15:08 +0200)
src/gr/ebs/gss/client/CellTreeView.java
src/gr/ebs/gss/client/CellTreeViewModel.java
src/gr/ebs/gss/client/FileList.java
src/gr/ebs/gss/client/FilePropertiesDialog.java
src/gr/ebs/gss/client/FilesPropertiesDialog.java
src/gr/ebs/gss/client/GSS.java
src/gr/ebs/gss/client/VersionsList.java

index e160add..ab12c0a 100644 (file)
@@ -189,12 +189,13 @@ public class CellTreeView extends Composite{
             @Override 
             public void onSelectionChange(com.google.gwt.view.client.SelectionChangeEvent event) {
                NodeInfo<RestResource> nodeInfo = (NodeInfo<RestResource>) getModel().getNodeInfo(selectionModel.getSelectedObject());
-               if(nodeInfo==null || nodeInfo.getValueUpdater()==null){}
-                       
+               if(nodeInfo==null || nodeInfo.getValueUpdater()==null){
+                       GSS.get().showFileList(getSelection());
+               }
                else
                        nodeInfo.getValueUpdater().update(selectionModel.getSelectedObject());
                GSS.get().setCurrentSelection(selectionModel.getSelectedObject());
-               GSS.get().showFileList(true);
+               
                
             }
         };
@@ -605,5 +606,13 @@ public class CellTreeView extends Composite{
                return null;
        }
        
+       public void refreshCurrentNode(){
+               NodeInfo<RestResource> nodeInfo = (NodeInfo<RestResource>) getModel().getNodeInfo(selectionModel.getSelectedObject());
+       if(nodeInfo==null || nodeInfo.getValueUpdater()==null){
+               GSS.get().showFileList(getSelection());
+       }
+       else
+               nodeInfo.getValueUpdater().update(selectionModel.getSelectedObject());
+       }
        
 }
index 5b2914a..d0e006f 100644 (file)
@@ -419,7 +419,8 @@ public class CellTreeViewModel implements TreeViewModel{
                                                                getRootNodes().getList().set(getRootNodes().getList().indexOf(r),GSS.get().getTreeView().getTrash());
                                                }
                                                GSS.get().getTreeView().updateNodeChildren(GSS.get().getTreeView().getTrash());
-                                               GSS.get().showFileList(true);
+                                               //GSS.get().showFileList(true);
+                                               GSS.get().onResourceUpdate(value);
                                        }
 
                                        @Override
@@ -463,6 +464,77 @@ public class CellTreeViewModel implements TreeViewModel{
                                };
                                DeferredCommand.addCommand(gf);
                        }
+                       else if(value instanceof SharedFolderResource){
+                               GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, value.getUri(), null) {
+
+                                       @Override
+                                       public void onComplete() {
+                                               FolderResource rootResource = getResult();
+                                               //((MyFolderResource)value).getResource().setFiles(rootResource.getFiles());
+                                               ((SharedFolderResource)value).setResource(rootResource);
+                                               if(GSS.get().getTreeView().getSelection().getUri().equals(value.getUri()))
+                                                       selectionModel.setSelected(value, true);
+                                               GSS.get().onResourceUpdate(value);
+                                               
+                                       }
+       
+                                       @Override
+                                       public void onError(Throwable t) {
+                                               GWT.log("Error fetching root folder", t);
+                                               GSS.get().displayError("Unable to fetch root folder");
+                                       }
+       
+                               };
+                               DeferredCommand.addCommand(gf);
+                       }
+                       else if(value instanceof SharedResource){
+                               GetCommand<SharedResource> gf = new GetCommand<SharedResource>(SharedResource.class, value.getUri(), null) {
+
+                                       @Override
+                                       public void onComplete() {
+                                               SharedResource rootResource = getResult();
+                                               ((SharedResource)value).setFolders(getResult().getFolders());
+                                               ((SharedResource)value).setFiles(getResult().getFiles());
+                                               
+                                               if(GSS.get().getTreeView().getSelection().getUri().equals(value.getUri()))
+                                                       selectionModel.setSelected(value, true);
+                                               GSS.get().onResourceUpdate(value);
+                                               
+                                       }
+       
+                                       @Override
+                                       public void onError(Throwable t) {
+                                               GWT.log("Error fetching root folder", t);
+                                               GSS.get().displayError("Unable to fetch root folder");
+                                       }
+       
+                               };
+                               DeferredCommand.addCommand(gf);
+                       }
+                       else if(value instanceof OtherUserResource){
+                               GetCommand<OtherUserResource> gf = new GetCommand<OtherUserResource>(OtherUserResource.class, value.getUri(), null) {
+
+                                       @Override
+                                       public void onComplete() {
+                                               OtherUserResource rootResource = getResult();
+                                               ((OtherUserResource)value).setFolders(getResult().getFolders());
+                                               ((OtherUserResource)value).setFiles(getResult().getFiles());
+                                               
+                                               if(GSS.get().getTreeView().getSelection().getUri().equals(value.getUri()))
+                                                       selectionModel.setSelected(value, true);
+                                               GSS.get().onResourceUpdate(value);
+                                               
+                                       }
+       
+                                       @Override
+                                       public void onError(Throwable t) {
+                                               GWT.log("Error fetching root folder", t);
+                                               GSS.get().displayError("Unable to fetch root folder");
+                                       }
+       
+                               };
+                               DeferredCommand.addCommand(gf);
+                       }
                        
                }
                
index a4feb8b..8c128c0 100644 (file)
@@ -394,7 +394,6 @@ public class FileList extends Composite {
                celltable.addColumn(aColumn=new DragAndDropColumn<FileResource,String>(new TextCell()) {
                        @Override
                        public String getValue(FileResource object) {
-                               // TODO Auto-generated method stub
                                return object.getVersion().toString();
                        }                       
                },aheader = new SortableHeader("Version"));
@@ -695,35 +694,10 @@ public class FileList extends Composite {
        public void updateCurrentlyShowingStats() {
                GSS.get().getStatusPanel().updateCurrentlyShowing(showingStats);
        }
-
-       public void updateFileCache(boolean updateSelectedFolder, final boolean clearSelection) {
-               updateFileCache(updateSelectedFolder, clearSelection, null);
-       }
-
-       public void updateFileCache(boolean updateSelectedFolder, final boolean clearSelection, final String newFilename) {
-               if (!updateSelectedFolder && !GSS.get().getTreeView().getSelection().equals(GSS.get().getTreeView().getTrash()))
-                       updateFileCache(clearSelection);
-               else if (GSS.get().getTreeView().getSelection() != null) {
-                       update(true);
-               }
-               updateFileCache(clearSelection);
-       }
-
-
-       private void updateFileCache(boolean clearSelection) {
-               updateFileCache(clearSelection, null);
-       }
-
-       /**
-        * Update the file cache with data from the server.
-        *
-        * @param newFilename the new name of the previously selected file,
-        *                      if a rename operation has taken place
-        */
-       private void updateFileCache(boolean clearSelection, String newFilename) {
-               if (clearSelection)
+       
+       public void updateFileCache(boolean clearSelection){
+               if(clearSelection)
                        clearSelectedRows();
-               startIndex = 0;
                final RestResource folderItem = GSS.get().getTreeView().getSelection();
                // Validation.
                if (folderItem == null || folderItem.equals(GSS.get().getTreeView().getOthers())) {
@@ -731,26 +705,24 @@ public class FileList extends Composite {
                        update(true);
                        return;
                }
-               if (folderItem instanceof RestResourceWrapper) {
+               else if (folderItem instanceof RestResourceWrapper) {
                        setFiles(((RestResourceWrapper) folderItem).getResource().getFiles());
                        update(true);
                }
-               if (folderItem instanceof SharedResource) {
+               else if (folderItem instanceof SharedResource) {
                        setFiles(((SharedResource) folderItem).getFiles());
                        update(true);
                }
-               if (folderItem instanceof OtherUserResource) {
-                       
+               else if (folderItem instanceof OtherUserResource) {
                        setFiles(((OtherUserResource) folderItem).getFiles());
-                       GWT.log("----->"+files);
                        update(true);
                }
-               if (folderItem instanceof TrashResource) {
+               else if (folderItem instanceof TrashResource) {
                        setFiles(((TrashResource) folderItem).getFiles());
                        update(true);
                }
-               GWT.log(folderItem.getClass().getName());
        }
+       
 
        /**
         * Fill the file cache with data.
index 1a47930..e991ceb 100644 (file)
@@ -441,7 +441,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
 \r
                        @Override\r
                        public void onComplete() {\r
-                               GSS.get().getFileList().updateFileCache(true, false /* do not clear selected file*/, newFilenameFinal);\r
+                               GSS.get().getTreeView().refreshCurrentNode();\r
                        }\r
 \r
                        @Override\r
@@ -509,7 +509,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
 \r
                        @Override\r
                        public void onComplete() {\r
-                               GSS.get().getFileList().updateFileCache(true, false /* do not clear selected file*/);\r
+                               GSS.get().getTreeView().refreshCurrentNode();\r
                        }\r
 \r
                        @Override\r
index 3437245..7864b92 100644 (file)
@@ -246,7 +246,7 @@ public class FilesPropertiesDialog extends AbstractPropertiesDialog {
 \r
                        @Override\r
                        public void onComplete() {\r
-                               GSS.get().getFileList().updateFileCache(true, false /* do not clear selected file*/);\r
+                               GSS.get().getTreeView().refreshCurrentNode();\r
                        }\r
 \r
                        @Override\r
index 6a6151f..3d29ca9 100644 (file)
@@ -23,11 +23,10 @@ import gr.ebs.gss.client.commands.GetUserCommand;
 import gr.ebs.gss.client.rest.GetCommand;
 import gr.ebs.gss.client.rest.RestException;
 import gr.ebs.gss.client.rest.resource.FileResource;
-import gr.ebs.gss.client.rest.resource.FolderResource;
 import gr.ebs.gss.client.rest.resource.OtherUserResource;
-import gr.ebs.gss.client.rest.resource.OthersResource;
 import gr.ebs.gss.client.rest.resource.RestResource;
 import gr.ebs.gss.client.rest.resource.RestResourceWrapper;
+import gr.ebs.gss.client.rest.resource.SharedResource;
 import gr.ebs.gss.client.rest.resource.TrashResource;
 import gr.ebs.gss.client.rest.resource.UserResource;
 
@@ -74,7 +73,7 @@ public class GSS implements EntryPoint, ResizeHandler {
         */
        public static final boolean DONE = false;
 
-       public static final int VISIBLE_FILE_COUNT = 100;
+       public static final int VISIBLE_FILE_COUNT = 25;
 
        /**
         * Instantiate an application-level image bundle. This object will provide
@@ -495,7 +494,7 @@ public class GSS implements EntryPoint, ResizeHandler {
         * Make the file list visible.
         */
        public void showFileList() {
-               fileList.updateFileCache(false, true /*clear selection*/);
+               fileList.updateFileCache(true /*clear selection*/);
                inner.selectTab(0);
        }
 
@@ -505,62 +504,20 @@ public class GSS implements EntryPoint, ResizeHandler {
         * @param update
         */
        public void showFileList(boolean update) {
-               /*TreeItem currentFolder = getFolders().getCurrent();
-               if (currentFolder != null) {
-                       List<FileResource> files = null;
-                       Object cachedObject = currentFolder.getUserObject();
-                       if (cachedObject instanceof FolderResource) {
-                               FolderResource folder = (FolderResource) cachedObject;
-                               files = folder.getFiles();
-                       } else if (cachedObject instanceof TrashResource) {
-                               TrashResource folder = (TrashResource) cachedObject;
-                               files = folder.getFiles();
-                       }
-                       if (files != null)
-                               getFileList().setFiles(files);
-               }*/
-               RestResource currentFolder = getTreeView().getSelection();
-               GWT.log("SELECTED:"+currentFolder);
-               if(currentFolder!=null){
-                       GWT.log("SELECTED:"+currentFolder.getClass());
-                       List<FileResource> files = null;
-                       if (currentFolder instanceof RestResourceWrapper) {
-                               RestResourceWrapper folder = (RestResourceWrapper) currentFolder;
-                               files = folder.getResource().getFiles();
-                       } else if (currentFolder instanceof TrashResource) {
-                               TrashResource folder = (TrashResource) currentFolder;
-                               files = folder.getFiles();
-                       }
-                       else if(currentFolder instanceof OthersResource){
-                               files = new ArrayList<FileResource>();
-                       }
-                       else if(currentFolder instanceof OtherUserResource){
-                               files = ((OtherUserResource)currentFolder).getFiles();
+               if(update){
+                       getTreeView().refreshCurrentNode();
+               }
+               else{
+                       RestResource currentFolder = getTreeView().getSelection();
+                       if(currentFolder!=null){
+                               showFileList(currentFolder);
                        }
-                       if (files != null)
-                               getFileList().setFiles(files);
                }
-               fileList.updateFileCache(update, true /*clear selection*/);
-               inner.selectTab(0);
+               
        }
        
-       public void showFileList(RestResource r,boolean update) {
-               /*TreeItem currentFolder = getFolders().getCurrent();
-               if (currentFolder != null) {
-                       List<FileResource> files = null;
-                       Object cachedObject = currentFolder.getUserObject();
-                       if (cachedObject instanceof FolderResource) {
-                               FolderResource folder = (FolderResource) cachedObject;
-                               files = folder.getFiles();
-                       } else if (cachedObject instanceof TrashResource) {
-                               TrashResource folder = (TrashResource) cachedObject;
-                               files = folder.getFiles();
-                       }
-                       if (files != null)
-                               getFileList().setFiles(files);
-               }*/
+       public void showFileList(RestResource r) {
                RestResource currentFolder = r;
-               GWT.log("SELECTED:"+currentFolder);
                if(currentFolder!=null){
                        List<FileResource> files = null;
                        if (currentFolder instanceof RestResourceWrapper) {
@@ -570,14 +527,20 @@ public class GSS implements EntryPoint, ResizeHandler {
                                TrashResource folder = (TrashResource) currentFolder;
                                files = folder.getFiles();
                        }
+                       else if (currentFolder instanceof SharedResource) {
+                               SharedResource folder = (SharedResource) currentFolder;
+                               files = folder.getFiles();
+                       }
                        else if (currentFolder instanceof OtherUserResource) {
                                OtherUserResource folder = (OtherUserResource) currentFolder;
                                files = folder.getFiles();
                        }
                        if (files != null)
                                getFileList().setFiles(files);
+                       else
+                               getFileList().setFiles(new ArrayList<FileResource>());
                }
-               fileList.updateFileCache(update, true /*clear selection*/);
+               fileList.updateFileCache(true /*clear selection*/);
                inner.selectTab(0);
        }
 
@@ -889,9 +852,9 @@ public class GSS implements EntryPoint, ResizeHandler {
        }
        
        public void onResourceUpdate(RestResource resource){
-               if(resource instanceof RestResourceWrapper || resource instanceof OtherUserResource){
+               if(resource instanceof RestResourceWrapper || resource instanceof OtherUserResource || resource instanceof TrashResource || resource instanceof SharedResource){
                        if(getTreeView().getSelection()!=null&&getTreeView().getSelection().getUri().equals(resource.getUri()))
-                               showFileList(resource,true);
+                               showFileList(resource);
                }
                
        }
index f76118c..8843f1a 100644 (file)
@@ -160,7 +160,7 @@ public class VersionsList extends Composite {
                        public void onComplete() {
                                toRemove = version;
                                updateTable();
-                               GSS.get().getFileList().updateFileCache(false, true /*clear selection*/);
+                               GSS.get().getTreeView().refreshCurrentNode();
                        }
 
                        @Override
@@ -191,7 +191,7 @@ public class VersionsList extends Composite {
                        @Override
                        public void onComplete() {
                                container.hide();
-                GSS.get().getFileList().updateFileCache(true, true /*clear selection*/);
+                GSS.get().getTreeView().refreshCurrentNode();
                        }
 
                        @Override