Completed 'Shared by me' file context menu with whatever command is relevant (issue...
authorChristos Stathis <chstath@ebs.gr>
Wed, 9 May 2012 15:20:18 +0000 (18:20 +0300)
committerChristos Stathis <chstath@ebs.gr>
Wed, 9 May 2012 15:20:18 +0000 (18:20 +0300)
src/gr/grnet/pithos/web/client/DeleteFileDialog.java
src/gr/grnet/pithos/web/client/FileContextMenu.java
src/gr/grnet/pithos/web/client/FileList.java
src/gr/grnet/pithos/web/client/Pithos.java
src/gr/grnet/pithos/web/client/ToolsMenu.java
src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java
src/gr/grnet/pithos/web/client/foldertree/File.java
src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java
src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java

index 75396d3..c91c986 100644 (file)
@@ -36,6 +36,7 @@ package gr.grnet.pithos.web.client;
 \r
 import gr.grnet.pithos.web.client.MessagePanel.Images;\r
 import gr.grnet.pithos.web.client.foldertree.File;\r
+import gr.grnet.pithos.web.client.foldertree.Folder;\r
 import gr.grnet.pithos.web.client.foldertree.Resource;\r
 import gr.grnet.pithos.web.client.rest.DeleteRequest;\r
 import gr.grnet.pithos.web.client.rest.RestException;\r
@@ -162,13 +163,23 @@ public class DeleteFileDialog extends DialogBox {
             Scheduler.get().scheduleDeferred(deleteFile);\r
         }\r
         else {\r
-            app.updateFolder(files.get(0).getParent(), true, new Command() {\r
-                               \r
-                               @Override\r
-                               public void execute() {\r
-                                       app.updateStatistics();\r
-                               }\r
-                       }, true);\r
+               Folder f = files.get(0).getParent();\r
+               if (app.isMySharedSelected())\r
+                       app.updateSharedFolder(f, true, new Command() {\r
+                                       \r
+                                       @Override\r
+                                       public void execute() {\r
+                                               app.updateStatistics();\r
+                                       }\r
+                               });\r
+               else\r
+                   app.updateFolder(files.get(0).getParent(), true, new Command() {\r
+                                       \r
+                                       @Override\r
+                                       public void execute() {\r
+                                               app.updateStatistics();\r
+                                       }\r
+                               }, true);\r
         }\r
     }\r
 \r
index 0d5ddc1..d06f79f 100644 (file)
@@ -216,13 +216,15 @@ public class FileContextMenu extends PopupPanel {
                                MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(app, this, selectedFolder));
                                contextMenu.addItem(upload);
                        }
-                       if (isFolderTreeSelected) {
+                       if (isFolderTreeSelected || isMysharedSelected) {
                                        cutItem = new MenuItem("<span id='fileContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(app, this, selectedFiles));
                            contextMenu.addItem(cutItem);
                        }
                
+                               copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(app, this, selectedFiles));
+                       contextMenu.addItem(copyItem);
                
-                       if (isFolderTreeSelected) {
+                       if (isFolderTreeSelected || isMysharedSelected) {
                                        trashItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move to Trash</span>", true, new ToTrashCommand(app, this, selectedFiles));
                            contextMenu.addItem(trashItem);
                        }
@@ -232,12 +234,8 @@ public class FileContextMenu extends PopupPanel {
                                contextMenu.addItem(restore);
                    }
         }
-        if (!isMysharedSelected) {
-                       copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(app, this, selectedFiles));
-               contextMenu.addItem(copyItem);
-        }
 
-        if (isFolderTreeSelected) {
+        if (isFolderTreeSelected || isMysharedSelected) {
                        deleteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(app, this, selectedFiles, MessagePanel.images));
                contextMenu.addItem(deleteItem);
         }
@@ -247,8 +245,7 @@ public class FileContextMenu extends PopupPanel {
                        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(app, this, selectedFiles, PropertiesCommand.PROPERTIES)));
                        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(app, this, selectedFiles, PropertiesCommand.PERMISSIONS)));
                        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.internet()).getHTML() + "&nbsp;Publish</span>", true, new PropertiesCommand(app, this, selectedFiles, PropertiesCommand.PUBLISH)));
-                       if (!isMysharedSelected)
-                               contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.versions()).getHTML() + "&nbsp;Versions</span>", true, new PropertiesCommand(app, this, selectedFiles, PropertiesCommand.VERSIONS)));
+                               contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.versions()).getHTML() + "&nbsp;Versions</span>", true, new PropertiesCommand(app, this, selectedFiles, PropertiesCommand.VERSIONS)));
                }
 
         }
index 903b08f..0e5e54d 100644 (file)
@@ -286,16 +286,7 @@ public class FileList extends Composite {
                        @Override
                        public SafeHtml getValue(File object) {
                                SafeHtmlBuilder sb = new SafeHtmlBuilder();
-                               if (!app.getSelectedTree().equals(app.mysharedTreeView)) {
-                                       sb.append(Templates.INSTANCE.filenameSpan(object.getName()));
-                               }
-                               else {
-                                       String name = object.getPath();
-                                       if (name.lastIndexOf("/") != -1) {
-                                               name = name.substring(name.lastIndexOf("/") + 1, name.length());
-                                       }
-                                       sb.append(Templates.INSTANCE.filenameSpan(name));
-                               }
+                               sb.append(Templates.INSTANCE.filenameSpan(object.getName()));
                                if (object.getContentType() != null && (object.getContentType().endsWith("png") || object.getContentType().endsWith("gif") || object.getContentType().endsWith("jpeg"))) {
                                sb.appendHtmlConstant("&nbsp;")
                       .append(Templates.INSTANCE.viewLink(app.getApiPath() + object.getOwner() + object.getUri(), object.getName()));
index 382169a..82879aa 100644 (file)
@@ -159,10 +159,14 @@ public class Pithos implements EntryPoint, ResizeHandler {
        mysharedTreeView.updateRoot();
     }
     
-    public void updateSharedFolder(Folder f, boolean showfiles) {
-       mysharedTreeView.updateFolder(f, showfiles);
+    public void updateSharedFolder(Folder f, boolean showfiles, Command callback) {
+       mysharedTreeView.updateFolder(f, showfiles, callback);
     }
     
+    public void updateSharedFolder(Folder f, boolean showfiles) {
+       updateSharedFolder(f, showfiles, null);
+    }
+
     public void updateOtherSharedFolder(Folder f, boolean showfiles) {
        otherSharedTreeView.updateFolder(f, showfiles);
     }
index 3da9ed1..04356bd 100644 (file)
@@ -105,7 +105,7 @@ public class ToolsMenu extends PopupPanel {
                if (!folder.isInTrash()) {
                        if (canWrite) {
 
-                               if (isFolderTreeSelected) {
+                               if (isFolderTreeSelected || isMysharedTreeSelected) {
                                        MenuItem cut = null;
                                        if (files != null && !files.isEmpty()) {
                                                        cut = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut files</span>", true, new CutCommand(app, this, files));
@@ -120,16 +120,14 @@ public class ToolsMenu extends PopupPanel {
                                }
                        }
        
-                       if (!isMysharedTreeSelected) {
-                               MenuItem copy = null;
-                               if (files != null && !files.isEmpty())
-                                       copy = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy files</span>", true, new CopyCommand(app, this, files));
-                               else if (isFolderTreeSelected && !folder.isContainer())
-                                       copy = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy folder</span>", true, new CopyCommand(app, this, folder));
-                               if (copy != null) {
-                                       contextMenu.addItem(copy);
-                                       empty = false;
-                               }
+                       MenuItem copy = null;
+                       if (files != null && !files.isEmpty())
+                               copy = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy files</span>", true, new CopyCommand(app, this, files));
+                       else if (isFolderTreeSelected && !folder.isContainer())
+                               copy = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy folder</span>", true, new CopyCommand(app, this, folder));
+                       if (copy != null) {
+                               contextMenu.addItem(copy);
+                               empty = false;
                        }
                
                        if (canWrite) {
@@ -154,7 +152,7 @@ public class ToolsMenu extends PopupPanel {
                                        }
                                }
        
-                                   if (isFolderTreeSelected) {
+                                   if (isFolderTreeSelected || isMysharedTreeSelected) {
                                        MenuItem moveToTrash = null;
                                        if (files != null && !files.isEmpty()) {
                                                moveToTrash = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move files to Trash</span>", true, new ToTrashCommand(app, this, files));
@@ -183,8 +181,7 @@ public class ToolsMenu extends PopupPanel {
                                                contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;File properties</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.PROPERTIES)));
                                                contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.group()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.PERMISSIONS)));
                                                contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.internet()).getHTML() + "&nbsp;Publish</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.PUBLISH)));
-                                               if (!isMysharedTreeSelected)
-                                                       contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.versions()).getHTML() + "&nbsp;Versions</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.VERSIONS)));
+                                               contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.versions()).getHTML() + "&nbsp;Versions</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.VERSIONS)));
                                                empty = false;
                                        }
                                        else if (!folder.isContainer()) {
index 90f159b..40310c1 100644 (file)
@@ -81,13 +81,23 @@ public class ToTrashCommand implements Command{
                 @SuppressWarnings("unchecked")
                                @Override
                 public void execute() {
-                    app.updateFolder(((List<File>) resource).get(0).getParent(), true, new Command() {
-                                               
-                                               @Override
-                                               public void execute() {
-                                                       app.updateTrash(false, null);
-                                               }
-                                       }, true);
+                       Folder f = ((List<File>) resource).get(0).getParent();
+                       if (app.isMySharedSelected())
+                               app.updateSharedFolder(f, true, new Command() {
+                                                       
+                                                       @Override
+                                                       public void execute() {
+                                                               app.updateTrash(false, null);
+                                                       }
+                                               });
+                       else
+                           app.updateFolder(f, true, new Command() {
+                                                       
+                                                       @Override
+                                                       public void execute() {
+                                                               app.updateTrash(false, null);
+                                                       }
+                                               }, true);
                 }
             });
         }
index 83aeeb8..c5b667f 100644 (file)
@@ -278,4 +278,8 @@ public class File extends Resource {
     public String getInheritedPermissionsFrom() {
         return inheritedPermissionsFrom;
     }
+
+       public void setName(String _name) {
+               name = _name;
+       }
 }
index f651f18..91578b8 100644 (file)
@@ -186,8 +186,8 @@ public class MysharedTreeView extends Composite implements TreeView {
        return model.getSelection();
     }
 
-    public void updateFolder(Folder folder, boolean showfiles) {
-        model.updateFolder(folder, showfiles);
+    public void updateFolder(Folder folder, boolean showfiles, Command callback) {
+        model.updateFolder(folder, showfiles, callback);
     }
 
        public void updateRoot() {
index ebfd04a..0ddd760 100644 (file)
@@ -217,17 +217,26 @@ public class MysharedTreeViewModel implements TreeViewModel {
         return selectionModel.getSelectedObject();
     }
 
-    public void updateFolder(Folder folder, boolean showfiles) {
-        fetchFolder(folder,showfiles);
+    public void updateFolder(Folder folder, boolean showfiles, Command callback) {
+        fetchFolder(folder, showfiles, callback);
     }
 
-    public void fetchFolder(final Folder f, final boolean showfiles) {
+    public void fetchFolder(final Folder f, final boolean showfiles, final Command callback) {
         String path = "/" + f.getContainer() + "?format=json&shared=" + URL.encodeQueryString(f.getPrefix());
         GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
             @Override
             public void onSuccess(final Folder _result) {
+               for (File file : _result.getFiles()) {
+                       String name = file.getName();
+                                       if (name.lastIndexOf("/") != -1) {
+                                               file.setName(name.substring(name.lastIndexOf("/") + 1, name.length()));
+                                       }
+               }
+
                 if (showfiles)
                     app.showFiles(_result);
+                if (callback != null)
+                       callback.execute();
             }
 
             @Override