2011-07-02 20 views
3

暴露于呈现在MVP图案在MVP图案的微件(视图)公开其窗口小部件在形式是这样的:如何表插件用GWT

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

和类似:

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

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

回答

3

并非所有GWT部件被设计与这些接口(即HasclickHandlersHasTextIsWidget等)记在心里。
在最近的GWT版本中,基本的窗口小部件被改变了,以便它们实现这些接口,以便使单元测试中使用它们的视图成为可测试的。所以我不确定FlexTable是否实现了这些接口,但在CellTable的情况下,您可以使用接口。

在这里您可以找到由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); 
+0

HasData是未知的类。我正在使用GWT 2.1.1。 – xybrek

+0

根据Javadoc HasData接口应该是2.1的一部分: http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/view/client/HasData.html –

+0

是的它的有点奇怪,我也检查过文档。我会尝试一些修复。 – xybrek