我正在 JFace 中创建一个树查看器,我想实现一些目标。
我在里面使用过滤器。过滤器效果很好,但并不完美。当我使用filter.expandAll()
方法中,过滤器过滤了树中的所有项目,但有一些事情确实很烦人。尽管它过滤了树的所有项目,但它不会隐藏项目父项,这些项现在变为空。
Example:
As you can see, there's only one item that matches the filter: "General/Map/New". But all of the parents are now shown although that they actually doesn't contain any children.
我的过滤器的部分代码:
if (element instanceof HotkeyCategory) {
return true;
} else if (element instanceof HotkeyItem) {
return ((HotkeyItem) element).getLabel().toLowerCase()
.matches(searchString.toLowerCase());
}
return false;
正如你在上面看到的,我允许所有孩子的父母。但也许有某种自动的方式来隐藏空父母?
我有一些想法。在将其重定向到树查看器之前进行过滤,并使用允许的项目及其父项创建 ArrayList 或添加boolean show;
到每个项目和每个父项并通过过滤器返回它,但这些方法都不能令我满意。恕我直言,他们对于这项任务来说有点太复杂了。
所以,我的问题是:有什么简单的方法可以实现我想要的吗?
问候。
看看这个。它可能对您有帮助:Vogella 博客:我喜欢过滤树 (Eclipse FilteredTree) http://blog.vogella.com/2009/06/24/eclipse-filteredtree/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)