package klik.client;
import klik.shared.event.AlertEvent;
import klik.shared.event.LoadingEvent;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.event.shared.HasHandlers;
import com.google.gwt.user.client.rpc.AsyncCallback;
public abstract class MyCallback<T> implements AsyncCallback<T> {
private final HasHandlers handlers;
public MyCallback(HasHandlers handlers) {
this.handlers = handlers;
handlers.fireEvent(new LoadingEvent(true));
}
@Override
public void onFailure(Throwable caught) {
handlers.fireEvent(new AlertEvent(AlertType.ERROR, "Failed! Message: " + caught.getMessage()));
}
@Override
public void onSuccess(T result) {
onSuccesss(result);
handlers.fireEvent(new LoadingEvent(false));
}
public abstract void onSuccesss(T result);
}