我如何在 Filtered-TreeView 中搜索“隐藏”数据。到目前为止,我只能搜索 TreeItem 的名称并过滤它们。现在我想搜索存储在 TreeObjects 中的数据。 我应该在哪里附加我想要搜索的字符串?
我尝试变得更详细:
我有一个:
class TreeObject implements IAdaptable {
protected String name;
protected String Data;
private TreeParent parent; ....
现在我想搜索它
protected String Data;
我怎样才能访问: -TreeObject -过滤 TreeView 的文本字段文本
在这里您可以看到可以覆盖的方法的图片:
这是我使用另一种过滤器类型时得到的结果:
最佳答案
您必须覆盖 ViewerFilter
的 select
方法您在 FilteredTree
中设置的。来自 select
的 Javadoc:
Returns whether the given element makes it through this filter.
因此,在您的实现中,您可以检查对象的字段并决定是否应将其过滤掉。
示例(不知道是否可以编译)
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;
}
});
关于java - 在 FilteredTree 中搜索 "hidden Data",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767590/