0

如何在 Filtered-TreeView 中搜索“隐藏”数据。到目前为止,我可以只搜索 TreeItem 的名称并过滤它们。现在我想搜索存储在我的 TreeObjects 中的数据。我应该在哪里附加我要搜索的字符串?

我尝试变得更详细:

我有一个:

    class TreeObject implements IAdaptable {
    protected String name;
    protected String Data;
    private TreeParent parent; ....

现在我想搜索它

    protected String Data;

我怎样才能访问:-TreeObject- 过滤树视图的texfield文本

在这里,您可以看到可以被覆盖的方法的图片: 这里没有 SELECT 函数

这就是我在使用另一种过滤器类型时得到的:

这就是我得到的

4

1 回答 1

1

您必须覆盖您select在. 来自的Javadoc :ViewerFilterFilteredTreeselect

返回给定元素是否通过此过滤器。

因此,在您的实现中,您可以检查对象的字段并决定是否应该将其过滤掉。

示例(不知道这是否编译)

    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;
        }
    });
于 2013-05-27T06:52:18.010 回答