package com.vaadin.tests.components.datefield; import java.time.LocalDate; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.tests.components.TestDateField; import com.vaadin.ui.AbstractLocalDateField; import com.vaadin.ui.CheckBox; import com.vaadin.ui.DateField; import com.vaadin.ui.VerticalLayout; public class DateFieldWhenChangingValueAndEnablingParent extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { final VerticalLayout main = new VerticalLayout(); final VerticalLayout sub = new VerticalLayout(); final CheckBox chk = new CheckBox("Parent layout enabled"); main.setMargin(true); setContent(main); final AbstractLocalDateField df1 = createDateField(true); final AbstractLocalDateField df2 = createDateField(false); final DateField pdf1 = createPopupDateField(true, true); final DateField pdf2 = createPopupDateField(true, false); final DateField pdf3 = createPopupDateField(false, true); final DateField pdf4 = createPopupDateField(false, false); sub.addComponent(df1); sub.addComponent(df2); sub.addComponent(pdf1); sub.addComponent(pdf2); sub.addComponent(pdf3); sub.addComponent(pdf4); sub.setEnabled(false); main.addComponent(chk); main.addComponent(sub); chk.addValueChangeListener(event -> { df1.setValue(LocalDate.now()); df2.setValue(LocalDate.now()); pdf1.setValue(LocalDate.now()); pdf2.setValue(LocalDate.now()); pdf3.setValue(LocalDate.now()); pdf4.setValue(LocalDate.now()); sub.setEnabled(chk.getValue()); }); } private AbstractLocalDateField createDateField(boolean enabled) { AbstractLocalDateField df = new TestDateField( "DateField, " + (enabled ? "enabled" : "disabled")); df.setEnabled(enabled); df.setId("DATEFIELD_" + (enabled ? "ENABLED" : "DISABLED")); return df; } private DateField createPopupDateField(boolean enabled, boolean textInputEnabled) { DateField df = new DateField("PopupDateField, " + (enabled ? "enabled" : "disabled") + ", text input " + (textInputEnabled ? "enabled" : "disabled")); df.setEnabled(enabled); df.setTextFieldEnabled(textInputEnabled); df.setId("DATEFIELD_" + (enabled ? "ENABLED" : "DISABLED") + "_" + (textInputEnabled ? "ENABLED" : "DISABLED")); return df; } }