I check file upload progress with RequestBuilder calls:
public class UploadTimer extends Timer {
private final RequestCallback uploaderCallback = new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
String text = response.getText();
...// update progress visual
}
@Override
public void onError(Request request, Throwable exception) {
;
}
};
RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,
GWT.getModuleBaseURL() + "uploadInput?check=1");
@Override
public void run() {
try {
requestBuilder.sendRequest(null, uploaderCallback);
}
catch (RequestException ex) {
GWT.log(ex.getMessage());
}
}
}
I've a class member, private UploadTimer uploadTimer;
In my form's onSubmit(),
uploadTimer = new UploadTimer();
uploadTimer.scheduleRepeating(500);
...// create progress visual
In my form's onSubmitComplete(),
if (uploadTimer != null) {
uploadTimer.cancel();
uploadTimer = null;
...// hide progress visual
}