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.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 AbstractComponentConnector {
  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. getWidget().t.schedule(400);
  18. return;
  19. }
  20. if (uidl.hasAttribute("forceSubmit")) {
  21. getWidget().submit();
  22. return;
  23. }
  24. getWidget().setImmediate(getState().isImmediate());
  25. getWidget().client = client;
  26. getWidget().paintableId = uidl.getId();
  27. getWidget().nextUploadId = uidl.getIntAttribute("nextid");
  28. final String action = client.translateVaadinUri(uidl
  29. .getStringVariable("action"));
  30. getWidget().element.setAction(action);
  31. if (uidl.hasAttribute("buttoncaption")) {
  32. getWidget().submitButton.setText(uidl
  33. .getStringAttribute("buttoncaption"));
  34. getWidget().submitButton.setVisible(true);
  35. } else {
  36. getWidget().submitButton.setVisible(false);
  37. }
  38. getWidget().fu.setName(getWidget().paintableId
  39. + "_file");
  40. if (getState().isDisabled() || getState().isReadOnly()) {
  41. getWidget().disableUpload();
  42. } else if (!uidl.getBooleanAttribute("state")) {
  43. // Enable the button only if an upload is not in progress
  44. getWidget().enableUpload();
  45. getWidget().ensureTargetFrame();
  46. }
  47. }
  48. @Override
  49. protected Widget createWidget() {
  50. return GWT.create(VUpload.class);
  51. }
  52. @Override
  53. public VUpload getWidget() {
  54. return (VUpload) super.getWidget();
  55. }
  56. }