`
sxw7362693
  • 浏览: 60706 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

树的内容过滤--常用于搜索

J# 
阅读更多
 设置树的内容过滤刷新 
 public void refreshFilter(String filterText, boolean canAddFilter)
    {
        TreeViewer viewer = getViewer();
        viewer.getControl().setRedraw(false);
        m_filter.setPattern(filterText);
        if(canAddFilter)
            viewer.addFilter(m_filter);
        else
            viewer.refresh();
        viewer.expandAll();
        viewer.getControl().setRedraw(true);
    }

 
定义树的过滤规则:
class PaletteTreeFilter extends ViewerFilter
    {

        public void setPattern(String pattern)
        {
            if(pattern.indexOf('*') == -1)
                pattern = (new StringBuilder(String.valueOf(pattern))).append('*').toString();
            m_matcher = new StringMatcher(pattern, true, false);
        }

        public boolean select(Viewer viewer, Object parent, Object element)
        {
            IImageElement imageElement = (IImageElement)element;
            if(m_matcher.match(imageElement.getName()))
                return true;
            if(element instanceof IImageContainer)
            {
                IImageContainer container = (IImageContainer)element;
                IImageElement elements[] = container.elements();
                List containers = new ArrayList();
                IImageElement aiimageelement[];
                int j = (aiimageelement = elements).length;
                for(int i = 0; i < j; i++)
                {
                    IImageElement subElement = aiimageelement[i];
                    if(m_matcher.match(subElement.getName()))
                        return true;
                    if(subElement instanceof IImageContainer)
                        containers.add((IImageContainer)subElement);
                }

                for(Iterator iterator = containers.iterator(); iterator.hasNext();)
                {
                    IImageContainer subContainer = (IImageContainer)iterator.next();
                    if(select(viewer, element, subContainer))
                        return true;
                }

            }
            return false;
        }

        private StringMatcher m_matcher;

        PaletteTreeFilter(PaletteTreeFilter palettetreefilter)
        {
        }
    }

 

 

 

 

分享到:
评论

相关推荐

    双数组字典树的-java实现,用于敏感词过滤

    双数组字典树(Double Array Trie,简称DAT)是一种高效的数据结构,主要用于字符串搜索和匹配,尤其在处理大量敏感词过滤的场景下表现突出。它是由日本科学家原望治(Hideo Hiraoka)提出的,相比传统的Trie树,DAT...

    java-根据过滤条件显示树形结构

    在Java编程中,根据过滤条件显示树形结构是一项常见的任务,尤其在数据管理、文件系统或者GUI应用中。树形结构是一种数据结构,它通过节点的层级关系来组织数据,通常用于表示具有层次性的信息。在这个场景下,我们...

    树过滤

    【标题】:“树过滤” 【描述】:在IT领域,"树过滤"通常是指在数据结构或编程中处理树形结构时,对树的节点进行筛选的过程。这可能涉及到遍历树的所有节点,根据特定条件选择保留哪些节点,或者删除不符合条件的...

    JS过滤树数据

    以下是一个简单的树数据过滤函数,用于按名称过滤: ```javascript function filterTree(treeData, keyword) { return treeData.filter(node =&gt; { if (node.name.includes(keyword)) return true; // 如果当前...

    bootstrap treeview可搜索下拉树形

    这个特定的压缩包文件包含了一个实现可搜索下拉树形功能的示例,这在许多Web应用中非常有用,比如用于导航菜单、组织结构展示或者层级数据的交互操作。 在jQuery中,Bootstrap Treeview通过添加特定的CSS样式和...

    树结点过滤 拼或者汉字都可以

    它提供了对树节点的智能搜索和过滤能力,允许用户通过输入拼音或汉字来查找和显示相关的树节点。 1. **ExtJS 3.3+ 中文API**: ExtJS是一个流行的JavaScript框架,用于构建富客户端应用。3.3版本的中文API文档可以...

    FastScan用于敏感词过滤的ahocorasick算法快速文本搜索JS实现

    在IT行业中,文本处理是一项常见的任务,特别是在社交媒体监控、内容审查和搜索引擎优化等领域。`FastScan` 是一个专为敏感词过滤设计的JavaScript库,它利用了高效的`Ahocorasick`算法进行快速的文本搜索。这篇内容...

    Go-go-wordsfilter是一个高性能的Go敏感词过滤器

    总之,Go-go-wordsfilter是一个强大的敏感词过滤工具,它结合了Go语言的高性能和Trie树的高效搜索特性,为开发者提供了一套快速、灵活的解决方案。通过理解和运用这个库,我们可以更好地维护网络环境的秩序,保护...

    common_增加树排序和树过滤_.zip

    在压缩包中的"common"文件,可能包含了相关的源码示例,用于展示树排序和树过滤的具体步骤和优化技巧。这些源码对于学习者来说是非常有价值的实践资源,可以通过阅读和理解代码来加深对理论知识的理解,并能应用于...

    树结点过滤 拼或者汉字

    在IT领域,尤其是在前端开发中,树形结构是一种常见的数据展示方式,用于组织层次化的信息。`TreePanel`是Ext JS框架中用于构建这种树形视图的组件。本篇文章将详细探讨`TreePanel`的节点过滤功能,以及如何支持拼音...

    extjs 树 搜索

    EXTJS提供了树形搜索的功能,使得用户可以方便快捷地定位到所需内容。 EXTJS中的树形搜索主要涉及到以下几个关键知识点: 1. **树形数据结构**:EXTJS的树形控件基于JavaScript对象数组构建,每个节点代表一个对象...

    带复选框的树形菜单-

    6. 搜索过滤:支持在树中搜索特定节点。 7. 可定制性:允许自定义节点的图标、颜色、样式等。 8. 节点操作:提供添加、删除、移动节点等功能。 六、具体实现 对于文件名92c7ec7be6a641e3ad4fe5c4f2188502,这可能是...

    权限树tree-multiselect.js-demo

    【权限树】是一种在用户界面中用于表示层次结构数据的组件,常用于权限管理、组织结构展示、文件系统浏览等领域。在IT行业中,权限树通常采用JavaScript实现,它能够直观地展示不同用户或角色的权限分配,使得管理员...

    Java敏感词过滤源码

    有限状态自动机(确定型有限自动机)是一种图论模型,常用于正则表达式匹配和文本搜索。在敏感词过滤中,DFA可以构建一个状态机,通过遍历文本,一旦遇到敏感词的开始,就沿着预定义的状态路径检查是否完整匹配。...

    根据输入的关键字过滤ext树节点

    它提供了丰富的组件,如表格、面板、窗口等,而“树”(Tree)是其中之一,常用于展示层次结构的数据。本篇文章将深入探讨如何根据输入的关键字过滤Ext树节点,类似于MyEclipse中的preferences搜索框功能。 首先,...

    Go-Go中的区域四叉树的有效点位置和邻居发现技术

    在Go编程语言中,区域四叉树(R-Quadtree)是一种数据结构,它用于高效地组织和查询二维空间中的对象。这种数据结构特别适用于处理大量分布在平面中的数据点,例如在地理信息系统、游戏开发或者图像处理等领域。R-...

    树形表格 treetable 完整版 带演示demo例子

    在IT领域,树形表格(TreeTable)是一种特殊的数据展示方式,它结合了表格和树状结构的优点,常用于组织层次分明、具有父子关系的数据。本文将深入探讨“树形表格treetable完整版”,包括它的特点、应用场景、二次...

    树形搜索控件

    在操作系统中,树形控件常用于文件管理器,如Windows的资源管理器。通过这种控件,用户可以浏览文件夹结构,进行文件的创建、删除、移动和重命名等操作。 5. **编程接口和事件处理** 开发者需要熟悉控件提供的API...

    bootstrap框架下带搜索功能的下拉树插件.zip

    用户可以在下拉菜单中输入搜索词,插件会即时过滤出匹配的树节点。这种组合使得用户能快速定位到需要的特定节点,提高了用户体验。 4. **index.html** 这个文件是项目的主入口,通常包含了HTML结构,包括必要的...

    基于layui实现树形穿梭框

    - 搜索功能:可以添加搜索框,实时过滤树形结构中的节点。 - 动态加载:根据用户操作动态加载数据,提高页面性能。 6. 注意事项: - 数据格式要求:layui树形穿梭框的数据格式通常为数组,每个元素包含id、pid...

Global site tag (gtag.js) - Google Analytics