Interceptar solicitudes GWT RequestFactory
(2)
¿Hay alguna forma de interceptar las solicitudes de RequestFactory en el lado del cliente?
Quiero interceptar llamadas como esta:
dummyRequest.dummyOperation().fire( new Receiver<String>() {
@Override
public void onSuccess(String response) {
}
});
La idea es mostrar alguna indicación de carga al comunicarse con el servidor.
Puede anular la implementación de transporte predeterminada y pasarla durante la inicialización de RF:
SampleRequestFactory factory = GWT.create( SampleRequestFactory.class );
factory.initialize( new SimpleEventBus(), new DefaultRequestTransport() );
Puede heredar de DefaultRequestTransport y anular el método
send(String payload, TransportReceiver receiver)
Realice algún procesamiento antes de llamar a la súper implementación y ajuste TransportReceiver con un delegado para manejar el resultado.
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);
}