gwt requestfactory

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); }