当filtertext为空时,展开Jface FilteredTree上的所有项目

时间:2013-02-25 14:44:39

标签: java eclipse swt jface

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

任何人都可以提一下吗?什么是最好的方法呢?到目前为止,我已经克服了各种方法,但没有成功。

由于

1 个答案:

答案 0 :(得分: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();
    }
};