package com.griddynamics.jagger.webclient.client.data; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.user.datepicker.client.DateBox; /** * Due to issue http://code.google.com/p/google-web-toolkit/issues/detail?id=4084 * DateBox doesn't fire value change event when box is set blank. * EmptyDateBoxValueChangePropagator fixed this behavior. * * @author "Artem Kirillov" (akirillov@griddynamics.com) * @since 6/9/12 */ public class EmptyDateBoxValueChangePropagator implements ValueChangeHandler<String> { private DateBox dateBox; public EmptyDateBoxValueChangePropagator() { } public EmptyDateBoxValueChangePropagator(DateBox dateBox) { this.dateBox = dateBox; } public void setDateBox(DateBox dateBox) { this.dateBox = dateBox; } @Override public void onValueChange(ValueChangeEvent<String> event) { if (dateBox != null && ("".equals(event.getValue()) || event.getValue() == null)) { ValueChangeEvent.fire(dateBox, null); } } }