AbstractDataProviderversion : 2.4 abstract class Q:本身已經 implement ProvidesKey 了,為甚麼還要再有一個 ProvidesKey 的 field(keyProvider)? addDataDisplay()把傳入的 HasData 加到 displays 當中。透過 HasData.addRangeChangeHandler() 取得 HandlerRegistration,連同 HasData 一起放到 rangeChangeHandlers 當中。在 lastRowCount(預設值是 -1)不為負數的情況下會設定 HasData.setRowCount()。最後呼叫 onRangeChanged() 這個 abstract 的 method。 AsyncDataProvider
version : 2.4
abstract class
extends AbstractDataProvider,再次宣告了兩個直接呼叫對應 super() 的 constructor、將 updateRowCount(int, boolean) 與 updateRowData(int, List<T>) override 成 public,其餘行為與 AbstractDataProvider 相同。也就是說,建立這個 class 主要只是要把 AbstratDataProvider 的一些 protected method 給藏起來,行為上並沒有什麼改變。 ProvidesKeyversion : 2.4 interface 毫無反應,就是一個定義 getKey() 的 interface。 Rangeversion : 2.4 把兩個 int field:length 跟 start 包起來的 class,不過沒有提供 setter。 |