2013-01-23 22 views
1

我使用gwt CellList示例來實現基於單元格的列表框。它使用TextCell單元格來表示數據,因爲它只是文本,並且工作完美。CellList與CellTree的單元格

現在我要擴展這個列表包括類型「樹」的元素(我的意思是,你可以點擊列表中的一些元素,如果它不是一個葉子,它打開,顯示的信息它的孩子)。所以我實現了一個基於CellTree的小部件。 (CellTree)

我的問題是,我不知道如何插入型「樹」的項目,這是真正CellTrees,到我CellList。

我能想象到的唯一的方法是創建一個新的類型作者表示CellTree,延長「AbstractCell」,並把它作爲CellList物品細胞

我的實現是:

private class TreeCell extends AbstractCell<CellTreeListBox> { 

    public TreeCell() {} 

    @Override 
    public void render(Context context, CellTreeListBox value, 
     SafeHtmlBuilder sb) 
    { 
     sb.appendEscaped(value.getElement().getInnerHTML()); 
    } 
} 

這一次包括在CellList,只顯示根節點,但當我點擊它們時嘿,不要打開!所以這種方法不保留選擇模型的功能...

所以我不知道是否有可能實現一個代表整個CellTree的單元,並保持它的事件和功能(如果你點擊,節點打開並顯示其子項的信息等等)。

我真的很感謝這方面的任何信息!

回答

0

您應該用替換您的CellListCellTree

如果不是這樣,一些容器板(FlowPanelVerticalPanel),其中你會(手動)把小部件(Label S,或者可能具有TextCellCellWidget),並插入您的CellTree在它們之間,以顯示更換CellList它。儘管如此,你會失去小區小部件的其他功能:SelectionModel,尋呼等。

無論如何,請溝通你的CellList。您不能在小部件內嵌入小部件。

+0

是啊!謝謝你的快速回應,托馬斯。我期待CellTree可以被「轉換」爲一個自定義的Cell,然後被用作CellList的一個元素,但是我在你的評論中看到這是不可能的......我不想失去的是Showcase中的CellList示例:當用戶向下滾動時,列表中顯示的信息會增加。我建議我可以通過在ScrollPanel中插入一個包含所有信息的CellTree來實現這一點,你是這麼認爲的? – user2003308

+0

你不會有懶惰加載行爲,但是,這是可能的。 'CellTree'具有內置分頁功能,但它是通過分支底部的_Show more_按鈕創建的。 –

+0

我剛剛看到「顯示更多」行爲,但這不是我要找的。非常感謝您的回覆,這件事U_U已經讓我很頭疼 – user2003308