私は、次のものを入力しているCellListを持っていますAsyncDataProvider
:
@UiField(provided = true)
CellList<PlayerDataEntity> friendCellList;
@Inject
FriendListViewImpl(FriendListController controller) {
friendCellList = new CellList<PlayerDataEntity>(new PlayerCell());
initWidget(uiBinder.createAndBindUi(this));
// if we don't set the row data to empty before trying to get the real data,
// the empty list widget will never appear. But if we do set this,
// then the real data won't show up.
friendCellList.setRowData(Lists.<PlayerDataEntity>newArrayList());
new AsyncDataProvider<PlayerDataEntity>() {
@Override
protected void onRangeChanged(final HasData<PlayerDataEntity> display) {
rpcService.getPlayers(new AsyncCallback<List<PlayerDataEntity>>() {
@Override
public void onSuccess(List<PlayerDataEntity> result) {
display.setRowData(0, result);
}
});
}
}.addDataDisplay(friendCellList);
friendCellList.setEmptyListWidget(new Label("No friends found"));
}
最初に行データを空のリストに設定しないと、RPC サービスが空のリストを返しても、空のリスト ウィジェットは表示されません。ただし、最初に行データを空のリストに設定し、RPC が空でないリストを返すと、そのデータはウィジェットに表示されません。
CellList
の API のいくつかの側面を誤解しているに違いありません。私は何を間違っていますか?