我使用gwt CellList示例来实现基于单元格的列表框。它使用 TextCell 单元格来表示数据,因为它只是文本,并且运行良好。
现在我必须将此列表扩展为包含“tree”类型的元素(我的意思是您可以单击列表中的某些元素,如果它不是叶子,则会打开并且显示其子女的信息)。所以我实现了一个基于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中,它只显示根节点,但当我点击它们时,它们不会被打开!所以这种方法不会使事件既不是selectionModel的功能......
所以我不知道是否可以实现代表整个CellTree的单元格,并保留其事件和功能(如果单击,则打开节点并显示其子项的信息等...)
我真的很感激有关此事的任何信息!
答案 0 :(得分:0)
您应该<{> 1}} CellList
替换。
使用某个容器面板(CellTree
,CellList
)替换FlowPanel
,在其中(手动)放置小部件(VerticalPanel
,或者可能Label
CellWidget
TextCell
,并在其中插入CellTree
以显示它。然后,您将丢失单元小部件的其他功能:SelectionModel
,分页等
无论如何,请放弃CellList
。您无法在窗口小部件中嵌入窗口小部件。