我有一个带有四个 TreeColumn 的 JFace TreeViewer。我在树中添加了一个 ViewerFilter 类,并通过搜索文本进行过滤。问题是它只过滤 TreeParent 而不是在 TreeChildren 上工作。
例如:
A
A1
A2
A2.1
A2.2
B
C
searchtext = "A" 的结果只有 A 没有孩子。
searchtext = "A1" 的结果是什么。
searchtext = "A2.1" 的结果也没什么。
我的代码:
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
boolean result = true;
if (text != null && text.length() > 0) {
TreeTableObject object = ((TreeTableObject) element).getChild();
String personText = object.toString().toLowerCase();
System.out.println("Text: " + text.toLowerCase());
System.out.println("Filter text: " + personText);
result = personText.indexOf(text.toLowerCase()) != -1;
}
return result;
}