package eu.dnetlib.espas.gui.client;

import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;

/**
 * Created by stefania on 10/24/14.
 */
public class TimeBox extends com.github.gwtbootstrap.timepicker.client.ui.TimeBox {

    private ValueChangeHandler handler = null;

    public TimeBox() {
        super();
        sinkEvents(Event.ONPASTE | Event.ONKEYUP | Event.ONCHANGE);
    }

    @Override
    public void onBrowserEvent(final Event event) {

        super.onBrowserEvent(event);

        switch (event.getTypeInt()) {
            case Event.ONPASTE:
            case Event.ONCHANGE:
            case Event.ONKEYUP:

                Timer t = new Timer() {

                    @Override
                    public void run() {
                        if (handler != null) {
                            handler.handle(event);
                        }
                    }
                };
                t.schedule(0);

                break;
            default:
        }
    }

    public void setValueChangeHandler(ValueChangeHandler handler) {
        this.handler = handler;
    }

    public interface ValueChangeHandler {

        public void handle(Event event);
    }
}
