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.

VForm.java 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import com.google.gwt.dom.client.Style.Display;
  6. import com.google.gwt.event.dom.client.KeyDownEvent;
  7. import com.google.gwt.event.dom.client.KeyDownHandler;
  8. import com.google.gwt.event.shared.HandlerRegistration;
  9. import com.google.gwt.user.client.DOM;
  10. import com.google.gwt.user.client.Element;
  11. import com.google.gwt.user.client.Event;
  12. import com.google.gwt.user.client.ui.ComplexPanel;
  13. import com.google.gwt.user.client.ui.Widget;
  14. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  15. import com.vaadin.terminal.gwt.client.VErrorMessage;
  16. public class VForm extends ComplexPanel implements KeyDownHandler {
  17. protected String id;
  18. public static final String CLASSNAME = "v-form";
  19. Widget lo;
  20. Element legend = DOM.createLegend();
  21. Element caption = DOM.createSpan();
  22. private Element errorIndicatorElement = DOM.createDiv();
  23. Element desc = DOM.createDiv();
  24. Icon icon;
  25. VErrorMessage errorMessage = new VErrorMessage();
  26. Element fieldContainer = DOM.createDiv();
  27. Element footerContainer = DOM.createDiv();
  28. Element fieldSet = DOM.createFieldSet();
  29. Widget footer;
  30. ApplicationConnection client;
  31. ShortcutActionHandler shortcutHandler;
  32. HandlerRegistration keyDownRegistration;
  33. public VForm() {
  34. setElement(DOM.createDiv());
  35. getElement().appendChild(fieldSet);
  36. setStyleName(CLASSNAME);
  37. fieldSet.appendChild(legend);
  38. legend.appendChild(caption);
  39. errorIndicatorElement.setClassName("v-errorindicator");
  40. errorIndicatorElement.getStyle().setDisplay(Display.NONE);
  41. errorIndicatorElement.setInnerText(" "); // needed for IE
  42. desc.setClassName("v-form-description");
  43. fieldSet.appendChild(desc); // Adding description for initial padding
  44. // measurements, removed later if no
  45. // description is set
  46. fieldContainer.setClassName(CLASSNAME + "-content");
  47. fieldSet.appendChild(fieldContainer);
  48. errorMessage.setVisible(false);
  49. errorMessage.setStyleName(CLASSNAME + "-errormessage");
  50. fieldSet.appendChild(errorMessage.getElement());
  51. fieldSet.appendChild(footerContainer);
  52. }
  53. public void onKeyDown(KeyDownEvent event) {
  54. shortcutHandler.handleKeyboardEvent(Event.as(event.getNativeEvent()));
  55. }
  56. @Override
  57. protected void add(Widget child, Element container) {
  58. // Overridden to allow VFormPaintable to call this. Should be removed
  59. // once functionality from VFormPaintable is moved to VForm.
  60. super.add(child, container);
  61. }
  62. }