1

我使用 gwt CellList示例来实现基于单元格的列表框。它使用TextCell单元格来表示数据,因为它只是 text,并且工作得很好。

现在我必须扩展这个列表以包含“树”类型的元素(我的意思是你可以点击列表中的某个元素,如果它不是叶子,它会被打开并显示其子元素的信息)。所以我实现了一个基于 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 中,只会显示根节点,但是当我单击它们时,它们不会被打开!所以这种方法既不会保留事件,也不会保留 selectionModel 的功能......

所以我不知道是否有可能实现一个代表整个 CellTree 的单元格,并保留其事件和功能(如果单击,则打开节点并显示其子节点的信息等...)。

我真的很感激有关此的任何信息!

4

1 回答 1

0

您应该您的替换CellListCellTree.

或者CellList用一些容器面板(FlowPanel, VerticalPanel)替换你(手动)放置小部件(Labels ,或者可能CellWidget用 a TextCell),然后将你CellTree的插入它们之间以显示它。但是,您将失去单元格小部件的其他功能:SelectionModel、分页等。

无论如何,放弃你的CellList. 您不能在单元格小部件中嵌入小部件。

于 2013-01-23T11:17:00.520 回答