我有点迷茫,有以下问题。我正在使用一个扩展“org.eclipse.dialogs.FilterTree”的类。当 filtertext 为空时,树中的每个节点都会折叠。但是在这种情况下,我想扩展树。
有人可以给个提示吗?最好的方法是什么?到目前为止,我已经覆盖了各种方法,但没有成功。
谢谢
您可以使用展开所有树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();
}
};