如何在Filtered-TreeView中搜索“hidden”-Data。直到现在我可以搜索TreeItem的名称并过滤它们。现在我想搜索存储在TreeObjects中的数据。 我应该在哪里附上我想要搜索的字符串?
我试着变得更加详细:
我有一个:
class TreeObject implements IAdaptable {
protected String name;
protected String Data;
private TreeParent parent; ....
现在我想搜索它的
protected String Data;
我怎样才能访问: - TreeObject - 过滤树视图的texfield文本
在这里,您可以看到可被覆盖的方法图片:
这是我得到的,我使用另一个Filter-Type:
答案 0 :(得分:1)
您必须覆盖select
中设置的ViewerFilter
FilteredTree
方法。来自select
的Javadoc:
返回给定元素是否通过此过滤器。
因此,在您的实现中,您可以检查对象的字段并确定是否应将其过滤掉。
示例(不知道是否编译)
TreeViewer viewer = filteredTree.getViewer();
viewer.addFilter(new ViewerFilter() {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (element instanceof TreeObject && filterString != null && !filterString.isEmpty()) {
TreeObject obj = (TreeObject) element;
String data = obj.getData().toLowerCase(); // Your Data field!
return data.startsWith(filterString.toLowerCase());
}
return true;
}
});