0

我有点迷茫,有以下问题。我正在使用一个扩展“org.eclipse.dialogs.FilterTree”的类。当 filtertext 为空时,树中的每个节点都会折叠。但是在这种情况下,我想扩展树。

有人可以给个提示吗?最好的方法是什么?到目前为止,我已经覆盖了各种方法,但没有成功。

谢谢

4

1 回答 1

1

您可以使用展开所有树TreeViewer#expandAll()

编辑1:

过滤器文本控件的FilteredTree每次更改都会刷新树,但会有一些延迟(默认为 200 毫秒)。因此,在文本控件上添加一个修改侦听器以扩展所有树,此时会显示一组不同的项目(可能没有),稍后刷新作业将使用自己的规则覆盖状态。因此,要么我们需要覆盖doCreateRefreshJob()以在空字符串的情况下展开所有树,要么覆盖updateToolbar(boolean)总是在刷新作业结束时调用。这是我尝试过的,它奏效了:

FilteredTree ft = new FilteredTree(composite, SWT.FULL_SELECTION, p, true) {
    @Override
    protected void updateToolbar(boolean visible) {
        super.updateToolbar(visible);
        treeViewer.expandAll();
    }
};
于 2013-02-25T15:07:28.850 回答