2011-07-02 19 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