我有一个带有四个TreeColumn的JFace TreeViewer。我通过搜索文本在我的Tree和Filter中添加了一个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;
}