在GWT树中显示开放节点

时间:2010-10-19 14:48:02

标签: gwt

我创建了一个GWT树,我希望它最初显示为开放节点。我们采用标准Tree example from GWT javadocs

public class TreeExample implements EntryPoint {

  public void onModuleLoad() {
    // Create a tree with a few items in it.
    TreeItem root = new TreeItem("root");
    root.addItem("item0");
    root.addItem("item1");
    root.addItem("item2");

    // Add a CheckBox to the tree
    TreeItem item = new TreeItem(new CheckBox("item3"));
    root.addItem(item);

    Tree t = new Tree();
    t.addItem(root);

    // Add it to the root panel.
    RootPanel.get().add(t);
  }
}

我希望它最初显示为:

root
  item0
  item1
  item2
  item3

现在,我认为通过调用TreeItem来设置我想要打开的setState(true)的状态非常简单:setState root.setState(true); 说“设置是否显示此项目的子项“。但是,如果我添加例如

root.setState(true);

到上面的例子,我没有得到预期的效果。我root.setState(false);或{{1}}时显然没有任何变化:树总是在节点关闭的情况下显示。

我如何获得所需的行为?

1 个答案:

答案 0 :(得分:2)

setState()的调用取决于对TreeItemTree的方法调用顺序(如here所述)。

在将所有项目添加到setState(true)之后以及将根项目添加到TreeItem后,作为经验法则调用Tree