отображать открытые узлы в дереве GWT - PullRequest
3 голосов
/ 19 октября 2010

Я создаю дерево GWT и хотел бы, чтобы оно изначально отображалось с открытыми узлами. Давайте возьмем стандартный Пример дерева из 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): javadoc для setState говорит "Устанавливает, есть ли дети отображаются ". Однако, если я добавлю, например,

root.setState(true);

к приведенному выше примеру я не получаю ожидаемого эффекта. Очевидно, ничего не меняется, когда я делаю root.setState(true); или root.setState(false);: дерево всегда отображается с закрытыми узлами.

Как мне получить желаемое поведение?

1 Ответ

2 голосов
/ 19 октября 2010

Вызов setState() зависит от последовательности вызовов методов для TreeItem и Tree (как указано здесь ).

Как правило, вызов большого пальца setState(true) после добавления всех элементов в TreeItem и после добавления корневого элемента в Tree.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...