HasValue<User>
или HasValue<TableRow>
не будут работать в этом случае, потому что это позволит обрабатывать только одну строку.
Возможно, вы могли бы использовать HasValue<List<User>>
, но это означало бы, что ваше представление должно отображать всю таблицу при каждом изменении.
Я могу ошибаться, но я думаю, что для таблиц лучше использовать Supervising Presenter вместо Passive View .
Посмотрите на виджет PagingScrollTable в инкубаторе GWT :
public class PagingScrollTable<RowType> extends AbstractScrollTable implements
HasTableDefinition<RowType>, ... {
...
TableModel<RowType> getTableModel()
...
}
Для PagingScrollTable
, MutableTableModel<RowType>
используется как реализация TableModel<RowType>
.
MutableTableModel<RowType>
в свою очередь реализует следующие интерфейсы:
HasRowCountChangeHandlers
, HasRowInsertionHandlers
, HasRowRemovalHandlers
, HasRowValueChangeHandlers<RowType>
PagingScrollTable
регистрируется как слушатель на MutableTableModel
и, следовательно, получает очень подробные уведомления об обновлениях. Полученная реализация должна быть очень производительной.