Simple scenario using Vaadin 8.6.0 archetype project:
- Button and DateTimeField (resolution SECOND)
Button has clickListener
DateTimeField has valueChangeListener
- Open calendar popup
- Change one of time dropdowns (hour / minute / second)
- Click on button (do not click anywhere else, do not blur date field!)
Events received:
- Button pressed
- DateTimeField value changed
Above wrong order causes a lot of complications.
When we use TextField (with Value change on BLUR) instead DateTimeField events received:
- TextField value change
- Button pressed
Code to reproduce:
final VerticalLayout layout = new VerticalLayout();
DateTimeField dateField = new DateTimeField();
dateField.setResolution(DateTimeResolution.SECOND);
dateField.addValueChangeListener(event -> {
System.out.println("Date field value: " + event.getValue());
});
Button button = new Button("test");
button.addClickListener(ev -> {
System.out.println("Clicked!");
});
layout.addComponents(button, dateField);
setContent(layout);