2011-09-30 30 views
6

Czy istnieje sposób przechwytywania żądań RequestFactory po stronie klienta?Przechwytywanie zapytań GWT RequestFactory

Chcę przechwycić rozmowy tak:

dummyRequest.dummyOperation().fire(new Receiver<String>() { 
    @Override 
    public void onSuccess(String response) {   
    } 
}); 

Chodzi o to, aby pokazać pewne wskazania ładowania podczas komunikowania się z serwerem.

Odpowiedz

6

Można zastąpić domyślna implementacja transportu i przekazać ją podczas inicjalizacji RF:

SampleRequestFactory factory = GWT.create(SampleRequestFactory.class); 
factory.initialize(new SimpleEventBus(), new DefaultRequestTransport()); 

można dziedziczyć DefaultRequestTransport i zastąpić metodę

send(String payload, TransportReceiver receiver) 

Czy jakieś przetwarzanie przed wywołaniem super realizację i zawiń TransportReceiver z delegatem, aby obsłużyć wynik.

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

} 
Powiązane problemy