JFace TreeViewer 上的 RowFilter

RowFilter on JFace TreeViewer

我有一个 TreeViewer,如下所示:

我有一个用于输入百分比值的文本字段。假设输入的百分比是 30%,我应该隐藏所有低于 30% 的行,只显示高于 30% 的行。是否有可用于我的 TreeViewer 的行过滤器?如果能提供一些例子就好了。

我正在使用 e4 RCP。我想进行基于视图的过滤并且不想更改模型。

您使用扩展 ViewFilter 的 class 来过滤树查看器中的行。 ViewFilter 中重写的主要方法是 select 方法:

@Override
public boolean select(Viewer viewer, Object parentElement, Object element)

此处为您提供了正在考虑的对象 (element) 及其父项和查看器。您 return true 继续显示元素并 false 隐藏它。

如果需要,您可以激活多个过滤器,使用以下方法在树查看器中设置它们:

treeViewer.setFilters(array of view filters);

您可能需要致电

treeViewer.filter();

当树中发生某些变化需要重新过滤时运行。