Cleaned up top File menu
authorChristos Stathis <chstath@ebs.gr>
Wed, 13 Jul 2011 15:16:47 +0000 (18:16 +0300)
committerChristos Stathis <chstath@ebs.gr>
Wed, 13 Jul 2011 15:16:47 +0000 (18:16 +0300)
src/gr/grnet/pithos/web/client/FileMenu.java
src/gr/grnet/pithos/web/client/GSS.java
src/gr/grnet/pithos/web/client/TopPanel.java
src/gr/grnet/pithos/web/client/commands/NewFolderCommand.java

index 66d151d..ccffaa0 100644 (file)
@@ -39,32 +39,25 @@ import gr.grnet.pithos.web.client.commands.NewFolderCommand;
 import gr.grnet.pithos.web.client.commands.PropertiesCommand;
 import gr.grnet.pithos.web.client.commands.RefreshCommand;
 import gr.grnet.pithos.web.client.commands.UploadFileCommand;
-import gr.grnet.pithos.web.client.rest.RestCommand;
+import gr.grnet.pithos.web.client.foldertree.File;
+import gr.grnet.pithos.web.client.foldertree.Folder;
 import gr.grnet.pithos.web.client.rest.resource.FileResource;
-import gr.grnet.pithos.web.client.rest.resource.OtherUserResource;
-import gr.grnet.pithos.web.client.rest.resource.OthersResource;
-import gr.grnet.pithos.web.client.rest.resource.RestResource;
-import gr.grnet.pithos.web.client.rest.resource.SharedResource;
-import gr.grnet.pithos.web.client.rest.resource.TrashFolderResource;
-import gr.grnet.pithos.web.client.rest.resource.TrashResource;
 
 import java.util.List;
 
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.http.client.URL;
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.AbstractImagePrototype;
 import com.google.gwt.user.client.ui.MenuBar;
 import com.google.gwt.user.client.ui.MenuItem;
-import com.google.gwt.user.client.ui.PopupPanel;
 
 /**
  * The 'File' menu implementation.
  */
-public class FileMenu extends PopupPanel implements ClickHandler {
+public class FileMenu extends MenuBar {
 
        /**
         * The widget's images.
@@ -106,27 +99,54 @@ public class FileMenu extends PopupPanel implements ClickHandler {
         *
         * @param _images the image bundle passed on by the parent object
         */
-       public FileMenu(final Images _images) {
-               // The popup's constructor's argument is a boolean specifying that it
-               // auto-close itself when the user clicks outside of it.
-               super(true);
+       public FileMenu(GSS _app, final Images _images) {
                setAnimationEnabled(true);
                images = _images;
-               add(contextMenu);
 
+        final Command downloadCmd = new Command() {
+
+            @Override
+            public void execute() {
+                preDownloadCheck();
+            }
+        };
+
+        Folder selectedFolder = _app.getFolderTreeView().getSelection();
+        List<File> selectedFiles = _app.getFileList().getSelectedFiles();
+        if (selectedFolder != null) {
+                   MenuItem newFolderItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.folderNew()).getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(null, selectedFolder, images));
+                   addItem(newFolderItem);
+
+//            MenuItem uploadItem = new MenuItem("<span id='topMenu.file.upload'>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, null));
+//            addItem(uploadItem);
+        }
+        if (selectedFiles.size() == 1) {
+//            String[] link = {"", ""};
+//            createDownloadLink(link, false);
+//
+//            MenuItem downloadItem = new MenuItem("<span>" + link[0] + AbstractImagePrototype.create(images.download()).getHTML() + "&nbsp;Download" + link[1] + "</span>", true, downloadCmd);
+//            addItem(downloadItem);
+        }
+
+//        MenuItem emptyTrashItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(this));
+//        emptyTrashItem.getElement().setId("topMenu.file.emptyTrash");
+//        contextMenu.addItem(emptyTrashItem);
+
+//        MenuItem refreshItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
+//        refreshItem.getElement().setId("topMenu.file.refresh");
+//        contextMenu.addItem(refreshItem);
+
+//        MenuItem sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
+//        sharingItem.getElement().setId("topMenu.file.sharing");
+//        contextMenu.addItem(sharingItem)
+//                       .setVisible(propertiesVisible);
+//
+//        MenuItem propertiesItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
+//        propertiesItem.getElement().setId("topMenu.file.properties");
+//        contextMenu.addItem(propertiesItem)
+//                       .setVisible(propertiesVisible);
        }
 
-       @Override
-       public void onClick(ClickEvent event) {
-               final FileMenu menu = new FileMenu(images);
-               final int left = event.getRelativeElement().getAbsoluteLeft();
-               final int top = event.getRelativeElement().getAbsoluteTop() + event.getRelativeElement().getOffsetHeight();
-               menu.setPopupPosition(left, top);
-               menu.show();
-
-       }
-
-
        /**
         * Do some validation before downloading a file.
         */
@@ -175,66 +195,4 @@ public class FileMenu extends PopupPanel implements ClickHandler {
                return "";
        }
 
-       public MenuBar createMenu() {
-               contextMenu.clearItems();
-               contextMenu.setAutoOpen(false);
-               final Command downloadCmd = new Command() {
-
-                       @Override
-                       public void execute() {
-                               hide();
-                               preDownloadCheck();
-                       }
-               };
-        CellTreeView treeView = GSS.get().getTreeView();
-        if (treeView == null)
-            return contextMenu;
-               RestResource selectedItem = treeView.getSelection();
-               boolean downloadVisible = GSS.get().getCurrentSelection() != null && GSS.get().getCurrentSelection() instanceof FileResource;
-               boolean propertiesVisible = !(selectedItem != null && (selectedItem instanceof TrashResource || selectedItem instanceof TrashFolderResource || selectedItem instanceof SharedResource || selectedItem instanceof OthersResource || selectedItem instanceof OtherUserResource 
-                                       //|| folders.isOthersShared(selectedItem) || selectedItem.getUserObject() instanceof GroupUserResource 
-                                       || GSS.get().getCurrentSelection() instanceof List));
-               boolean newFolderVisible = !(selectedItem != null && (selectedItem instanceof TrashResource || selectedItem instanceof TrashFolderResource || selectedItem instanceof SharedResource || selectedItem instanceof OthersResource || selectedItem instanceof OtherUserResource));
-               boolean uploadVisible = !(selectedItem != null && (selectedItem instanceof TrashResource || selectedItem instanceof TrashFolderResource || selectedItem instanceof SharedResource || selectedItem instanceof OthersResource || selectedItem instanceof OtherUserResource));
-               if(newFolderVisible){
-//                     MenuItem newFolderItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.folderNew()).getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(this, images));
-//                     newFolderItem.getElement().setId("topMenu.file.newFolder");
-//                     contextMenu.addItem(newFolderItem);
-               }
-               if(uploadVisible){
-                       MenuItem uploadItem = new MenuItem("<span id='topMenu.file.upload'>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, null));
-                       contextMenu.addItem(uploadItem);
-               }
-               if (downloadVisible) {
-                       String[] link = {"", ""};
-                       createDownloadLink(link, false);
-                       
-                       MenuItem downloadItem = new MenuItem("<span>" + link[0] + AbstractImagePrototype.create(images.download()).getHTML() + "&nbsp;Download" + link[1] + "</span>", true, downloadCmd);
-                       contextMenu.addItem(downloadItem);
-                       
-                       createDownloadLink(link, true);
-                       
-                       MenuItem saveAsItem = new MenuItem("<span>" + link[0] + AbstractImagePrototype.create(images.download()).getHTML() + "&nbsp;Save As" + link[1] + "</span>", true, downloadCmd);                 
-                       contextMenu.addItem(saveAsItem);
-               }
-               MenuItem emptyTrashItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(this));
-               emptyTrashItem.getElement().setId("topMenu.file.emptyTrash");
-               contextMenu.addItem(emptyTrashItem);
-               
-               MenuItem refreshItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
-               refreshItem.getElement().setId("topMenu.file.refresh");
-               contextMenu.addItem(refreshItem);
-               
-               MenuItem sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
-               sharingItem.getElement().setId("topMenu.file.sharing");
-               contextMenu.addItem(sharingItem)
-                                       .setVisible(propertiesVisible);
-               
-               MenuItem propertiesItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
-               propertiesItem.getElement().setId("topMenu.file.properties");
-               contextMenu.addItem(propertiesItem)
-                                       .setVisible(propertiesVisible);
-               return contextMenu;
-       }
-
 }
index e952aa2..109b8c8 100644 (file)
@@ -914,4 +914,8 @@ public class GSS implements EntryPoint, ResizeHandler {
             Scheduler.get().scheduleDeferred(deleteFolder);
         }
     }
+
+    public FolderTreeView getFolderTreeView() {
+        return folderTreeView;
+    }
 }
index 66853a2..33a757a 100644 (file)
@@ -106,16 +106,6 @@ public class TopPanel extends Composite {
        private EditMenu editMenu;
 
        /**
-        * The settings menu widget.
-        */
-       private SettingsMenu settingsMenu;
-
-       /**
-        * The help menu widget.
-        */
-       private HelpMenu helpMenu;
-
-       /**
         * A widget that displays a message indicating that communication with the
         * server is underway.
         */
@@ -126,11 +116,8 @@ public class TopPanel extends Composite {
         *
         * @param images the supplied images
         */
-       public TopPanel(Images images) {
-               fileMenu = new FileMenu(images);
+       public TopPanel(final Images images) {
                editMenu = new EditMenu(images);
-               settingsMenu = new SettingsMenu(images);
-               helpMenu = new HelpMenu(images);
                loading = new LoadingIndicator(images);
         loading.hide();
                HorizontalPanel outer = new HorizontalPanel();
@@ -152,17 +139,15 @@ public class TopPanel extends Composite {
                };
                MenuItem quitItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
                                        AbstractImagePrototype.create(images.exit()).getHTML() + "</td><td>Quit</td></tr></table>", true, quitCommand);
-               quitItem.getElement().setId("topMenu.quit");
-               
+
                MenuItem fileItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
                                        AbstractImagePrototype.create(images.folder()).getHTML() + "</td><td>File</td></tr></table>", true, new MenuBar(true)){
                        @Override
                        public MenuBar getSubMenu() {
-                               return fileMenu.createMenu();
+                               return new FileMenu(GSS.get(), images);
                        }
                };
-               fileItem.getElement().setId("topMenu.file");
-               
+
                MenuItem editItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
                                        AbstractImagePrototype.create(images.edit()).getHTML() + "</td><td>Edit</td></tr></table>", true, new MenuBar(true)){
                        @Override
@@ -170,27 +155,10 @@ public class TopPanel extends Composite {
                                return editMenu.createMenu();
                        }
                };
-               editItem.getElement().setId("topMenu.edit");
-               
-               MenuItem configureItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
-                                       AbstractImagePrototype.create(images.configure()).getHTML() + "</td><td>Settings</td></tr></table>",
-                                       true,settingsMenu.getContextMenu());
-               configureItem.getElement().setId("topMenu.settings");
-               
-               MenuItem helpItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
-                                       AbstractImagePrototype.create(images.help()).getHTML() + "</td><td>Help</td></tr></table>", true, new MenuBar(true)){
-                       @Override
-                       public MenuBar getSubMenu() {
-                               return helpMenu.createMenu();
-                       }
-               };
-               helpItem.getElement().setId("topMenu.help");
-               
+
                menu.addItem(quitItem);
                menu.addItem(fileItem);
                menu.addItem(editItem);
-               menu.addItem(configureItem);
-               menu.addItem(helpItem);
 
                outer.setSpacing(2);
                outer.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
@@ -219,22 +187,4 @@ public class TopPanel extends Composite {
        public LoadingIndicator getLoading() {
                return loading;
        }
-
-       /**
-        * Retrieve the fileMenu.
-        *
-        * @return the fileMenu
-        */
-       FileMenu getFileMenu() {
-               return fileMenu;
-       }
-
-       /**
-        * Retrieve the editMenu.
-        *
-        * @return the editMenu
-        */
-       EditMenu getEditMenu() {
-               return editMenu;
-       }
 }
index 0a8a7c3..b5c71cb 100644 (file)
@@ -80,7 +80,8 @@ public class NewFolderCommand implements Command{
 
        @Override
        public void execute() {
-               containerPanel.hide();
+        if (containerPanel != null)
+                   containerPanel.hide();
         displayNewFolderDialog();
        }