我有点迷茫,有以下问题。我正在使用一个扩展“ 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();
}
};