如何使用gwt将表小部件公开给MVP模式中的演示者

时间:2011-07-02 17:20:11

标签: gwt mvp

在MVP模式中,窗口小部件(视图)以如下形式公开其窗口小部件:

@Override    
public HasClickHandlers getAddIssueClickHandlers() {
            return addIssueButton;
        }

并且喜欢:

@Override
public HasText getTaskName() {
    return taskName; // taskName is a Label
}

允许演示者修改视图或从窗口小部件获取值。但是,它不确定如何获取表格小部件,如FlexTable或CellTable,以便演示者修改表格。任何想法都非常感谢。感谢。

1 个答案:

答案 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);