Organized contect menus
authorChristos Stathis <chstath@ebs.gr>
Wed, 13 Jul 2011 08:57:16 +0000 (11:57 +0300)
committerChristos Stathis <chstath@ebs.gr>
Wed, 13 Jul 2011 08:57:16 +0000 (11:57 +0300)
web_client/src/gr/grnet/pithos/web/client/Clipboard.java
web_client/src/gr/grnet/pithos/web/client/FileContextMenu.java
web_client/src/gr/grnet/pithos/web/client/FolderContextMenu.java
web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java

index 7f904b0..22275ef 100644 (file)
@@ -81,4 +81,12 @@ public class Clipboard {
         folder = null;
         files = null;
     }
+
+    public boolean isEmpty() {
+        return (files == null || files.isEmpty()) && folder == null;
+    }
+
+    public boolean hasFiles() {
+        return files != null && !files.isEmpty();
+    }
 }
index 1358073..2fdc4ed 100644 (file)
@@ -137,22 +137,24 @@ public class FileContextMenu extends PopupPanel {
                images = newImages;
         MenuBar contextMenu = new MenuBar(true);
 
-               pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, selectedFolder));
-        contextMenu.addItem(pasteItem);
-
-        MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, selectedFolder));
-        contextMenu.addItem(upload);
-
-        MenuItem refresh = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
-        contextMenu.addItem(refresh);
-
-               if (isTrash) {
-                       MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
-                       contextMenu.addItem(restore);
-
-                       MenuItem delete = new MenuItem("<span>" + AbstractImagePrototype.create(images.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, null, images));
-                       contextMenu.addItem(delete);
-               } else {
+        if (GSS.get().getClipboard().hasFiles()) {
+            pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, selectedFolder));
+            contextMenu.addItem(pasteItem);
+        }
+
+//        MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, selectedFolder));
+//        contextMenu.addItem(upload);
+
+//        MenuItem refresh = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
+//        contextMenu.addItem(refresh);
+
+//             if (isTrash) {
+//                     MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
+//                     contextMenu.addItem(restore);
+//
+//                     MenuItem delete = new MenuItem("<span>" + AbstractImagePrototype.create(images.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, null, images));
+//                     contextMenu.addItem(delete);
+//             } else {
                        cutItem = new MenuItem("<span id='fileContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, selectedFiles));
             contextMenu.addItem(cutItem);
 
@@ -165,37 +167,32 @@ public class FileContextMenu extends PopupPanel {
                        deleteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, selectedFiles, images));
             contextMenu.addItem(deleteItem);
 
-                       sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
-            contextMenu.addItem(sharingItem);
+//                     sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
+//            contextMenu.addItem(sharingItem);
 
-                       propItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
-            contextMenu.addItem(propItem);
+//                     propItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
+//            contextMenu.addItem(propItem);
 
-                       downloadItem = new MenuItem("<span><a class='hidden-link' href='" + GSS.get().getApiPath() + GSS.get().getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + GSS.get().getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, new Command() {
-                @Override
-                public void execute() {
-                }
-            });
-                       contextMenu.addItem(downloadItem);
+//                     downloadItem = new MenuItem("<span><a class='hidden-link' href='" + GSS.get().getApiPath() + GSS.get().getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + GSS.get().getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, new Command() {
+//                @Override
+//                public void execute() {
+//                }
+//            });
+//                     contextMenu.addItem(downloadItem);
                        
-            final Command unselectAllCommand = new Command() {
-
-                @Override
-                public void execute() {
-                    hide();
-                    if(GSS.get().isFileListShowing())
-                        GSS.get().getFileList().clearSelectedRows();
-                }
-            };
-                       MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + "&nbsp;Unselect</span>", true, unselectAllCommand);
-                       contextMenu.addItem(unSelect);
-
-               }
+//            final Command unselectAllCommand = new Command() {
+//
+//                @Override
+//                public void execute() {
+//                    hide();
+//                    if(GSS.get().isFileListShowing())
+//                        GSS.get().getFileList().clearSelectedRows();
+//                }
+//            };
+//                     MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + "&nbsp;Unselect</span>", true, unselectAllCommand);
+//                     contextMenu.addItem(unSelect);
+
+//             }
                add(contextMenu);
-
-//             if (gss.getClipboard().hasFileItem())
-//                     pasteItem.setVisible(true);
-//             else
-//                     pasteItem.setVisible(false);
        }
 }
index c24493b..4d39001 100644 (file)
@@ -98,31 +98,35 @@ public class FolderContextMenu extends PopupPanel {
         MenuItem newFolder = new MenuItem("<span id = 'folderContextMenu.newFolder'>" + AbstractImagePrototype.create(newImages.folderNew()).getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(this, folder, images));
         contextMenu.addItem(newFolder);
 
-        // do not show the copy & cut option for the user's root folder
-        MenuItem cut = new MenuItem("<span id = 'folderContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, folder));
-        contextMenu.addItem(cut);
+        if (!folder.isContainer()) {
+            MenuItem cut = new MenuItem("<span id = 'folderContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, folder));
+            contextMenu.addItem(cut);
+        }
 
         MenuItem copy = new MenuItem("<span id = 'folderContextMenu.copy'>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(GSS.get(), this, folder));
         contextMenu.addItem(copy);
 
-        pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, folder));
-        contextMenu.addItem(pasteItem);
+        if (!GSS.get().getClipboard().isEmpty()) {
+            pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, folder));
+            contextMenu.addItem(pasteItem);
+        }
 
-        // do not show delete options for the user's root folder
-        MenuItem moveToTrash = new MenuItem("<span id = 'folderContextMenu.moveToTrash'>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move to Trash</span>", true, new ToTrashCommand(GSS.get(), this, folder));
-        contextMenu.addItem(moveToTrash);
+        if (!folder.isContainer()) {
+            MenuItem moveToTrash = new MenuItem("<span id = 'folderContextMenu.moveToTrash'>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move to Trash</span>", true, new ToTrashCommand(GSS.get(), this, folder));
+            contextMenu.addItem(moveToTrash);
 
-        MenuItem delete = new MenuItem("<span id = 'folderContextMenu.delete'>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, folder, newImages));
-        contextMenu.addItem(delete);
+            MenuItem delete = new MenuItem("<span id = 'folderContextMenu.delete'>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, folder, newImages));
+            contextMenu.addItem(delete);
+        }
 
-        MenuItem refresh = new MenuItem("<span id = 'folderContextMenu.refresh'>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
-        contextMenu.addItem(refresh);
+//        MenuItem refresh = new MenuItem("<span id = 'folderContextMenu.refresh'>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
+//        contextMenu.addItem(refresh);
 
-        MenuItem sharing = new MenuItem("<span id = 'folderContextMenu.sharing'>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, newImages, 1));
-        contextMenu.addItem(sharing);
+//        MenuItem sharing = new MenuItem("<span id = 'folderContextMenu.sharing'>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, newImages, 1));
+//        contextMenu.addItem(sharing);
 
-        MenuItem properties = new MenuItem("<span id = 'folderContextMenu.properties'>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, newImages, 0));
-        contextMenu.addItem(properties);
+//        MenuItem properties = new MenuItem("<span id = 'folderContextMenu.properties'>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, newImages, 0));
+//        contextMenu.addItem(properties);
 
                add(contextMenu);
        }
index 3c82360..5365f5e 100644 (file)
@@ -233,4 +233,8 @@ public class Folder extends Resource {
     public boolean isInTrash() {
         return inTrash;
     }
+
+    public boolean isContainer() {
+        return parent == null;
+    }
 }