You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VUploadPaintable.java 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import com.google.gwt.core.client.GWT;
  6. import com.google.gwt.user.client.ui.Widget;
  7. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  8. import com.vaadin.terminal.gwt.client.UIDL;
  9. public class VUploadPaintable extends VAbstractPaintableWidget {
  10. @Override
  11. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  12. super.updateFromUIDL(uidl, client);
  13. if (!isRealUpdate(uidl)) {
  14. return;
  15. }
  16. if (uidl.hasAttribute("notStarted")) {
  17. getWidgetForPaintable().t.schedule(400);
  18. return;
  19. }
  20. if (uidl.hasAttribute("forceSubmit")) {
  21. getWidgetForPaintable().submit();
  22. return;
  23. }
  24. getWidgetForPaintable().setImmediate(
  25. uidl.getBooleanAttribute("immediate"));
  26. getWidgetForPaintable().client = client;
  27. getWidgetForPaintable().paintableId = uidl.getId();
  28. getWidgetForPaintable().nextUploadId = uidl.getIntAttribute("nextid");
  29. final String action = client.translateVaadinUri(uidl
  30. .getStringVariable("action"));
  31. getWidgetForPaintable().element.setAction(action);
  32. if (uidl.hasAttribute("buttoncaption")) {
  33. getWidgetForPaintable().submitButton.setText(uidl
  34. .getStringAttribute("buttoncaption"));
  35. getWidgetForPaintable().submitButton.setVisible(true);
  36. } else {
  37. getWidgetForPaintable().submitButton.setVisible(false);
  38. }
  39. getWidgetForPaintable().fu.setName(getWidgetForPaintable().paintableId
  40. + "_file");
  41. if (uidl.hasAttribute("disabled") || uidl.hasAttribute("readonly")) {
  42. getWidgetForPaintable().disableUpload();
  43. } else if (!uidl.getBooleanAttribute("state")) {
  44. // Enable the button only if an upload is not in progress
  45. getWidgetForPaintable().enableUpload();
  46. getWidgetForPaintable().ensureTargetFrame();
  47. }
  48. }
  49. @Override
  50. protected Widget createWidget() {
  51. return GWT.create(VUpload.class);
  52. }
  53. @Override
  54. public VUpload getWidgetForPaintable() {
  55. return (VUpload) super.getWidgetForPaintable();
  56. }
  57. }