/*
* GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
*/
package hudson.gwtmarketplace.client.commands;
import hudson.gwtmarketplace.client.service.ProductService;
import hudson.gwtmarketplace.client.service.ProductServiceAsync;
import com.google.gwt.core.client.GWT;
import com.google.gwt.gwtpages.client.message.Messages;
import com.google.gwt.user.client.rpc.AsyncCallback;
public abstract class AbstractAsyncCommand<T> implements AsyncCommand<T> {
public AbstractAsyncCommand () {
preExecute();
}
@Override
public void preExecute() {
}
@Override
public void onFailure(Throwable e) {
if (null == e.getMessage())
Messages.get().error("An error occured while processing your request");
else
Messages.get().error("An error occured while processing your request: " + e.getMessage());
}
private static ProductServiceAsync productService;
protected static ProductServiceAsync productService() {
if (null == productService) {
productService = GWT.create(ProductService.class);
}
return productService;
}
public class AsyncCommandCallback implements AsyncCallback<T> {
public void onSuccess(T result) {
AbstractAsyncCommand.this.onSuccess(result);
};
@Override
public void onFailure(Throwable caught) {
AbstractAsyncCommand.this.onFailure(caught);
}
}
}