在GWT中使用MVP时,您将如何使用表格?例如,如果您有一个用户表,则您的 View 看起来像这样吗?

public interface MyDisplay{

HasValue<User> users();

}

还是会更像这样?
public interface MyDisplay{

HasValue<TableRow> rows();

}

在开始处理需要显示非原始数据列表的小部件之前,MVP颇具意义。有人可以阐明吗?

这个邮件列表文件似乎提出了相同的问题,但从未达到可靠的解决方案...

http://www.mail-archive.com/[email protected]/msg24546.html

最佳答案

在这种情况下,HasValue<User>HasValue<TableRow>将不起作用,因为这仅允许处理单行。
您可能使用HasValue<List<User>>,但这意味着您的 View 必须在每次更改时呈现整个表。

我可能是错的,但我认为对于表,最好使用Supervising Presenter而不是Passive View
看看PagingScrollTable中的GWT Incubator小部件:

public class PagingScrollTable<RowType> extends AbstractScrollTable implements
    HasTableDefinition<RowType>, ... {
  ...
  TableModel<RowType> getTableModel()
  ...
}

对于PagingScrollTable MutableTableModel<RowType> 用作 TableModel<RowType> 的实现。
MutableTableModel<RowType>依次实现以下接口(interface):

HasRowCountChangeHandlers HasRowInsertionHandlers HasRowRemovalHandlers HasRowValueChangeHandlers<RowType>
PagingScrollTable registers itself as listener on the MutableTableModel 并因此获得非常细粒度的更新通知。最终的实现应该非常高效。

10-08 13:41