2014-02-05 71 views
0

我從AbstractPager擴展尋呼機,其中在範圍內或行每次計數改變了我重新包含在這麼尋呼機看起來像這樣NavLinks:
1 2 3 ...我的算法工作正常,但當我開始快速點擊鏈接(如真的很激烈)時,一個RangeChange事件正在執行(我的尋呼機所在的CellTable附加顯示旋轉試圖獲取給定頁面上的數據)已經有其他人來到EventBus。它導致在無限循環中來回改變當前頁面。
我試圖使分頁鏈接僅在使用Scheduler.get()。scheduleDeferred和.scheduleFinally但沒有運氣競爭地獲取當前頁時啓用。
我的臨時解決方案是使用Scheduler.get()。scheduleFixedDelay()在500毫秒後啓用分頁鏈接,但我想知道如何獲取當前頁面上被完全提取的數據的確切時刻。
謝謝。尋呼機開始點擊快速頁面鏈接時改變頁面來回

回答

0

如果您有需要掛在你的CellTable LoadingChangeEvent.Handler,檢查數據是否完全加載並通知尋呼機關於它的同樣的問題,所以尋呼機可以激活它的NavLinks:

pager.setDisplay(cellTable); 
cellTable.addLoadingStateChangeHandler(new LoadingStateChangeEvent.Handler() { 
    @Override 
    public void onLoadingStateChanged(LoadingStateChangeEvent event) { 
     if (event.getLoadingState() == LoadingStateChangeEvent.LoadingState.LOADED) { 
      pager.activateNavLinks(); 
     }; 
    } 
}); 

有沒有辦法因爲setDisplay()接受HasRows並且addLoadingStateChangeHandler()在AbstractHasData中(AbstractHasData實現了HasData,HasData實現了HasRows),所以在你的分頁器內部執行它。

相關問題