download file on double click
authorkoutsoub <devnull@localhost>
Mon, 16 Mar 2009 11:23:43 +0000 (11:23 +0000)
committerkoutsoub <devnull@localhost>
Mon, 16 Mar 2009 11:23:43 +0000 (11:23 +0000)
gss/src/gr/ebs/gss/client/FileContextMenu.java
gss/src/gr/ebs/gss/client/FileList.java
gss/src/gr/ebs/gss/client/SearchResults.java

index c9c2898..fe81c5a 100644 (file)
@@ -27,6 +27,7 @@ import gr.ebs.gss.client.commands.ToTrashCommand;
 import gr.ebs.gss.client.commands.UpdateFileCommand;
 import gr.ebs.gss.client.commands.UploadFileCommand;
 import gr.ebs.gss.client.rest.resource.FileResource;
 import gr.ebs.gss.client.commands.UpdateFileCommand;
 import gr.ebs.gss.client.commands.UploadFileCommand;
 import gr.ebs.gss.client.rest.resource.FileResource;
+import gr.ebs.gss.client.rest.resource.FolderResource;
 
 import java.util.List;
 
 
 import java.util.List;
 
@@ -90,8 +91,8 @@ public class FileContextMenu extends PopupPanel implements ClickListener {
        }
 
        public static native String getDate()/*-{
        }
 
        public static native String getDate()/*-{
-               return (new Date()).toUTCString();
-       }-*/;
+                       return (new Date()).toUTCString();
+               }-*/;
 
        /**
         * The widget's constructor.
 
        /**
         * The widget's constructor.
@@ -114,25 +115,32 @@ public class FileContextMenu extends PopupPanel implements ClickListener {
                        }
                };
 
                        }
                };
 
+               // The command that does some validation before downloading a file.
+               final Command downloadCmd = new Command() {
 
 
-        // The command that does some validation before downloading a file.
-        final Command downloadCmd = new Command() {
-
-                public void execute() {
-                        hide();
-                        GSS.get().getTopPanel().getFileMenu().preDownloadCheck();
-                }
-        };
-
+                       public void execute() {
+                               hide();
+                               GSS.get().getTopPanel().getFileMenu().preDownloadCheck();
+                       }
+               };
 
                final MenuBar contextMenu = new MenuBar(true);
 
                final MenuBar contextMenu = new MenuBar(true);
-               if(isEmpty)
-                       if(GSS.get().getFolders().isFileItem(GSS.get().getFolders().getCurrent()))
-                               contextMenu.addItem("<span>" + newImages.fileNew().getHTML() + "&nbsp;New File</span>", true, new UploadFileCommand(this));
-               else if (isTrash) {
+               if (isEmpty) {
+                       if (GSS.get().getFolders().getCurrent() != null)
+                               if (GSS.get().getFolders().isFileItem(GSS.get().getFolders().getCurrent()))
+                                       contextMenu.addItem("<span>" + newImages.fileNew().getHTML() + "&nbsp;New File</span>", true, new UploadFileCommand(this));
+                               else if (GSS.get().getFolders().isMySharedItem(GSS.get().getFolders().getCurrent()) || GSS      .get()
+                                                                                                                                                                                                                       .getFolders()
+                                                                                                                                                                                                                       .isOthersSharedItem(GSS .get()
+                                                                                                                                                                                                                                                                       .getFolders()
+                                                                                                                                                                                                                                                                       .getCurrent()))
+                                       if(GSS.get().getFolders().getCurrent().getUserObject() instanceof FolderResource)
+                                               contextMenu.addItem("<span>" + newImages.fileNew().getHTML() + "&nbsp;New File</span>", true, new UploadFileCommand(this));
+               } else if (isTrash) {
                        contextMenu.addItem("<span>" + newImages.versions().getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
                        contextMenu.addItem("<span>" + newImages.delete().getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, images));
                } else {
                        contextMenu.addItem("<span>" + newImages.versions().getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
                        contextMenu.addItem("<span>" + newImages.delete().getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, images));
                } else {
+
                        cutItem = new MenuItem("<span>" + newImages.cut().getHTML() + "&nbsp;Cut</span>", true, new CutCommand(this));
                        copyItem = new MenuItem("<span>" + newImages.copy().getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(this));
                        updateItem = new MenuItem("<span>" + newImages.fileUpdate().getHTML() + "&nbsp;Update</span>", true, new UpdateFileCommand(this));
                        cutItem = new MenuItem("<span>" + newImages.cut().getHTML() + "&nbsp;Cut</span>", true, new CutCommand(this));
                        copyItem = new MenuItem("<span>" + newImages.copy().getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(this));
                        updateItem = new MenuItem("<span>" + newImages.fileUpdate().getHTML() + "&nbsp;Update</span>", true, new UpdateFileCommand(this));
@@ -149,9 +157,9 @@ public class FileContextMenu extends PopupPanel implements ClickListener {
                        contextMenu.addItem(trashItem);
                        contextMenu.addItem(deleteItem);
                        String[] link = {"", ""};
                        contextMenu.addItem(trashItem);
                        contextMenu.addItem(deleteItem);
                        String[] link = {"", ""};
-            GSS.get().getTopPanel().getFileMenu().createDownloadLink(link);
-            downloadItem = new MenuItem("<span>" + link[0] + newImages.download().getHTML() + " Download File" + link[1] + "</span>", true, downloadCmd);
-            contextMenu.addItem(downloadItem);
+                       GSS.get().getTopPanel().getFileMenu().createDownloadLink(link);
+                       downloadItem = new MenuItem("<span>" + link[0] + newImages.download().getHTML() + " Download File" + link[1] + "</span>", true, downloadCmd);
+                       contextMenu.addItem(downloadItem);
 
                }
 
 
                }
 
@@ -200,7 +208,7 @@ public class FileContextMenu extends PopupPanel implements ClickListener {
                        }
        }
 
                        }
        }
 
-       public void onEmptyEvent(Event event){
+       public void onEmptyEvent(Event event) {
                FileContextMenu menu;
                if (GSS.get().getFolders().isTrashItem(GSS.get().getFolders().getCurrent()))
                        menu = new FileContextMenu(images, true, true);
                FileContextMenu menu;
                if (GSS.get().getFolders().isTrashItem(GSS.get().getFolders().getCurrent()))
                        menu = new FileContextMenu(images, true, true);
index 3226659..a3108bd 100644 (file)
@@ -20,6 +20,7 @@ package gr.ebs.gss.client;
 \r
 import gr.ebs.gss.client.dnd.DnDFocusPanel;\r
 import gr.ebs.gss.client.dnd.DnDTreeItem;\r
 \r
 import gr.ebs.gss.client.dnd.DnDFocusPanel;\r
 import gr.ebs.gss.client.dnd.DnDTreeItem;\r
+import gr.ebs.gss.client.rest.AbstractRestCommand;\r
 import gr.ebs.gss.client.rest.ExecuteGet;\r
 import gr.ebs.gss.client.rest.RestException;\r
 import gr.ebs.gss.client.rest.resource.FileResource;\r
 import gr.ebs.gss.client.rest.ExecuteGet;\r
 import gr.ebs.gss.client.rest.RestException;\r
 import gr.ebs.gss.client.rest.resource.FileResource;\r
@@ -33,11 +34,13 @@ import java.util.Comparator;
 import java.util.List;\r
 \r
 import com.google.gwt.core.client.GWT;\r
 import java.util.List;\r
 \r
 import com.google.gwt.core.client.GWT;\r
+import com.google.gwt.http.client.URL;\r
 import com.google.gwt.i18n.client.DateTimeFormat;\r
 import com.google.gwt.user.client.DOM;\r
 import com.google.gwt.user.client.DeferredCommand;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.IncrementalCommand;\r
 import com.google.gwt.i18n.client.DateTimeFormat;\r
 import com.google.gwt.user.client.DOM;\r
 import com.google.gwt.user.client.DeferredCommand;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.IncrementalCommand;\r
+import com.google.gwt.user.client.Window;\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.Composite;\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.Composite;\r
@@ -192,6 +195,7 @@ public class FileList extends Composite implements TableListener, ClickListener
                sinkEvents(Event.ONMOUSEUP);\r
                sinkEvents(Event.ONCLICK);\r
                sinkEvents(Event.ONKEYDOWN);\r
                sinkEvents(Event.ONMOUSEUP);\r
                sinkEvents(Event.ONCLICK);\r
                sinkEvents(Event.ONKEYDOWN);\r
+               sinkEvents(Event.ONDBLCLICK);\r
                preventIESelection();\r
        }\r
 \r
                preventIESelection();\r
        }\r
 \r
@@ -226,7 +230,15 @@ public class FileList extends Composite implements TableListener, ClickListener
                        FileContextMenu fm = new FileContextMenu(images, false, true);\r
                        fm.onEmptyEvent(event);\r
                }\r
                        FileContextMenu fm = new FileContextMenu(images, false, true);\r
                        fm.onEmptyEvent(event);\r
                }\r
-               if (DOM.eventGetType(event) == Event.ONCLICK) {\r
+               else if (DOM.eventGetType(event) == Event.ONDBLCLICK)\r
+                       if(getSelectedFiles().size() == 1){\r
+                               FileResource file = getSelectedFiles().get(0);\r
+                               String dateString = AbstractRestCommand.getDate();\r
+                               String resource = file.getPath().substring(GSS.GSS_REST_PATH.length()-1,file.getPath().length());\r
+                               String sig = GSS.get().getCurrentUserResource().getUsername()+" "+AbstractRestCommand.calculateSig("GET", dateString, resource, AbstractRestCommand.base64decode(GSS.get().getToken()));\r
+                               Window.open(file.getPath() + "?Authorization=" + URL.encodeComponent(sig) + "&Date="+URL.encodeComponent(dateString), "_blank", "");\r
+                       }\r
+               else if (DOM.eventGetType(event) == Event.ONCLICK) {\r
                        if (DOM.eventGetCtrlKey(event))\r
                                clickControl = true;\r
                        else\r
                        if (DOM.eventGetCtrlKey(event))\r
                                clickControl = true;\r
                        else\r
index 87aaff2..f995b39 100644 (file)
@@ -19,6 +19,7 @@
 package gr.ebs.gss.client;\r
 \r
 import gr.ebs.gss.client.dnd.DnDFocusPanel;\r
 package gr.ebs.gss.client;\r
 \r
 import gr.ebs.gss.client.dnd.DnDFocusPanel;\r
+import gr.ebs.gss.client.rest.AbstractRestCommand;\r
 import gr.ebs.gss.client.rest.ExecuteGet;\r
 import gr.ebs.gss.client.rest.ExecuteMultipleHead;\r
 import gr.ebs.gss.client.rest.resource.FileResource;\r
 import gr.ebs.gss.client.rest.ExecuteGet;\r
 import gr.ebs.gss.client.rest.ExecuteMultipleHead;\r
 import gr.ebs.gss.client.rest.resource.FileResource;\r
@@ -37,6 +38,7 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.DeferredCommand;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.IncrementalCommand;\r
 import com.google.gwt.user.client.DeferredCommand;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.IncrementalCommand;\r
+import com.google.gwt.user.client.Window;\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.Composite;\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.Composite;\r
@@ -162,7 +164,15 @@ public class SearchResults extends Composite implements TableListener, ClickList
                                        FileContextMenu fm = new FileContextMenu(images, false, false);\r
                                        fm.onClick(contextMenu);\r
                                }\r
                                        FileContextMenu fm = new FileContextMenu(images, false, false);\r
                                        fm.onClick(contextMenu);\r
                                }\r
-                               if (DOM.eventGetType(event) == Event.ONCLICK) {\r
+                               else if (DOM.eventGetType(event) == Event.ONDBLCLICK)\r
+                                       if(getSelectedFiles().size() == 1){\r
+                                               FileResource file = getSelectedFiles().get(0);\r
+                                               String dateString = AbstractRestCommand.getDate();\r
+                                               String resource = file.getPath().substring(GSS.GSS_REST_PATH.length()-1,file.getPath().length());\r
+                                               String sig = GSS.get().getCurrentUserResource().getUsername()+" "+AbstractRestCommand.calculateSig("GET", dateString, resource, AbstractRestCommand.base64decode(GSS.get().getToken()));\r
+                                               Window.open(file.getPath() + "?Authorization=" + URL.encodeComponent(sig) + "&Date="+URL.encodeComponent(dateString), "_blank", "");\r
+                                       }\r
+                               else if (DOM.eventGetType(event) == Event.ONCLICK) {\r
                                        if (DOM.eventGetCtrlKey(event))\r
                                                clickControl = true;\r
                                        else\r
                                        if (DOM.eventGetCtrlKey(event))\r
                                                clickControl = true;\r
                                        else\r
@@ -224,6 +234,7 @@ public class SearchResults extends Composite implements TableListener, ClickList
                table.sinkEvents(Event.ONMOUSEUP);\r
                table.sinkEvents(Event.ONCLICK);\r
                table.sinkEvents(Event.ONKEYDOWN);\r
                table.sinkEvents(Event.ONMOUSEUP);\r
                table.sinkEvents(Event.ONCLICK);\r
                table.sinkEvents(Event.ONKEYDOWN);\r
+               table.sinkEvents(Event.ONDBLCLICK);\r
                preventIESelection();\r
        }\r
 \r
                preventIESelection();\r
        }\r
 \r