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.

MyPickerWidget.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.vaadin.tests.minitutorials.v7a2;
  2. import com.google.gwt.dom.client.Document;
  3. import com.google.gwt.dom.client.Style.Unit;
  4. import com.google.gwt.event.dom.client.ClickEvent;
  5. import com.google.gwt.event.dom.client.ClickHandler;
  6. import com.google.gwt.user.client.Window;
  7. import com.google.gwt.user.client.ui.ComplexPanel;
  8. import com.google.gwt.user.client.ui.PushButton;
  9. import com.google.gwt.user.client.ui.TextBox;
  10. public class MyPickerWidget extends ComplexPanel {
  11. public static final String CLASSNAME = "mypicker";
  12. private final TextBox textBox = new TextBox();
  13. private final PushButton button = new PushButton("...");
  14. public MyPickerWidget() {
  15. setElement(Document.get().createDivElement());
  16. setStylePrimaryName(CLASSNAME);
  17. textBox.setStylePrimaryName(CLASSNAME + "-field");
  18. button.setStylePrimaryName(CLASSNAME + "-button");
  19. add(textBox, getElement());
  20. add(button, getElement());
  21. button.addClickHandler(new ClickHandler() {
  22. @Override
  23. public void onClick(ClickEvent event) {
  24. Window.alert("Calendar picker not yet supported!");
  25. }
  26. });
  27. }
  28. public void setButtonText(String buttonText, boolean adjustSpace) {
  29. if (buttonText == null || buttonText.isEmpty()) {
  30. buttonText = "...";
  31. }
  32. button.setText(buttonText);
  33. if (adjustSpace) {
  34. adjustButtonSpace(button.getOffsetWidth());
  35. }
  36. }
  37. public void adjustButtonSpace(int width) {
  38. getElement().getStyle().setPaddingRight(width, Unit.PX);
  39. button.getElement().getStyle().setMarginRight(-width, Unit.PX);
  40. }
  41. }