- keep sorting on refresh (file list & search results list)
authorFotis Stamatelopoulos <fstamatelopoulos@gmail.com>
Fri, 20 Nov 2009 10:24:25 +0000 (12:24 +0200)
committerFotis Stamatelopoulos <fstamatelopoulos@gmail.com>
Fri, 20 Nov 2009 10:24:25 +0000 (12:24 +0200)
- image preview in file list has slide show functionality and the "view" link is only available for png, gif, jpg/jpeg files)

src/gr/ebs/gss/client/FileList.java
src/gr/ebs/gss/client/SearchResults.java

index 4a4b115..cd5263c 100644 (file)
@@ -281,7 +281,7 @@ public class FileList extends Composite implements TableListener, ClickListener
                        if (startIndex >= folderFileCount)\r
                                startIndex -= GSS.VISIBLE_FILE_COUNT;\r
                        else\r
-                               update();\r
+                               update(false);\r
                } else if (sender == prevButton) {\r
                        clearSelectedRows();\r
                        // Move back a page.\r
@@ -289,7 +289,7 @@ public class FileList extends Composite implements TableListener, ClickListener
                        if (startIndex < 0)\r
                                startIndex = 0;\r
                        else\r
-                               update();\r
+                               update(false);\r
                }\r
        }\r
 \r
@@ -404,7 +404,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("name");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -413,7 +412,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("version");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -422,7 +420,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("size");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -431,7 +428,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("date");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -440,7 +436,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("owner");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -449,7 +444,6 @@ public class FileList extends Composite implements TableListener, ClickListener
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("path");\r
-                               update();\r
                        }\r
 \r
                });\r
@@ -549,13 +543,71 @@ public class FileList extends Composite implements TableListener, ClickListener
        /**\r
         * Update the display of the file list.\r
         */\r
-       void update() {\r
+       void update(boolean sort) {\r
                int count = folderFileCount;\r
                int max = startIndex + GSS.VISIBLE_FILE_COUNT;\r
                if (max > count)\r
                        max = count;\r
                folderTotalSize = 0;\r
 \r
+               if (sort && files != null && files.size() != 0) {\r
+                       clearLabels();\r
+                       clearSelectedRows();\r
+\r
+                       Collections.sort(files, new Comparator<FileResource>() {\r
+\r
+                               public int compare(FileResource arg0, FileResource arg1) {\r
+                                       if (sortingType)\r
+                                               if (sortingProperty.equals("version")) {\r
+                                                       versionLabel.setHTML("Version&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getVersion().compareTo(arg1.getVersion());\r
+                                               } else if (sortingProperty.equals("owner")) {\r
+                                                       ownerLabel.setHTML("Owner&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getOwner().compareTo(arg1.getOwner());\r
+                                               } else if (sortingProperty.equals("date")) {\r
+                                                       dateLabel.setHTML("Date modified&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getModificationDate().compareTo(arg1.getModificationDate());\r
+                                               } else if (sortingProperty.equals("size")) {\r
+                                                       sizeLabel.setHTML("Size&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getContentLength().compareTo(arg1.getContentLength());\r
+                                               } else if (sortingProperty.equals("name")) {\r
+                                                       nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getName().compareTo(arg1.getName());\r
+                                               } else if (sortingProperty.equals("path")) {\r
+                                                       pathLabel.setHTML("Path&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getUri().compareTo(arg1.getUri());\r
+                                               } else {\r
+                                                       nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getName().compareTo(arg1.getName());\r
+                                               }\r
+                                       else if (sortingProperty.equals("version")) {\r
+                                               versionLabel.setHTML("Version&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getVersion().compareTo(arg0.getVersion());\r
+                                       } else if (sortingProperty.equals("owner")) {\r
+                                               ownerLabel.setHTML("Owner&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getOwner().compareTo(arg0.getOwner());\r
+                                       } else if (sortingProperty.equals("date")) {\r
+                                               dateLabel.setHTML("Date modified&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getModificationDate().compareTo(arg0.getModificationDate());\r
+                                       } else if (sortingProperty.equals("size")) {\r
+                                               sizeLabel.setHTML("Size&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getContentLength().compareTo(arg0.getContentLength());\r
+                                       } else if (sortingProperty.equals("name")) {\r
+                                               nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getName().compareTo(arg0.getName());\r
+                                       } else if (sortingProperty.equals("path")) {\r
+                                               pathLabel.setHTML("Path&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getUri().compareTo(arg0.getUri());\r
+                                       } else {\r
+                                               nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getName().compareTo(arg0.getName());\r
+                                       }\r
+                               }\r
+\r
+                       });\r
+               }\r
+\r
+\r
                // Show the selected files.\r
                int i = 1;\r
                for (; i < GSS.VISIBLE_FILE_COUNT + 1; ++i) {\r
@@ -571,10 +623,11 @@ public class FileList extends Composite implements TableListener, ClickListener
                        table.getRowFormatter().addStyleName(i, "gss-fileRow");\r
 \r
                        //add view image link for image files\r
-                       if (file.getContentType().startsWith("image/"))\r
+                       String contentType = file.getContentType();\r
+                       if (contentType.endsWith("png") || contentType.endsWith("gif") || contentType.endsWith("jpeg") )\r
                                table.setHTML(i, 1, file.getName() + " <a href='" +\r
                                                GSS.get().getTopPanel().getFileMenu().getDownloadURL(file) +\r
-                                               "' title='" + file.getName() + "' rel='lytebox' " +\r
+                                               "' title='" + file.getName() + "' rel='lytebox[p]' " +\r
                                                "onclick='myLytebox.start(this, false, false)'>" +\r
                                                "(view)" + "</a>");\r
                        else\r
@@ -697,7 +750,7 @@ public class FileList extends Composite implements TableListener, ClickListener
                else if (GSS.get().getFolders().getCurrent() != null) {\r
                        final DnDTreeItem folderItem = (DnDTreeItem) GSS.get().getFolders().getCurrent();\r
                        if (folderItem.getFolderResource() != null) {\r
-                               update();\r
+                               update(true);\r
                                GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, folderItem.getFolderResource().getUri()) {\r
 \r
                                                @Override\r
@@ -824,17 +877,13 @@ public class FileList extends Composite implements TableListener, ClickListener
        private void updateFileCache(boolean clearSelection, String newFilename) {\r
                if (clearSelection)\r
                        clearSelectedRows();\r
-\r
                clearLabels();\r
-               sortingProperty = "name";\r
-               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-               sortingType = true;\r
                startIndex = 0;\r
                final TreeItem folderItem = GSS.get().getFolders().getCurrent();\r
                // Validation.\r
                if (folderItem == null || GSS.get().getFolders().isOthersShared(folderItem)) {\r
                        setFiles(new ArrayList<FileResource>());\r
-                       update();\r
+                       update(true);\r
                        return;\r
                }\r
                if (folderItem instanceof DnDTreeItem) {\r
@@ -853,8 +902,8 @@ public class FileList extends Composite implements TableListener, ClickListener
                                setFiles(dnd.getOtherUserResource().getFiles());\r
                        else\r
                                setFiles(dnd.getFolderResource().getFiles());\r
+                       update(true);\r
 \r
-                       update();\r
                        if (!clearSelection && selectedRows.size()==1 && newFilename!=null) {\r
                                int row = -1;\r
                                for (int i=1; i < GSS.VISIBLE_FILE_COUNT + 1; ++i) {\r
@@ -901,61 +950,7 @@ public class FileList extends Composite implements TableListener, ClickListener
                        sortingProperty = sortProperty;\r
                        sortingType = true;\r
                }\r
-               clearLabels();\r
-               clearSelectedRows();\r
-               if (files == null || files.size() == 0)\r
-                       return;\r
-               Collections.sort(files, new Comparator<FileResource>() {\r
-\r
-                       public int compare(FileResource arg0, FileResource arg1) {\r
-                               if (sortingType)\r
-                                       if (sortProperty.equals("version")) {\r
-                                               versionLabel.setHTML("Version&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getVersion().compareTo(arg1.getVersion());\r
-                                       } else if (sortProperty.equals("owner")) {\r
-                                               ownerLabel.setHTML("Owner&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getOwner().compareTo(arg1.getOwner());\r
-                                       } else if (sortProperty.equals("date")) {\r
-                                               dateLabel.setHTML("Last modified&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getModificationDate().compareTo(arg1.getModificationDate());\r
-                                       } else if (sortProperty.equals("size")) {\r
-                                               sizeLabel.setHTML("Size&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getContentLength().compareTo(arg1.getContentLength());\r
-                                       } else if (sortProperty.equals("name")) {\r
-                                               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getName().compareTo(arg1.getName());\r
-                                       } else if (sortProperty.equals("path")) {\r
-                                               pathLabel.setHTML("Path&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getUri().compareTo(arg1.getUri());\r
-                                       } else {\r
-                                               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getName().compareTo(arg1.getName());\r
-                                       }\r
-                               else if (sortProperty.equals("version")) {\r
-                                       versionLabel.setHTML("Version&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getVersion().compareTo(arg0.getVersion());\r
-                               } else if (sortProperty.equals("owner")) {\r
-                                       ownerLabel.setHTML("Owner&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getOwner().compareTo(arg0.getOwner());\r
-                               } else if (sortProperty.equals("date")) {\r
-                                       dateLabel.setHTML("Last modified&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getModificationDate().compareTo(arg0.getModificationDate());\r
-                               } else if (sortProperty.equals("size")) {\r
-                                       sizeLabel.setHTML("Size&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getContentLength().compareTo(arg0.getContentLength());\r
-                               } else if (sortProperty.equals("name")) {\r
-                                       nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getName().compareTo(arg0.getName());\r
-                               } else if (sortProperty.equals("path")) {\r
-                                       pathLabel.setHTML("Path&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getUri().compareTo(arg0.getUri());\r
-                               } else {\r
-                                       nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getName().compareTo(arg0.getName());\r
-                               }\r
-                       }\r
-\r
-               });\r
+               update(true);\r
        }\r
 \r
        private void clearLabels() {\r
index 2c27517..46bd51c 100644 (file)
@@ -255,7 +255,7 @@ public class SearchResults extends Composite implements TableListener, ClickList
                        if (startIndex >= folderFileCount)\r
                                startIndex -= GSS.VISIBLE_FILE_COUNT;\r
                        else\r
-                               update();\r
+                               update(false);\r
                } else if (sender == prevButton) {\r
                        clearSelectedRows();\r
                        // Move back a page.\r
@@ -263,7 +263,7 @@ public class SearchResults extends Composite implements TableListener, ClickList
                        if (startIndex < 0)\r
                                startIndex = 0;\r
                        else\r
-                               update();\r
+                               update(false);\r
                }\r
        }\r
 \r
@@ -331,8 +331,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("name");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -341,8 +339,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("version");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -351,8 +347,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("size");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -361,8 +355,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("date");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -371,8 +363,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("owner");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -382,8 +372,6 @@ public class SearchResults extends Composite implements TableListener, ClickList
 \r
                        public void onClick(Widget sender) {\r
                                sortFiles("path");\r
-                               update();\r
-\r
                        }\r
 \r
                });\r
@@ -483,13 +471,70 @@ public class SearchResults extends Composite implements TableListener, ClickList
        /**\r
         * Update the display of the file list.\r
         */\r
-       void update() {\r
+       void update(boolean sort) {\r
                int count = folderFileCount;\r
                int max = startIndex + GSS.VISIBLE_FILE_COUNT;\r
                if (max > count)\r
                        max = count;\r
                folderTotalSize = 0;\r
 \r
+               if (sort && files != null && files.size() != 0) {\r
+                       clearLabels();\r
+                       clearSelectedRows();\r
+\r
+                       Collections.sort(files, new Comparator<FileResource>() {\r
+\r
+                               public int compare(FileResource arg0, FileResource arg1) {\r
+                                       if (sortingType)\r
+                                               if (sortingProperty.equals("version")) {\r
+                                                       versionLabel.setHTML("Version&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getVersion().compareTo(arg1.getVersion());\r
+                                               } else if (sortingProperty.equals("owner")) {\r
+                                                       ownerLabel.setHTML("Owner&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getOwner().compareTo(arg1.getOwner());\r
+                                               } else if (sortingProperty.equals("date")) {\r
+                                                       dateLabel.setHTML("Last modified&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getModificationDate().compareTo(arg1.getModificationDate());\r
+                                               } else if (sortingProperty.equals("size")) {\r
+                                                       sizeLabel.setHTML("Size&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getContentLength().compareTo(arg1.getContentLength());\r
+                                               } else if (sortingProperty.equals("name")) {\r
+                                                       nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getName().compareTo(arg1.getName());\r
+                                               } else if (sortingProperty.equals("path")) {\r
+                                                       pathLabel.setHTML("Path&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getUri().compareTo(arg1.getUri());\r
+                                               } else {\r
+                                                       nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
+                                                       return arg0.getName().compareTo(arg1.getName());\r
+                                               }\r
+                                       else if (sortingProperty.equals("version")) {\r
+                                               versionLabel.setHTML("Version&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getVersion().compareTo(arg0.getVersion());\r
+                                       } else if (sortingProperty.equals("owner")) {\r
+                                               ownerLabel.setHTML("Owner&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getOwner().compareTo(arg0.getOwner());\r
+                                       } else if (sortingProperty.equals("date")) {\r
+                                               dateLabel.setHTML("Last modified&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getModificationDate().compareTo(arg0.getModificationDate());\r
+                                       } else if (sortingProperty.equals("size")) {\r
+                                               sizeLabel.setHTML("Size&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getContentLength().compareTo(arg0.getContentLength());\r
+                                       } else if (sortingProperty.equals("name")) {\r
+                                               nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getName().compareTo(arg0.getName());\r
+                                       } else if (sortingProperty.equals("path")) {\r
+                                               pathLabel.setHTML("Path&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getUri().compareTo(arg0.getUri());\r
+                                       } else {\r
+                                               nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
+                                               return arg1.getName().compareTo(arg0.getName());\r
+                                       }\r
+                               }\r
+\r
+                       });\r
+\r
+               }\r
                // Show the selected files.\r
                int i = 1;\r
                for (; i < GSS.VISIBLE_FILE_COUNT + 1; ++i) {\r
@@ -580,16 +625,13 @@ public class SearchResults extends Composite implements TableListener, ClickList
        public void updateFileCache(String query) {\r
                final GSS app = GSS.get();\r
                clearSelectedRows();\r
-               sortingProperty = "name";\r
                clearLabels();\r
-               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-               sortingType = true;\r
                startIndex = 0;\r
                app.showLoadingIndicator();\r
                if (query == null || query.trim().equals("")) {\r
                        searchResults.setHTML("You must specify a query");\r
                        setFiles(new ArrayList());\r
-                       update();\r
+                       update(true);\r
                        app.hideLoadingIndicator();\r
                } else{\r
                        searchResults.setHTML("Search results for " + query);\r
@@ -601,7 +643,7 @@ public class SearchResults extends Composite implements TableListener, ClickList
                                public void onComplete() {\r
                                        SearchResource s = getResult();\r
                                        setFiles(s.getFiles());\r
-                                       update();\r
+                                       update(true);\r
                                }\r
 \r
                                @Override\r
@@ -644,61 +686,7 @@ public class SearchResults extends Composite implements TableListener, ClickList
                        sortingProperty = sortProperty;\r
                        sortingType = true;\r
                }\r
-               clearLabels();\r
-               clearSelectedRows();\r
-               if (files == null || files.size() == 0)\r
-                       return;\r
-               Collections.sort(files, new Comparator<FileResource>() {\r
-\r
-                       public int compare(FileResource arg0, FileResource arg1) {\r
-                               if (sortingType)\r
-                                       if (sortProperty.equals("version")) {\r
-                                               versionLabel.setHTML("Version&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getVersion().compareTo(arg1.getVersion());\r
-                                       } else if (sortProperty.equals("owner")) {\r
-                                               ownerLabel.setHTML("Owner&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getOwner().compareTo(arg1.getOwner());\r
-                                       } else if (sortProperty.equals("date")) {\r
-                                               dateLabel.setHTML("Last modified&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getModificationDate().compareTo(arg1.getModificationDate());\r
-                                       } else if (sortProperty.equals("size")) {\r
-                                               sizeLabel.setHTML("Size&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getContentLength().compareTo(arg1.getContentLength());\r
-                                       } else if (sortProperty.equals("name")) {\r
-                                               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getName().compareTo(arg1.getName());\r
-                                       } else if (sortProperty.equals("path")) {\r
-                                               pathLabel.setHTML("Path&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getUri().compareTo(arg1.getUri());\r
-                                       } else {\r
-                                               nameLabel.setHTML("Name&nbsp;" + images.desc().getHTML());\r
-                                               return arg0.getName().compareTo(arg1.getName());\r
-                                       }\r
-                               else if (sortProperty.equals("version")) {\r
-                                       versionLabel.setHTML("Version&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getVersion().compareTo(arg0.getVersion());\r
-                               } else if (sortProperty.equals("owner")) {\r
-                                       ownerLabel.setHTML("Owner&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getOwner().compareTo(arg0.getOwner());\r
-                               } else if (sortProperty.equals("date")) {\r
-                                       dateLabel.setHTML("Last modified&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getModificationDate().compareTo(arg0.getModificationDate());\r
-                               } else if (sortProperty.equals("size")) {\r
-                                       sizeLabel.setHTML("Size&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getContentLength().compareTo(arg0.getContentLength());\r
-                               } else if (sortProperty.equals("name")) {\r
-                                       nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getName().compareTo(arg0.getName());\r
-                               } else if (sortProperty.equals("path")) {\r
-                                       pathLabel.setHTML("Path&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getUri().compareTo(arg0.getUri());\r
-                               } else {\r
-                                       nameLabel.setHTML("Name&nbsp;" + images.asc().getHTML());\r
-                                       return arg1.getName().compareTo(arg0.getName());\r
-                               }\r
-                       }\r
-\r
-               });\r
+               update(true);\r
        }\r
 \r
        private void clearLabels() {\r