在FilteredTree中搜索“隐藏数据”

时间:2013-05-27 06:37:36

标签: java eclipse filter tree

如何在Filtered-TreeView中搜索“hidden”-Data。直到现在我可以搜索TreeItem的名称并过滤它们。现在我想搜索存储在TreeObjects中的数据。 我应该在哪里附上我想要搜索的字符串?

我试着变得更加详细:

我有一个:

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

现在我想搜索它的

    protected String Data;

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

在这里,您可以看到可被覆盖的方法图片: No SELECT Functiobn here

这是我得到的,我使用另一个Filter-Type:

This is what I get

1 个答案:

答案 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;
        }
    });