]> source.dussan.org Git - vaadin-framework.git/commitdiff
added upload component
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 17 Aug 2007 07:48:56 +0000 (07:48 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 17 Aug 2007 07:48:56 +0000 (07:48 +0000)
svn changeset:2042/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IUpload.java [new file with mode: 0644]

index 23be945b2c1da719792d562bc0636ab010001dc1..10263d9dcbbe426ba4645607d676e4c40e88c793 100644 (file)
@@ -29,6 +29,7 @@ import com.itmill.toolkit.terminal.gwt.client.ui.ITextualDate;
 import com.itmill.toolkit.terminal.gwt.client.ui.ITree;
 import com.itmill.toolkit.terminal.gwt.client.ui.ITwinColSelect;
 import com.itmill.toolkit.terminal.gwt.client.ui.IUnknownComponent;
+import com.itmill.toolkit.terminal.gwt.client.ui.IUpload;
 import com.itmill.toolkit.terminal.gwt.client.ui.IView;
 import com.itmill.toolkit.terminal.gwt.client.ui.IWindow;
 
@@ -95,6 +96,8 @@ public class DefaultWidgetFactory implements WidgetFactory {
                        return new ISlider();
                } else if ("com.itmill.toolkit.terminal.gwt.client.ui.IForm".equals(className)) {
                        return new IForm();
+               } else if ("com.itmill.toolkit.terminal.gwt.client.ui.IUpload".equals(className)) {
+                       return new IUpload();
                }
                return new IUnknownComponent();
 
@@ -176,6 +179,8 @@ public class DefaultWidgetFactory implements WidgetFactory {
                        return "com.itmill.toolkit.terminal.gwt.client.ui.ISlider";
                } else if ("form".equals(tag)) {
                        return "com.itmill.toolkit.terminal.gwt.client.ui.IForm";
+               } else if ("upload".equals(tag)) {
+                       return "com.itmill.toolkit.terminal.gwt.client.ui.IUpload";
                }
 
                return "com.itmill.toolkit.terminal.gwt.client.ui.IUnknownComponent";
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IUpload.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IUpload.java
new file mode 100644 (file)
index 0000000..b1c17ad
--- /dev/null
@@ -0,0 +1,71 @@
+package com.itmill.toolkit.terminal.gwt.client.ui;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.FileUpload;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.FormHandler;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
+import com.google.gwt.user.client.ui.FormSubmitEvent;
+import com.google.gwt.user.client.ui.Frame;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.Widget;
+import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.Paintable;
+import com.itmill.toolkit.terminal.gwt.client.UIDL;
+
+public class IUpload extends FormPanel implements Paintable, ClickListener {
+       
+       FileUpload fu = new FileUpload();
+       
+       Panel panel = new FlowPanel();
+       
+       ApplicationConnection client;
+
+       private String paintableId;
+
+       private Button b;
+       
+       public IUpload() {
+               super();
+               setEncoding(FormPanel.ENCODING_MULTIPART);
+           setMethod(FormPanel.METHOD_POST);
+               setWidget(panel);
+               panel.add(new Label("UPLOAD component incomplete"));
+               panel.add(fu);
+               b = new Button("Upload");
+               b.addClickListener(this);
+               panel.add(b);
+               
+           addFormHandler(new FormHandler() {
+             public void onSubmitComplete(FormSubmitCompleteEvent event) {
+                 if(client != null) {
+                         // request update
+                         client.sendPendingVariableChanges();
+                 }
+             }
+
+             public void onSubmit(FormSubmitEvent event) {
+               if (fu.getFilename().length() == 0) {
+                 event.setCancelled(true);
+               }
+             }
+           });
+       }
+
+       public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
+               this.client = client;
+               this.paintableId = uidl.getId();
+               if(uidl.hasAttribute("caption"))
+                       b.setText(uidl.getStringAttribute("caption"));
+
+       }
+
+       public void onClick(Widget sender) {
+               this.submit();
+       }
+
+       
+}