I have a JFace TreeViewer with four TreeColumn. I added a ViewerFilter class into my Tree and Filter by a search text. The problem is it's only filtering the TreeParent and not working on TreeChildren.
For example:
A
A1
A2
A2.1
A2.2
B
C
Result for searchtext = "A" is only A without children.
Result for searchtext = "A1" is nothing.
Result for searchtext = "A2.1" is nothing also.
My code:
@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;
}