Reputation: 79
Is there a way to intercept RequestFactory requests on client side?
I want to intercept calls like this:
dummyRequest.dummyOperation().fire( new Receiver<String>() {
@Override
public void onSuccess(String response) {
}
});
The idea is to show some loading indication when communicating with server.
Upvotes: 6
Views: 1820
Reputation: 1961
final DefaultRequestTransport requestTransport = new DefaultRequestTransport() {
@Override
public void send(final String payload, final TransportReceiver receiver) {
GWT.log("making rpc");
final TransportReceiver proxy = new TransportReceiver() {
@Override
public void onTransportFailure(final ServerFailure failure) {
GWT.log("rpc returned");
receiver.onTransportFailure(failure);
}
@Override
public void onTransportSuccess(final String payload) {
GWT.log("rpc returned");
receiver.onTransportSuccess(payload);
}
};
super.send(payload, proxy);
}
Upvotes: 3
Reputation: 620
You can override the default transport implementation and pass it during RF initialization:
SampleRequestFactory factory = GWT.create( SampleRequestFactory.class );
factory.initialize( new SimpleEventBus(), new DefaultRequestTransport() );
You can inherit from DefaultRequestTransport and override the method
send(String payload, TransportReceiver receiver)
Do some processing before calling the super-implementation and wrap the TransportReceiver with a delegate to handle the result.
Upvotes: 6