から継承するウィジェットがありますCellTree
。ノードに子要素がない場合、このノードを開いて"no data"
ラベルを表示できます。
子のないノードが空として表示されることを望みます。
それが私が木を埋める方法です。私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 のおかげで、すべてが OK になりました。私は彼が提案したようにしました:
...
@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);
}
}
}
...