New button "Add everybody" to file Share dialog
[pithos-web-client] / src / gr / grnet / pithos / web / client / ToolsMenu.java
index 3da9ed1..19a21e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2011-2012 GRNET S.A. All rights reserved.
+ * Copyright 2011-2013 GRNET S.A. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or
  * without modification, are permitted provided that the following
  */
 package gr.grnet.pithos.web.client;
 
-import gr.grnet.pithos.web.client.commands.AddUserCommand;
-import gr.grnet.pithos.web.client.commands.CopyCommand;
-import gr.grnet.pithos.web.client.commands.CreateGroupCommand;
-import gr.grnet.pithos.web.client.commands.CutCommand;
-import gr.grnet.pithos.web.client.commands.DeleteCommand;
-import gr.grnet.pithos.web.client.commands.DeleteGroupCommand;
-import gr.grnet.pithos.web.client.commands.EmptyTrashCommand;
-import gr.grnet.pithos.web.client.commands.PasteCommand;
-import gr.grnet.pithos.web.client.commands.PropertiesCommand;
-import gr.grnet.pithos.web.client.commands.RemoveUserCommand;
-import gr.grnet.pithos.web.client.commands.RestoreTrashCommand;
-import gr.grnet.pithos.web.client.commands.ToTrashCommand;
+import gr.grnet.pithos.web.client.commands.*;
+import gr.grnet.pithos.web.client.commands.PurgeContainerCommand;
 import gr.grnet.pithos.web.client.foldertree.File;
 import gr.grnet.pithos.web.client.foldertree.Folder;
 import gr.grnet.pithos.web.client.grouptree.Group;
@@ -54,7 +44,6 @@ import gr.grnet.pithos.web.client.grouptree.User;
 
 import java.util.List;
 
-import com.google.gwt.http.client.URL;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.AbstractImagePrototype;
@@ -92,20 +81,19 @@ public class ToolsMenu extends PopupPanel {
                // The popup's constructor's argument is a boolean specifying that it
                // auto-close itself when the user clicks outside of it.
                super(true);
-               setAnimationEnabled(true);
                images = newImages;
         MenuBar contextMenu = new MenuBar(true);
 
         if (folder != null) {
-               Boolean[] permissions = folder.getPermissions().get(app.getUsername());
-               boolean canWrite = folder.getOwner().equals(app.getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]);
+               Boolean[] permissions = folder.getPermissions().get(app.getUserID());
+               boolean canWrite = folder.getOwnerID().equals(app.getUserID()) || (permissions!= null && permissions[1] != null && permissions[1]);
                boolean isFolderTreeSelected = selectedTree.equals(app.getFolderTreeView());
                boolean isMysharedTreeSelected = app.isMySharedSelected();
                
                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 +108,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) {
@@ -139,12 +125,12 @@ public class ToolsMenu extends PopupPanel {
                                        if (item instanceof List) {
                                                @SuppressWarnings("unchecked")
                                                        List<File> _files = (List<File>) item;
-                                               if (_files.get(0).getOwner().equals(folder.getOwner()))
+                                               if (_files.get(0).getOwnerID().equals(folder.getOwnerID()))
                                                        showPaste = true;
                                        }
                                        else {
                                                Folder f = (Folder) item;
-                                               if (f.getOwner().equals(folder.getOwner()))
+                                               if (f.getOwnerID().equals(folder.getOwnerID()))
                                                        showPaste = true;
                                        }
                                        if (showPaste) {
@@ -154,7 +140,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));
@@ -181,10 +167,8 @@ public class ToolsMenu extends PopupPanel {
                                    if (isFolderTreeSelected || isMysharedTreeSelected) {
                                        if (files != null && files.size() == 1) {
                                                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.group()).getHTML() + "&nbsp;Share</span>", true, new PropertiesCommand(app, this, files, PropertiesCommand.PERMISSIONS)));
+                                               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()) {
@@ -199,11 +183,20 @@ public class ToolsMenu extends PopupPanel {
                                                        @Override
                                                        public void execute() {
                                                        for (File f: files)
-                                                               Window.open(app.getApiPath() + f.getOwner() + f.getUri(), "_blank", "");
+                                                               Window.open(app.getApiPath() + f.getOwnerID() + f.getUri(), "_blank", "");
                                                        }
                                                }));
                                        empty = false;
                                }
+                               if (isFolderTreeSelected && folder.isContainer()) {
+                                       MenuItem emptyContainer = new MenuItem(
+                            "<span>" + Const.PurgeContainer(folder.getName()) + "</span>",
+                            true,
+                            new PurgeContainerCommand(app, this, folder)
+                        );
+                                       contextMenu.addItem(emptyContainer);
+                                       empty = false;
+                               }
                        }
                }
                else {
@@ -220,7 +213,7 @@ public class ToolsMenu extends PopupPanel {
                                empty = false;
                        }
                        else {
-                               MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(app, this));
+                               MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new PurgeContainerCommand(app, this, folder));
                                contextMenu.addItem(emptyTrash);
                                empty = false;
                        }