我使用gwt CellList示例实现了一个基于单元格的列表框。它使用TextCell单元来表示数据,因为--它只是文本,并且工作得很完美。
现在,我必须将这个列表扩展到,包括"tree"类型的元素(我的意思是您可以单击列表中的某些元素,如果它不是叶,则打开它并显示其子元素的信息)。所以我实现了一个基于CellTree的小部件。(CellTree)
我的问题是,我不知道如何将"tree“类型的项(实际上是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的单元,并保留它的事件和功能(如果单击,节点将被打开并显示其子节点的信息,等等)。
我真的很想知道关于这件事的任何信息!
发布于 2013-01-23 11:17:00
您应该使用将您的CellList替换为CellTree。
或者将CellList替换为某种容器面板(FlowPanel,VerticalPanel),在其中您会(手动)将小部件(Label,或者可能是CellWidget )放在其中,然后在它们之间插入CellTree以显示它。但是,您将失去单元小部件的其他特性:SelectionModel、分页等。
无论如何,抛弃你的CellList。不能在单元小部件中嵌入小部件。
https://stackoverflow.com/questions/14478136
复制相似问题