如何创建动态增长的CellTree

时间:2013-02-15 07:06:22

标签: gwt gwt2

我是GWT的新手,我在创建一个其子节点动态增长的Tree时遇到了问题。当我的页面加载时,树看起来像这样:

ROOT_Node
    |
    |_Child 1
    |
    |_Child 2

当用户点击Child 1或Child 2时,他们会像这样展开:

ROOT_Node
    |
    |_Child 1
    |   |
    |   |_Child 1_1
    |   |_Child 1_2
    |
    |_Child 2

如果用户点击Child 1_1,如果Child 1_1有任何子节点,它将再次展开。并且所有节点都将动态增长。我已经在GWT TreeCell上做了一些基本的样本,并且知道它不会动态增长。因此,每当用户点击子节点时,我将删除CellTree并添加新的CellTree。这太糟糕了。至少我应该能够编写一些代码来处理任意数量的子节点及其子节点。

我已经完成了一些GWT教程,包括官方GWT教程。但找不到与此类问题相关的例子。教程只包含“if(value instanceof SomeClass)然后执行此操作”,添加某种选择处理程序等。如果我使用这种方法,我应该编写许多if-then-else块。

任何人都可以帮我解决这个问题。或者有没有简单的方法来显示树而不使用CellTree?名单会帮助我吗?

1 个答案:

答案 0 :(得分:0)

CellTree DOES 支持动态数据。

如果您想支持延迟加载,或者事先不知道层次结构,则可以使用AsyncDataProvider
此外,还有一个展示示例,展示了可以找到here的动态数据的使用。

如果要为每个树级别使用不同的if (value instanceof SomeClass),则必须使用所有Cells(请参阅showcase示例)。

如果Child1Child1_2属于同一类型并且应该以相同的方式呈现,则可以使用不同的方法。 您可以检查对象中的字段,告诉您它所属的树中的哪个级别,或者您的对象是否通过引用链接在一起,而不是检查对象是否是特定的类(即子对象具有对它的引用&#39 ;父母)您也可以利用这些信息来创建TreeViewModel