gwt.user.cellview.client

AbstractHasData

version : 2.4
abstract class

setVisibleRange(int, int) 會包一個 Range,然後呼叫 presenter.setVisibleRange()

Column

version : 2.4
abstract class

Column 當中還是有包含 Cell(本身 implement HasCell)。
透過 generic 需要指定 row 的 class、以及該 column 顯示的 class

HasDataPresenter

version :  2.4
package class(API 不會出現)

display :HasData

有兩種 state,預設是 DefaultState,只有在 resolvePendingState() 才(有可能?)改變成 PendingState

ensurePendingState()

Q:為甚麼要回傳一個已經是 field 的 pendingState,反正是 private method,外面也叫用不到這個 method 啊? [抓頭]

定義一個 ScheduledCommand,內容為呼叫 resolvePendingState(),然後呼叫 SchedulerImpl.scheduleFinally() 來執行該個 command。這會在 gwt code 執行完、將控制權交還給 browser 之前執行到。

setRowCount()

Q:為甚麼要呼叫兩次 ensurePendingState()?呼叫一次之後取 field 就好了啊? 在 updateCacheData() 當中又有可能再度呼叫好幾次 ensurePendingState() 啊啊啊啊啊...... Orz
Q:setRowCount() 最後的 fireEvent() 到底是誰負責處理... HasData 或是 HasRow 都找不到,如果以 CellTable 當作是 display,也依然找不到......

如果傳入參數與現有值相同,不會有動作。

執行兩次 ensurePendingState()、然後設定 pendingState.rowCount、pendingState.rowCountIsExact 為傳入參數。呼叫 updateCachedData()、最後產生一個 RowCountChangeEvent() 並且要 display 這個 field 觸發該 event。

TextColumn

version : 2.4
abstract class

extend Column,只多掛了一個 constructor,指定包含的 CellTextCell
Comments