2013-03-19 73 views
1

我需要實現「分頁」我的應用程序的FlexTable部件:尋呼FlexTable與GWT

這是我在那裏呈現一個產品成3列單元格初始代碼:

public void renderProducts(Map<Long, Product> mp) { 
    int i = 0; 
    int j = 0; 

    Iterator it = mp.entrySet().iterator(); 
    while (it.hasNext()) { 
     Map.Entry pairs = (Map.Entry)it.next(); 

     Product product = (Product) pairs.getValue(); 
     ProductWidget pw = productInstance.get(); 
     pw.setTitle(product.getName()); 
     pw.setImageUrl(product.getImageUrl()); 
     pw.setContent(product.getInfo()); 
     pw.setUrl(product.getUrl()); // "More" button anchor 
     List<String> feats = product.getFeatures(); 
     for (String f : feats){ 
      pw.addFeature(f); 
     } 

     flextable.setWidget(i, j, pw); 
     j++; 
     if (j == 3){ 
      i++; 
      j = 0; 
     } 
     it.remove(); // avoids a ConcurrentModificationException 
    } 
} 

極品爲此在N個頁面中進行分頁。我最初的想法是將地圖拆分爲地圖列表...

我的意思是,FlexTable中是否有任何「數據源」?

+0

你有一個模型,需要分頁,那麼爲什麼不CellTable/DataGrid的?只是問問。 – 2013-03-19 12:36:22

+0

我需要將一個小部件插入到可伸縮的「單元」中,請參閱:flextable.setWidget(...) 您有任何建議嗎? – xybrek 2013-03-19 12:53:24

回答

1

如果您確實需要使用FlexTable並提供分頁,則最好使用單元格表so older question。簡單的尋呼機實現您想要的所有功能。

如果你想使用FlexTable,你必須提供你自己的尋呼機實現。這可以通過各種方式完成,使用next和previous按鈕或者Labels添加點擊處理程序並進行迭代。

由於物品沒有以任何方式排列,因此地圖也不適用。我會將所有項目添加到列表中,並使用所述列表作爲我的數據源。

您還需要一種方法來保存當前頁面和項目/頁面(可能是靜態變量,如果想保存的網頁已更改,甚至後)

+0

是啊,但我沒有找到細胞表很容易舉行一個小部件。我試圖展示的是一個產品小部件,它不是一個真正的文本 – xybrek 2013-03-19 13:35:34

+0

這不是一個問題,雖然解決方案有點複雜,但是一旦掌握了基本概念,它就非常簡單。使用自定義單元格https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCustomCells – 2013-03-19 13:39:09