New javascript method Trim added in DisplayHelper that trim not only whitespaces...
[pithos] / src / gr / ebs / gss / client / FileMenu.java
index 63fc1f1..f552c40 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright 2007, 2008, 2009 Electronic Business Systems Ltd.\r
+ * Copyright 2007, 2008, 2009, 2010 Electronic Business Systems Ltd.\r
  *\r
  * This file is part of GSS.\r
  *\r
@@ -25,22 +25,25 @@ import gr.ebs.gss.client.commands.RefreshCommand;
 import gr.ebs.gss.client.commands.UploadFileCommand;\r
 import gr.ebs.gss.client.rest.RestCommand;\r
 import gr.ebs.gss.client.rest.resource.FileResource;\r
-import gr.ebs.gss.client.rest.resource.FolderResource;\r
 import gr.ebs.gss.client.rest.resource.GroupUserResource;\r
 \r
+import java.util.List;\r
+\r
+import com.google.gwt.event.dom.client.ClickEvent;\r
+import com.google.gwt.event.dom.client.ClickHandler;\r
 import com.google.gwt.http.client.URL;\r
+import com.google.gwt.resources.client.ClientBundle;\r
+import com.google.gwt.resources.client.ImageResource;\r
 import com.google.gwt.user.client.Command;\r
 import com.google.gwt.user.client.ui.AbstractImagePrototype;\r
-import com.google.gwt.user.client.ui.ClickListener;\r
 import com.google.gwt.user.client.ui.MenuBar;\r
 import com.google.gwt.user.client.ui.PopupPanel;\r
 import com.google.gwt.user.client.ui.TreeItem;\r
-import com.google.gwt.user.client.ui.Widget;\r
 \r
 /**\r
  * The 'File' menu implementation.\r
  */\r
-public class FileMenu extends PopupPanel implements ClickListener {\r
+public class FileMenu extends PopupPanel implements ClickHandler {\r
 \r
        /**\r
         * The widget's images.\r
@@ -50,28 +53,28 @@ public class FileMenu extends PopupPanel implements ClickListener {
        /**\r
         * An image bundle for this widgets images.\r
         */\r
-       public interface Images extends FilePropertiesDialog.Images {\r
+       public interface Images extends ClientBundle,FilePropertiesDialog.Images {\r
 \r
-               @Resource("gr/ebs/gss/resources/folder_new.png")\r
-               AbstractImagePrototype folderNew();\r
+               @Source("gr/ebs/gss/resources/folder_new.png")\r
+               ImageResource folderNew();\r
 \r
-               @Resource("gr/ebs/gss/resources/folder_outbox.png")\r
-               AbstractImagePrototype fileUpdate();\r
+               @Source("gr/ebs/gss/resources/folder_outbox.png")\r
+               ImageResource fileUpdate();\r
 \r
-               @Resource("gr/ebs/gss/resources/view_text.png")\r
-               AbstractImagePrototype viewText();\r
+               @Source("gr/ebs/gss/resources/view_text.png")\r
+               ImageResource viewText();\r
 \r
-               @Resource("gr/ebs/gss/resources/folder_inbox.png")\r
-               AbstractImagePrototype download();\r
+               @Source("gr/ebs/gss/resources/folder_inbox.png")\r
+               ImageResource download();\r
 \r
-               @Resource("gr/ebs/gss/resources/trashcan_empty.png")\r
-               AbstractImagePrototype emptyTrash();\r
+               @Source("gr/ebs/gss/resources/trashcan_empty.png")\r
+               ImageResource emptyTrash();\r
 \r
-               @Resource("gr/ebs/gss/resources/internet.png")\r
-               AbstractImagePrototype sharing();\r
+               @Source("gr/ebs/gss/resources/internet.png")\r
+               ImageResource sharing();\r
 \r
-               @Resource("gr/ebs/gss/resources/refresh.png")\r
-               AbstractImagePrototype refresh();\r
+               @Source("gr/ebs/gss/resources/refresh.png")\r
+               ImageResource refresh();\r
 }\r
 \r
        final MenuBar contextMenu = new MenuBar(true);\r
@@ -91,15 +94,17 @@ public class FileMenu extends PopupPanel implements ClickListener {
 \r
        }\r
 \r
-       public void onClick(final Widget sender) {\r
+       @Override\r
+       public void onClick(ClickEvent event) {\r
                final FileMenu menu = new FileMenu(images);\r
-               final int left = sender.getAbsoluteLeft();\r
-               final int top = sender.getAbsoluteTop() + sender.getOffsetHeight();\r
+               final int left = event.getRelativeElement().getAbsoluteLeft();\r
+               final int top = event.getRelativeElement().getAbsoluteTop() + event.getRelativeElement().getOffsetHeight();\r
                menu.setPopupPosition(left, top);\r
-\r
                menu.show();\r
+\r
        }\r
 \r
+\r
        /**\r
         * Do some validation before downloading a file.\r
         */\r
@@ -164,24 +169,29 @@ public class FileMenu extends PopupPanel implements ClickListener {
                Folders folders = GSS.get().getFolders();\r
                TreeItem selectedItem = folders.getCurrent();\r
                boolean downloadVisible = GSS.get().getCurrentSelection() != null && GSS.get().getCurrentSelection() instanceof FileResource;\r
-               boolean uploadVisible = GSS.get().getFolders().getCurrent().getUserObject() instanceof FolderResource;\r
-               boolean propertiesNotVisible = selectedItem != null && (folders.isTrash(selectedItem) || folders.isMyShares(selectedItem) || folders.isOthersShared(selectedItem) || selectedItem.getUserObject() instanceof GroupUserResource);\r
-               contextMenu.addItem("<span>" + images.folderNew().getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(this, images));\r
-               contextMenu.addItem("<span>" + images.fileUpdate().getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this));\r
+               boolean propertiesVisible = !(selectedItem != null && (folders.isTrash(selectedItem) || folders.isMyShares(selectedItem) || folders.isOthersShared(selectedItem) || selectedItem.getUserObject() instanceof GroupUserResource || GSS.get().getCurrentSelection() instanceof List));\r
+               boolean newFolderVisible = !(selectedItem != null && (folders.isTrash(selectedItem) || folders.isMyShares(selectedItem)|| folders.isOthersShared(selectedItem)));\r
+               boolean uploadVisible = !(selectedItem != null && (folders.isTrash(selectedItem) || folders.isMyShares(selectedItem)|| folders.isOthersShared(selectedItem)));\r
+               if(newFolderVisible)\r
+                       contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.folderNew()).getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(this, images));\r
+               if(uploadVisible)\r
+                       contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this));\r
                if (downloadVisible) {\r
                        String[] link = {"", ""};\r
                        createDownloadLink(link, false);\r
-                       contextMenu.addItem("<span>" + link[0] + images.download().getHTML() + "&nbsp;Download" + link[1] + "</span>", true, downloadCmd);\r
+                       contextMenu.addItem("<span>" + link[0] + AbstractImagePrototype.create(images.download()).getHTML() + "&nbsp;Download" + link[1] + "</span>", true, downloadCmd);\r
                        createDownloadLink(link, true);\r
-                       contextMenu.addItem("<span>" + link[0] + images.download().getHTML() + "&nbsp;Save As" + link[1] + "</span>", true, downloadCmd);\r
+                       contextMenu.addItem("<span>" + link[0] + AbstractImagePrototype.create(images.download()).getHTML() + "&nbsp;Save As" + link[1] + "</span>", true, downloadCmd);\r
                }\r
-               contextMenu.addItem("<span>" + images.emptyTrash().getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(this));\r
-               contextMenu.addItem("<span>" + images.refresh().getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));\r
-               contextMenu.addItem("<span>" + images.sharing().getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1))\r
-                                       .setVisible(!propertiesNotVisible);\r
-               contextMenu.addItem("<span>" + images.viewText().getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0))\r
-                                       .setVisible(!propertiesNotVisible);\r
+               contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(this));\r
+               contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));\r
+               contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1))\r
+                                       .setVisible(propertiesVisible);\r
+               contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0))\r
+                                       .setVisible(propertiesVisible);\r
                return contextMenu;\r
        }\r
 \r
+\r
+\r
 }\r