我使用 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 的单元格,并保留其事件和功能(如果单击,则打开节点并显示其子节点的信息等...)。
我真的很感激有关此的任何信息!