From ebb5656108c9e384b3432a9a02e21825f9b0ccea Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Mon, 20 Nov 2017 12:49:32 +0100 Subject: [PATCH] bug4210 Adjusted handler registration logic of fallback date and time input widget --- .../gwt/common/client/datetime/DateAndTimeInput.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/datetime/DateAndTimeInput.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/datetime/DateAndTimeInput.java index 65a72916034..d74e5528800 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/datetime/DateAndTimeInput.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/datetime/DateAndTimeInput.java @@ -1,6 +1,8 @@ package com.sap.sailing.gwt.common.client.datetime; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; @@ -50,7 +52,12 @@ public class DateAndTimeInput extends Composite implements DateTimeInput { @Override public HandlerRegistration addValueChangeHandler(ValueChangeHandler handler) { - return addHandler(handler, ValueChangeEvent.getType()); + final ValueChangeHandler internalHandler = event -> ValueChangeEvent.fire(this, getValue()); + final List handlerRegistrations = new ArrayList<>(3); + handlerRegistrations.add(dateInput.addValueChangeHandler(internalHandler)); + handlerRegistrations.add(timeInput.addValueChangeHandler(internalHandler)); + handlerRegistrations.add(addHandler(handler, ValueChangeEvent.getType())); + return () -> handlerRegistrations.forEach(HandlerRegistration::removeHandler); } @Override