Keep filelist selection between (auto) updates (issue #2243)
authorChristos Stathis <chstath@ebs.gr>
Thu, 22 Mar 2012 16:05:09 +0000 (18:05 +0200)
committerChristos Stathis <chstath@ebs.gr>
Thu, 22 Mar 2012 16:05:09 +0000 (18:05 +0200)
src/gr/grnet/pithos/web/client/FileList.java
src/gr/grnet/pithos/web/client/Pithos.java

index 007f647..e7047cc 100644 (file)
@@ -466,8 +466,10 @@ public class FileList extends Composite {
         */
        public void setFiles(final List<File> _files) {
                files = new ArrayList<File>();
-       for (File fres : _files)
+       for (File fres : _files) {
                        files.add(fres);
+       }
+       
                Collections.sort(files, new Comparator<File>() {
 
                        @Override
@@ -487,9 +489,16 @@ public class FileList extends Composite {
                }
            }
 
-        provider.getList().clear();
+               List<File> previousSelection = getSelectedFiles(); //Keep the previous selection
+
+               provider.getList().clear();
         provider.setList(files);
         selectionModel.clear();
+       for (File f : files) {
+               if (previousSelection.contains(f))
+                       selectionModel.setSelected(f, true);
+       }
+        
         app.showFolderStatistics(folderFileCount);
         celltable.setPageSize(folderFileCount);
        }
index 191a4f5..2978ca3 100644 (file)
@@ -465,20 +465,20 @@ public class Pithos implements EntryPoint, ResizeHandler {
             }
         });
         
-//        Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
-//                     
-//                     @Override
-//                     public boolean execute() {
-//                             Folder f = getSelection();
-//                             if (f != null) {
-//                                     if (getSelectedTree().equals(folderTreeView))
-//                                             updateFolder(f, true, null);
-//                                     else if (getSelectedTree().equals(mysharedTreeView))
-//                                             updateSharedFolder(f, true);
-//                             }
-//                             return true;
-//                     }
-//             }, 3000);
+        Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
+                       
+                       @Override
+                       public boolean execute() {
+                               Folder f = getSelection();
+                               if (f != null) {
+                                       if (getSelectedTree().equals(folderTreeView))
+                                               updateFolder(f, true, null);
+                                       else if (getSelectedTree().equals(mysharedTreeView))
+                                               updateSharedFolder(f, true);
+                               }
+                               return true;
+                       }
+               }, 3000);
     }
 
     public void applyPermissions(Folder f) {