Paste option is not available for cross-user operations
authorChristos Stathis <chstath@ebs.gr>
Tue, 20 Sep 2011 14:38:46 +0000 (17:38 +0300)
committerChristos Stathis <chstath@ebs.gr>
Tue, 20 Sep 2011 14:38:46 +0000 (17:38 +0300)
src/gr/grnet/pithos/web/client/FileContextMenu.java
src/gr/grnet/pithos/web/client/FolderContextMenu.java

index 2714d9a..91aac3a 100644 (file)
@@ -202,8 +202,11 @@ public class FileContextMenu extends PopupPanel {
         if (selectedFolder != null) {
                    if (!selectedFolder.isInTrash()) {
                        if (canWrite && app.getClipboard().hasFiles()) {
-                           pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(app, this, selectedFolder));
-                           contextMenu.addItem(pasteItem);
+                               List<File> files = (List<File>) app.getClipboard().getItem();
+                               if (files.get(0).getOwner().equals(selectedFolder.getOwner())) {
+                                       pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(app, this, selectedFolder));
+                                       contextMenu.addItem(pasteItem);
+                               }
                        }
                
                        if (canWrite) {
@@ -242,9 +245,9 @@ public class FileContextMenu extends PopupPanel {
                if (isFolderTreeSelected && selectedFiles.size() == 1)
                        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(app, this, selectedFiles, images, 0)));
 
-            if (selectedFiles.size() == 1)
-                           contextMenu.addItem(new MenuItem("<span><a class='hidden-link' href='" + app.getApiPath() + app.getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + app.getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, (Command) null));
         }
+        if (selectedFiles.size() == 1)
+                   contextMenu.addItem(new MenuItem("<span><a class='hidden-link' href='" + app.getApiPath() + selectedFiles.get(0).getOwner() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + app.getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, (Command) null));
                MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + "&nbsp;Unselect</span>", true, new Command() {
             @Override
             public void execute() {
index 1ff04d9..a915c95 100644 (file)
@@ -34,6 +34,8 @@
  */
 package gr.grnet.pithos.web.client;
 
+import java.util.List;
+
 import gr.grnet.pithos.web.client.commands.CopyCommand;
 import gr.grnet.pithos.web.client.commands.CutCommand;
 import gr.grnet.pithos.web.client.commands.DeleteCommand;
@@ -43,6 +45,7 @@ import gr.grnet.pithos.web.client.commands.PasteCommand;
 import gr.grnet.pithos.web.client.commands.PropertiesCommand;
 import gr.grnet.pithos.web.client.commands.RestoreTrashCommand;
 import gr.grnet.pithos.web.client.commands.ToTrashCommand;
+import gr.grnet.pithos.web.client.foldertree.File;
 import gr.grnet.pithos.web.client.foldertree.Folder;
 
 import com.google.gwt.user.client.ui.AbstractImagePrototype;
@@ -102,8 +105,22 @@ public class FolderContextMenu extends PopupPanel {
        
                if (canWrite) {
                        if (!app.getClipboard().isEmpty()) {
-                           pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(app, this, folder));
-                           contextMenu.addItem(pasteItem);
+                               Object item = app.getClipboard().getItem();
+                               boolean showPaste = false;
+                               if (item instanceof List) {
+                                       List<File> files = (List<File>) item;
+                                       if (files.get(0).getOwner().equals(folder.getOwner()))
+                                               showPaste = true;
+                               }
+                               else {
+                                       Folder f = (Folder) item;
+                                       if (f.getOwner().equals(folder.getOwner()))
+                                               showPaste = true;
+                               }
+                               if (showPaste) {
+                                   pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(app, this, folder));
+                                   contextMenu.addItem(pasteItem);
+                               }
                        }
 
                            if (isFolderTreeSelected && !folder.isContainer()) {