У меня есть виджет, который наследуется от CellTree
. Если узел не имеет дочерних элементов, этот узел может быть открыт и отображается метка "no data"
.GWT-2.4.0, CellTree: удаление метки «без данных» из пустых узлов
Я хотел бы видеть узлы без ребенка отображается как пустой.
Вот как я заполняю дерево. Мой DictionaryTreeDataProvider
класс (соответствующая часть):
public class DictionaryTreeDataProvider extends ListDataProvider<MValue> {
private final DictionariesServiceAsync service = GWT.create(DictionariesService.class);
...
@Override
public void onRangeChanged(HasData<MValue> result) {
service.queryDictionaryValues(range, query, new AsyncCallback<SubsetResult<MValue>>() {
@Override
public void onFailure(Throwable t) {
}
@Override
public void onSuccess(SubsetResult<MValue> result) {
getList().clear();
for (MValue value : result.items) {
getList().add(value);
}
}
});
}
}
На стороне сервера я делаю EJB вызов, который заполняет SubsetResult
. Я обнаружил, что эта проблема исправлена в версии GWT-2.5.0-rc2 (см. https://groups.google.com/forum/#!topic/google-web-toolkit/d-rFUmyHTT4).
Кажется, что нужно сделать обходной путь ..
Теперь все в порядке, спасибо @moutellou. Я сделал, как он предложил:
...
@Override
public void onSuccess(SubsetResult<MValue> result) {
if (result.length == 0) {
updateRowCount(-1, true);
return;
} else {
for (MValue value : result.items) {
// some checks here
getList().add(value);
}
}
}
...
Как вы извлекаете данные. Вы используете AsyncDataProvider? – outellou
Спасибо за ваш комментарий. Да, я использую его, я обновил свой вопрос, спасибо. –