2017-02-19 48 views
0

Как показать виджет загрузки, когда клиент отправит json на сервер.Загрузка Resty-GWT

Из примера в GWTP exmaple я нашел такой метод

/** 
* We display a short lock message whenever navigation is in progress. 
* 
* @param event The {@link LockInteractionEvent}. 
*/ 
@ProxyEvent 
public void onLockInteraction(LockInteractionEvent event) { 
getView().setLoading(event.shouldLock()); 
} 

Как показать в загрузочном Resty-GWT, когда он послал запрос? Могу ли я использовать onLockInteraction с resty-gwt?

+1

Не уверен в GWTP, но, возможно, это http://stackoverflow.com/a/38392507/5612847 будет полезно. –

ответ

1

Вы можете использовать RestyGWT custom Dispatcher для отслеживания жизненного цикла запроса. Диспетчер можно настроить вручную или с помощью аннотаций (https://resty-gwt.github.io/documentation/restygwt-user-guide.html). установив его Пример вручную:

RootRestService rest = GWT.create(RootRestService.class); 
((RestServiceProxy) rest).setDispatcher(new DefaultDispatcher() { 
    @Override public Request send(Method m, RequestBuilder rb) throws RequestException { 
     RequestCallback callback = rb.getCallback(); 
     rb.setCallback(new RequestCallback() { 
      @Override public void onResponseReceived(Request req, Response res) { 
       log.info("request success (stop event)"); 
       callback.onResponseReceived(req, res); 
      } 
      @Override public void onError(Request req, Throwable ex) { 
       log.info("request error (stop event)"); 
       callback.onError(req, ex); 
      } 
     }); 
     try { 
      log.info("request initialized (start event)"); 
      return request = super.send(m, rb); 
     } finally { 
      log.info("request fail to initialize error (stop event)"); 
     } 
    } 
}); 

Вместо регистрации, вы можете отправить событие с помощью eventBus, и использовать это событие, чтобы следить за количеством активного запроса, и, наконец, показать индикатор загрузки, если число активных запрос больше, чем 0.

+0

Как я могу вызвать событие ??? Здесь нет ведущего – LeshaRB

+0

Это зависит от вашей архитектуры, но вы всегда можете использовать статическую переменную для обмена eventBus. Используя Gin вы можете создать поставщика RootRestService и добавить eventBus в качестве аргумента. –