Asynchrouns CellTree, отображающий значок загрузки GWT - PullRequest
0 голосов
/ 15 марта 2012

как я могу отобразить значок загрузки, когда данные еще не доступны для выхода из дерева ячеек. Чтобы получить данные для каждого отпуска, используется AsyncDataProvider, который отправляет сетевой запрос. Пока он не возвращается, должно отображаться сообщение о загрузке. Есть ли способ сделать это?

С уважением, Stefan

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Решил это. В дереве ячеек есть функция для отображения состояния загрузки, когда RowCount не соответствует доступному DataCount . Итак, если данных еще нет, вы просто отправили RowCount(1, true);, который сообщает дереву, что в нем ровно один элемент, которого здесь еще нет.

Это заставляет дерево отображать знак загрузки:

enter image description here

0 голосов
/ 15 марта 2012

Ниже приведено довольно общее решение, но я считаю его очень полезным.Он отображает указатель «занят» мыши, когда происходит вызов RPC.Вы можете адаптировать его к вашим потребностям.Я определяю класс следующим образом:

class CallWrapper<T> implements AsyncCallback<T> {
AsyncCallback<T> callback;

public CallWrapper(AsyncCallback<T> cb) {
    callback = cb;
    DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "wait");
}

public void onFailure(Throwable caught) {       
    DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "default");
    callback.onFailure(caught);
}

public void onSuccess(T result) {       
    DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "default");
    callback.onSuccess(result);
}
}

Затем можно обернуть каждый отдельный AsyncCallback следующим образом:

public void callService(AsyncCallback<String> callback) {
myRPC.doStuff(new CallWrapper<String>(callback));
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...