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

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

谢谢

最佳答案

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


编辑1:

FilteredTree每次对过滤器文本控件进行更改时都会刷新树,但会有一些延迟(默认为200ms)。因此,在文本控件上添加用于扩展所有树的修改侦听器时,将显示不同的项目集(可能没有),随后刷新作业将使用其自己的规则覆盖状态。因此,如果我们需要覆盖doCreateRefreshJob()以扩展所有树(如果字符串为空),或者覆盖updateToolbar(boolean)总是在刷新作业结束时调用它。这是我尝试过的,并且有效:


FilteredTree ft = new FilteredTree(composite, SWT.FULL_SELECTION, p, true) {
    @Override
    protected void updateToolbar(boolean visible) {
        super.updateToolbar(visible);
        treeViewer.expandAll();
    }
};

10-02 00:00