Fixed various warnings
[pithos-web-client] / src / gr / grnet / pithos / web / client / FileUploadDialog.java
index 2143f26..b80c71b 100644 (file)
@@ -42,7 +42,10 @@ import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Cookies;
 import com.google.gwt.user.client.Event.NativePreviewEvent;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.DialogBox;
 import com.google.gwt.user.client.ui.FileUpload;
@@ -52,7 +55,6 @@ import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
 import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
 import com.google.gwt.user.client.ui.FormPanel.SubmitHandler;
 import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
 import com.google.gwt.user.client.ui.Hidden;
 import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -69,7 +71,7 @@ public class FileUploadDialog extends DialogBox {
        /**
         * The Form element that performs the file upload.
         */
-       private final FormPanel form = new FormPanel();
+    protected final FormPanel form = new FormPanel();
 
        private final FileUpload upload = new FileUpload();
 
@@ -87,9 +89,20 @@ public class FileUploadDialog extends DialogBox {
         * The widget's constructor.
         */
        public FileUploadDialog() {
+               Anchor close = new Anchor();
+               close.addStyleName("close");
+               close.addClickHandler(new ClickHandler() {
+                       
+                       @Override
+                       public void onClick(ClickEvent event) {
+                               hide();
+                       }
+               });
                // Set the dialog's caption.
                setText("File upload");
                setAnimationEnabled(true);
+               setGlassEnabled(true);
+               setStyleName("pithos-DialogBox");
                // Since we're going to add a FileUpload widget, we'll need to set the
                // form to use the POST method, and multipart MIME encoding.
                form.setEncoding(FormPanel.ENCODING_MULTIPART);
@@ -97,15 +110,14 @@ public class FileUploadDialog extends DialogBox {
 
                // Create a panel to hold all of the form widgets.
                VerticalPanel panel = new VerticalPanel();
+               panel.add(close);
                form.setWidget(panel);
-               final HTML info = new HTML("You may select a file to upload. Install" +
-                               " <a href='http://gears.google.com/' target='_blank'>Google " +
-                               "Gears</a><br> for uploading multiple files simultaneously.");
-               info.addStyleName("pithos-uploadNote");
-               panel.add(info);
-
-        final Hidden auth = new Hidden("X-Auth-Token", "");
-        panel.add(auth);
+
+               VerticalPanel inner = new VerticalPanel();
+               inner.addStyleName("inner");
+
+        final Hidden auth = new Hidden("X-Auth-Token");
+        inner.add(auth);
                upload.setName("X-Object-Data");
                filenameLabel.setText("");
                filenameLabel.setVisible(false);
@@ -124,10 +136,7 @@ public class FileUploadDialog extends DialogBox {
                generalTable.getCellFormatter().setStyleName(1, 1, "props-values");
                generalTable.setCellSpacing(4);
 
-               panel.add(generalTable);
-
-               // Create a panel to hold the buttons.
-               HorizontalPanel buttons = new HorizontalPanel();
+               inner.add(generalTable);
 
                // Create the 'upload' button, along with a listener that submits the
                // form.
@@ -137,22 +146,8 @@ public class FileUploadDialog extends DialogBox {
                                prepareAndSubmit();
                        }
                });
-               buttons.add(submit);
-               buttons.setCellHorizontalAlignment(submit, HasHorizontalAlignment.ALIGN_CENTER);
-               // Create the 'Cancel' button, along with a listener that hides the
-               // dialog when the button is clicked.
-               final Button cancel = new Button("Cancel", new ClickHandler() {
-                       @Override
-                       public void onClick(ClickEvent event) {
-                               hide();
-                       }
-               });
-               buttons.add(cancel);
-               buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER);
-               buttons.setSpacing(8);
-               buttons.addStyleName("pithos-DialogBox");
-        panel.add(buttons);
-        panel.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER);
+               submit.addStyleName("button");
+               inner.add(submit);
 
                // Add an event handler to the form.
                form.addSubmitHandler(new SubmitHandler() {
@@ -160,6 +155,7 @@ public class FileUploadDialog extends DialogBox {
                        @Override
                        public void onSubmit(SubmitEvent event) {
                 auth.setValue(app.getToken()); //This is done here because the app object is not available in the constructor
+                Cookies.setCookie("X-Auth-Token", app.getToken(), null, "", "/", false);
                        }
                });
                form.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@@ -178,14 +174,23 @@ public class FileUploadDialog extends DialogBox {
                                        GWT.log(results, null);
                                        app.displayError(results);
                                }
-                app.updateFolder(folder, true);
+                               if (app.getSelectedTree().equals(app.getFolderTreeView()))
+                                       app.updateFolder(folder, true, new Command() {
+                                               
+                                               @Override
+                                               public void execute() {
+                                                       app.updateStatistics();
+                                               }
+                                       });
+                               else
+                                       app.updateOtherSharedFolder(folder, true);
                                hide();
                        }
                });
 
-
-               panel.addStyleName("pithos-DialogBox");
-               addStyleName("pithos-DialogBox");
+               panel.add(inner);
+               panel.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER);
+               
                setWidget(form);
        }
 
@@ -216,7 +221,7 @@ public class FileUploadDialog extends DialogBox {
             return;
         }
         final String fname = getFilename(upload.getFilename());
-        String apath = app.getApiPath() + app.getUsername() + folder.getUri() + "/" + fname;
+        String apath = app.getApiPath() + folder.getOwner() + folder.getUri() + "/" + fname + "?X-Auth-Token=" + app.getToken();
         form.setAction(apath);
         submit.setEnabled(false);
         upload.setVisible(false);
@@ -267,7 +272,7 @@ public class FileUploadDialog extends DialogBox {
 
        protected File getFileForName(String name){
                for (File f : folder.getFiles())
-                       if (!f.isInTrash() && f.getName().equals(name))
+                       if (f.getName().equals(name))
                                return f;
                return null;
        }