How to intercept GWT Request Factory on client before call is being made and after response is received?
One can extend DefaultRequestTransport and intercept send call, at the same time writing a wrapper over TrasnportReceiver one can intercept response's. Following is the example.
1: public class LoaderRequestTransport extends DefaultRequestTransport {
2: private Loader loader;
3: public LoaderRequestTransport(Loader loader) {
4: this.loader = loader;
5: }
6: public LoaderRequestTransport() {
7: this(new Loader(LoaderResources.INSTANCE.communicating()));
8: }
9: @Override
10: public void send(final String payload, final TransportReceiver receiver) {
11: final TransportReceiver proxy = new TransportReceiver() {
12: @Override
13: public void onTransportFailure(final ServerFailure failure) {
14: loader.hide();
15: receiver.onTransportFailure(failure);
16: }
17: @Override
18: public void onTransportSuccess(final String payload) {
19: loader.hide();
20: receiver.onTransportSuccess(payload);
21: }
22: };
23: loader.show();
24: super.send(payload, proxy);
25: }
26: }
Use this LoaderRequestTransport
1: MVPRequestFactory requestFactory = GWT.create(MVPRequestFactory.class);
2: requestFactory.initialize(eventBus, new LoaderRequestTransport());