深入 Common Navigator Framework 之 Common Filters

4.1 概述

Common Filter负责进行节点过滤,类似JFace Viewer中的Sorter功能,比如
org.eclipse.jface.viewers.StructuredViewer.setSorter(ViewerSorter sorter)
CNF中也一样,不过它使用Common Filter对Sorter进行了封装,使得用户更容易自定义过滤器。具体效果见第一节中的部分。

 

4.2 扩展点

扩展点org.eclipse.ui.navigator.navigatorContent/commonFilter,定义的Common Filter在navigatorContent中通过viewerContentBinding引用。

具体声明为:


 
该扩展点中最重要的就是filterExtension,它将确定合适启用过滤器。在filterExtension中,可以使用PropertyTest,Instanceof等一切可以用于判断的表达式:

4.3 Eclipse实现


在这里讲解一下Eclipse中Non-JavaProject过滤器的实现。代码如下:

      <commonFilter
            id="org.eclipse.ui.examples.navigator.filters.hideNonJavaProjects"
            name="Hide non-Java Projects">
         <filterExpression>
            <not>
               <adapt
                     type="org.eclipse.core.resources.IProject">
                  <test
                        property="org.eclipse.core.resources.projectNature"
                        value="org.eclipse.jdt.core.javanature">
                  </test>
               </adapt>
            </not>
         </filterExpression>
      </commonFilter>

 


这里使用了Property Test,使用“org.eclipse.core.resources.projectNature”属性,这是Eclipse内置的一个属性,如果该属性不是“org.eclipse.jdt.core.javanature”时候,启用过滤器,过滤掉不是Java工程的工程。

 

4.4 说明

扩展点org.eclipse.ui.navigator.navigatorContent/commonFilter,定义的Common Filter在navigatorContent中通过viewerContentBinding引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值