Temporarily show just an empty trash folder
authorChristos Stathis <chstath@ebs.gr>
Mon, 18 Jul 2011 11:16:25 +0000 (14:16 +0300)
committerChristos Stathis <chstath@ebs.gr>
Mon, 18 Jul 2011 11:16:25 +0000 (14:16 +0300)
src/gr/grnet/pithos/web/client/FileList.java
src/gr/grnet/pithos/web/client/GSS.java
src/gr/grnet/pithos/web/client/foldertree/Folder.java
src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java

index 87e5b0a..41c5cc1 100644 (file)
@@ -793,4 +793,14 @@ public class FileList extends Composite {
                //celltable.redraw();
                celltable.redrawHeaders();              
        }
+
+    public void showTrash() {
+        uploadButtonBottom.setVisible(false);
+        uploadButtonTop.setVisible(false);
+    }
+
+    public void showFiles() {
+        uploadButtonBottom.setVisible(true);
+        uploadButtonTop.setVisible(true);
+    }
 }
index 07ea2b6..08b306e 100644 (file)
@@ -351,6 +351,11 @@ public class GSS implements EntryPoint, ResizeHandler {
 
     public void showFiles(Folder f) {
         inner.selectTab(0);
+        if (f.isTrash()) {
+            fileList.showTrash();
+        }
+        else
+            fileList.showFiles();
         Set<File> files = f.getFiles();
         Iterator<File> iter = files.iterator();
         fetchFile(iter, files);
index 5365f5e..d0b8cf3 100644 (file)
@@ -78,6 +78,11 @@ public class Folder extends Resource {
 
     private boolean inTrash = false;
 
+    /*
+     * Flag that indicates that this folder is the Trash
+     */
+    private boolean trash = false;
+
     public Folder() {};
 
     public Folder(String name) {
@@ -237,4 +242,16 @@ public class Folder extends Resource {
     public boolean isContainer() {
         return parent == null;
     }
+
+    public boolean isTrash() {
+        return trash;
+    }
+
+    public void setTrash(boolean trash) {
+        this.trash = trash;
+    }
+
+    public void setContainer(String container) {
+        this.container = container;
+    }
 }
index 5225cb0..064dd67 100644 (file)
@@ -62,7 +62,11 @@ public class FolderTreeViewModel implements TreeViewModel {
 
        @Override
         public void render(Context context, Folder folder, SafeHtmlBuilder safeHtmlBuilder) {
-            String html = AbstractImagePrototype.create(FolderTreeView.images.folderYellow()).getHTML();
+            String html;
+            if (folder.isTrash())
+                html = AbstractImagePrototype.create(FolderTreeView.images.emptyTrash()).getHTML();
+            else
+                html = AbstractImagePrototype.create(FolderTreeView.images.folderYellow()).getHTML();
             safeHtmlBuilder.appendHtmlConstant(html);
             safeHtmlBuilder.append(Templates.INSTANCE.nameSpan(folder.getName()));
         }
@@ -142,8 +146,13 @@ public class FolderTreeViewModel implements TreeViewModel {
         else {
             dataProvider.getList().clear();
             dataProvider.getList().addAll(folders);
-            if (dataProvider.equals(rootDataProvider))
+            if (dataProvider.equals(rootDataProvider)) {
                 selectionModel.setSelected(dataProvider.getList().get(0), true);
+                Folder f = new Folder("Trash");
+                f.setTrash(true);
+                f.setContainer("trash");
+                dataProvider.getList().add(f);
+            }
         }
     }
 
@@ -161,7 +170,10 @@ public class FolderTreeViewModel implements TreeViewModel {
             dataProviderMap.put(folder, new ListDataProvider<Folder>());
         }
         final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
-        fetchFolder(folder, dataProvider);
+        if (!folder.isTrash())
+            fetchFolder(folder, dataProvider);
+        else
+            GSS.get().showFiles(folder);
     }
 
     public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider) {