在MVP模式中,窗口小部件(视图)以如下形式公开其窗口小部件:
@Override
public HasClickHandlers getAddIssueClickHandlers() {
return addIssueButton;
}
并且喜欢:
@Override
public HasText getTaskName() {
return taskName; // taskName is a Label
}
允许演示者修改视图或从窗口小部件获取值。但是,它不确定如何获取表格小部件,如FlexTable或CellTable,以便演示者修改表格。任何想法都非常感谢。感谢。
答案 0 :(得分:3)
并非所有GWT小部件都设计有这些接口(即 HasclickHandlers , HasText , IsWidget 等)。
在最近的GWT版本中,基本小部件被更改,以便它们实现这些接口,以便在单元测试中使用它们的视图可测试。所以我不确定FlexTable是否实现了这些接口,但是在CellTable的情况下,您可以使用 HasData 接口。
在这里,您可以找到CellTable实现的接口:Javadoc
我个人会通过 HasData 界面公开CellTable,该界面可用于设置和检索selectionModel(用于选择CellTable中的行)。
为了修改或更新CellTable中显示的数据,我将使用ListDataProvider并将其存储在Presenter中。
@Override
public HasData getCellTableDisplay() {
return cellTable;
}
并在演示者的构造函数中 您可以创建 ListDataProvider 并使用 addDataDisplay 函数添加CellTable:
final ListDataProvider<String> dataProvider = new ListDataProvider<String>();
dataProvider.addDataDisplay(getView().getCellTableDisplay);