package com.vaadin.tests.components.datefield; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractTestUIWithLog; import com.vaadin.tests.components.TestDateField; import com.vaadin.ui.AbstractLocalDateField; public class DateFieldIsValid extends AbstractTestUIWithLog { @Override protected String getTestDescription() { return "A dateField with invalid text should return false in isValid both when " + "handling ValueChange event and after value is changed."; } @Override protected Integer getTicketNumber() { return 14487; } private String pattern = "dd/MM/yy"; private DateTimeFormatter format = DateTimeFormatter.ofPattern(pattern); @Override protected void setup(VaadinRequest request) { final AbstractLocalDateField dateField = new TestDateField( "Insert Date: "); dateField.setDateFormat(pattern); dateField.addValueChangeListener(event -> log("valueChange: value: " + format(dateField.getValue()) + ", is valid: " + (dateField.getErrorMessage() == null))); addComponent(dateField); addButton("check dateField", event -> log("buttonClick: value: " + format(dateField.getValue()) + ", is valid: " + (dateField.getErrorMessage() == null))); } /** * @since * @param value * @return */ protected String format(LocalDate value) { if (value != null) { return format.format(value); } else { return null; } } }