获取GWT中所选树项的索引?

时间:2014-01-06 07:06:40

标签: gwt

我正在尝试GWT应用程序。我有一棵树,有很多树项目。我想检索树中所选项目的索引。我看到Tree类没有像getSelectedElementIndex()这样的方法。有没有解决方法呢?

3 个答案:

答案 0 :(得分:1)

您可以通过SelectionHandler注册addSelectionHandler。选择项目时给出的事件将返回选定的TreeItem对象。

同样Tree有一个方法getSelectedItem(),它会返回TreeItem。类TreeItem有一个方法getChildIndex,它接受​​TreeItem并返回索引。此外,使用item.getParentItem().getChildIndex(item),您应该获得该项目的索引。

答案 1 :(得分:0)

您可以编写自己的函数来执行此操作:

int getTreeItemIndex(Tree tree, TreeItem item)
{
    int count = tree.getItemCount();
    for (int i=0;i<count;i++)
    {
        TreeItem test = tree.getItem(i);
        if (test == item)
        {
            return i;
        }
    }
    return -1;
}

这只会搜索Tree对象的直接子节点,如果找不到则返回-1。

答案 2 :(得分:-1)

渲染每个树项时,可以将索引存储为setLayoutData。如果需要,可以从getLayoutData获取。任何对象都可以存储在这里。我希望这能解决你的问题。