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.

DateTimeFieldZoneId.java 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.vaadin.tests.components.datefield;
  2. import java.time.LocalDateTime;
  3. import java.time.Month;
  4. import java.time.ZoneId;
  5. import java.util.Locale;
  6. import java.util.Set;
  7. import java.util.TreeSet;
  8. import java.util.stream.Stream;
  9. import com.vaadin.server.VaadinRequest;
  10. import com.vaadin.tests.components.AbstractTestUI;
  11. import com.vaadin.ui.ComboBox;
  12. import com.vaadin.ui.DateTimeField;
  13. import com.vaadin.ui.TextField;
  14. public class DateTimeFieldZoneId extends AbstractTestUI {
  15. static final String ZONE_ID = "zoneId";
  16. static final String LOCALE_ID = "localeId";
  17. static final String PATTERN_ID = "patternId";
  18. static final LocalDateTime INITIAL_DATE_TIME = LocalDateTime.of(2017,
  19. Month.JANUARY, 1, 0, 0);
  20. private static final String FORMAT_PATTERN = "dd MMM yyyy - hh:mm:ss a z";
  21. @Override
  22. protected String getTestDescription() {
  23. return "DateTimeField to correctly show time zone name";
  24. }
  25. @Override
  26. protected Integer getTicketNumber() {
  27. return 8844;
  28. }
  29. @Override
  30. protected void setup(VaadinRequest request) {
  31. final ComboBox<String> zoneIdComboBox = new ComboBox<>();
  32. zoneIdComboBox.setId(ZONE_ID);
  33. Set<String> zoneIdSet = new TreeSet<>(ZoneId.getAvailableZoneIds());
  34. zoneIdComboBox.setItems(zoneIdSet);
  35. addComponent(zoneIdComboBox);
  36. final ComboBox<Locale> localeIdComboBox = new ComboBox<>();
  37. localeIdComboBox.setId(LOCALE_ID);
  38. Stream<Locale> localeStream = Stream.of(Locale.getAvailableLocales())
  39. .sorted((l1, l2) -> l1.toString().compareTo(l2.toString()));
  40. localeIdComboBox.setItems(localeStream);
  41. addComponent(localeIdComboBox);
  42. final TextField patternTextField = new TextField();
  43. patternTextField.setId(PATTERN_ID);
  44. patternTextField.setValue(FORMAT_PATTERN);
  45. addComponent(patternTextField);
  46. final DateTimeField dateTimeField = new DateTimeField();
  47. dateTimeField.setValue(INITIAL_DATE_TIME);
  48. dateTimeField.setDateFormat(FORMAT_PATTERN);
  49. addComponent(dateTimeField);
  50. zoneIdComboBox.addValueChangeListener(event -> {
  51. String value = event.getValue();
  52. if (value == null) {
  53. dateTimeField.setZoneId(null);
  54. } else {
  55. dateTimeField.setZoneId(ZoneId.of(value));
  56. }
  57. });
  58. localeIdComboBox.addValueChangeListener(
  59. event -> dateTimeField.setLocale(event.getValue()));
  60. patternTextField.addValueChangeListener(
  61. event -> dateTimeField.setDateFormat(event.getValue()));
  62. }
  63. }