123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package com.vaadin.tests.components.datefield;
-
- import java.text.DateFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Locale;
- import java.util.TimeZone;
-
- import com.vaadin.shared.ui.datefield.Resolution;
- import com.vaadin.tests.components.TestBase;
- import com.vaadin.tests.components.TestDateField;
- import com.vaadin.tests.util.Log;
- import com.vaadin.ui.AbstractDateField;
- import com.vaadin.v7.data.Property;
- import com.vaadin.v7.data.Property.ValueChangeEvent;
- import com.vaadin.v7.shared.ui.combobox.FilteringMode;
- import com.vaadin.v7.ui.ComboBox;
-
- public class DateFieldTimezone extends TestBase {
-
- private static final TimeZone UTC = TimeZone.getTimeZone("UTC");
- private static final Locale EN = Locale.ENGLISH;
- private final Log log = new Log(5);
- private final AbstractDateField dateField = new TestDateField();
- private static final String nullValue = "";
-
- @Override
- protected void setup() {
- dateField.setResolution(Resolution.SECOND);
-
- ArrayList<String> timeZoneCodes = new ArrayList<>();
- timeZoneCodes.add(nullValue);
- timeZoneCodes.addAll(Arrays.asList(TimeZone.getAvailableIDs()));
- ComboBox timezoneSelector = new ComboBox("Select time zone",
- timeZoneCodes) {
- @Override
- public String getItemCaption(Object itemId) {
- if (itemId == nullValue || itemId == null) {
- TimeZone timeZone = TimeZone.getDefault();
- return "Default time zone (" + timeZone.getDisplayName()
- + ")";
- } else {
- TimeZone timeZone = TimeZone.getTimeZone((String) itemId);
- return itemId + " (" + timeZone.getDisplayName() + ")";
- }
- }
- };
- timezoneSelector.setValue("UTC");
- timezoneSelector.setImmediate(true);
- timezoneSelector.setNullSelectionAllowed(true);
- timezoneSelector.setNullSelectionItemId(nullValue);
- timezoneSelector.setFilteringMode(FilteringMode.CONTAINS);
- timezoneSelector.addListener(new Property.ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- Object value = event.getProperty().getValue();
- TimeZone timeZone;
- if (value == nullValue || value == null) {
- timeZone = null;
- log.log("Change to default time zone "
- + TimeZone.getDefault().getID());
- } else {
- timeZone = TimeZone.getTimeZone((String) value);
- log.log("Changed to time zone " + timeZone.getID());
- }
- dateField.setTimeZone(timeZone);
- }
- });
-
- Calendar cal = Calendar.getInstance(UTC);
- cal.set(2010, 0, 1, 0, 0, 0);
- cal.set(Calendar.MILLISECOND, 0);
-
- dateField.setValue(cal.getTime());
- dateField.setImmediate(true);
- dateField.setTimeZone(cal.getTimeZone());
- dateField.setLocale(EN);
- dateField.addValueChangeListener(event -> {
- Date date = dateField.getValue();
- DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT,
- DateFormat.LONG, EN);
- format.setTimeZone(UTC);
- log.log("Date changed to " + format.format(date));
- });
-
- addComponent(timezoneSelector);
- addComponent(log);
- addComponent(dateField);
- }
-
- @Override
- protected String getDescription() {
- return "Tests the operation of the date field with different time zones";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return Integer.valueOf(6066);
- }
-
- }
|