From: Matti Tahvonen Date: Fri, 17 Aug 2007 07:48:56 +0000 (+0000) Subject: added upload component X-Git-Tag: 6.7.0.beta1~6092 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=54aa588ea3e931e25de741b5e0ebfb3dad1e9713;p=vaadin-framework.git added upload component svn changeset:2042/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java b/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java index 23be945b2c..10263d9dcb 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/DefaultWidgetFactory.java @@ -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 index 0000000000..b1c17adf66 --- /dev/null +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IUpload.java @@ -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(); + } + + +}