package com.vaadin.tests.components.datefield; import java.time.LocalDate; import java.util.Locale; import java.util.stream.Stream; import com.vaadin.shared.ui.datefield.Resolution; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.AbstractDateField; import com.vaadin.ui.Button; import com.vaadin.ui.DateField; import com.vaadin.ui.GridLayout; import com.vaadin.ui.InlineDateField; @SuppressWarnings("serial") public class DateFieldExtendedRange extends TestBase { @Override protected void setup() { GridLayout layout = new GridLayout(2, 3); layout.setWidth("600px"); layout.setSpacing(true); final AbstractDateField[] fields = new AbstractDateField[6]; Locale fi = new Locale("fi", "FI"); Locale us = new Locale("en", "US"); fields[0] = makeDateField(true, fi, "Finnish locale"); fields[1] = makeDateField(false, fi, "Finnish locale"); fields[2] = makeDateField(true, us, "US English locale"); fields[3] = makeDateField(false, us, "US English locale"); fields[4] = makeDateField(true, fi, "Finnish locale with week numbers"); fields[4].setShowISOWeekNumbers(true); fields[5] = makeDateField(false, fi, "Finnish locale with week numbers"); fields[5].setShowISOWeekNumbers(true); for (AbstractDateField f : fields) { layout.addComponent(f); } addComponent(layout); addComponent(new Button("Change date", event -> Stream.of(fields) .forEach(field -> field.setValue(LocalDate.of(2010, 2, 16))))); } @Override protected String getDescription() { return "Show a few days of the preceding and following months in the datefield popup"; } @Override protected Integer getTicketNumber() { return 6718; } private AbstractDateField makeDateField(boolean isPopup, Locale locale, String caption) { AbstractDateField df = isPopup ? new DateField() : new InlineDateField(); df.setResolution(Resolution.DAY); df.setValue(LocalDate.of(2011, 1, 1)); df.setLocale(locale); df.setCaption(caption); return df; } }