采用Common Navigator Framwork实现导航的扩展(主要是文件解析及解析完结点的菜单添加)

参考博客http://blog.csdn.net/andywangcn/article/details/8257961实现自定义节点的解析

不用多说,如何在 org.eclipse.ui.views扩展点中添加Navigator很简单,这里只给出配置,对应Class类可根据自己需要对org.eclipse.ui.navigator.CommonNavigator类做进一步扩展

 <extension
         point="org.eclipse.ui.views">
      <view
            class="org.eclipse.ui.navigator.CommonNavigator"
            icon="icons/sample.gif"
            id="nwpu.edu.gnc.CNFnavigator"
            name="Navigator"
            restorable="true">
      </view>
 </extension>

紧接着配置 org.eclipse.ui.navigator.navigatorContent扩展点,自己的配置如下:

   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <navigatorContent
            activeByDefault="true"                                           
            contentProvider="nwpu.edu.gnc.navigator.NavigatorContentProvider"           //指定节点的content如何获取,自己在这个类中实现的是对XML文件的解析及相关操作
            icon="icons/alt_window_16.gif"
            id="nwpu.edu.gnc.cnf.navigatorContent"      //id必须被指定,此id会被在org.eclipse.ui.navigator.viewer扩展点下的viewerContentBinding中作为新的可展示元素添加进来
            labelProvider="nwpu.edu.gnc.navigator.NavigatorLableProvider"     //提供展示节点的显示图片和文字
            name="XML Navigator Content"
            priority="normal">
         <triggerPoints>                                                //触发点
            <or>
               <and>
                  <instanceof
                        value="org.eclipse.core.resources.IFile">        //提供文件的展示
                  </instanceof>
                  <test                                                 //设置在指定扩展名为XML的文件处进行节点展开
                        forcePluginActivation="true"
                        property="org.eclipse.core.resources.extension"
                        value="xml">
                  </test>
               </and>
               <instanceof
                     value="nwpu.edu.gnc.project.entity.EntityElement">  
               </instanceof>
            </or>
         </triggerPoints>
         <possibleChildren>
            <or>
               <instanceof
                     value="nwpu.edu.gnc.project.entity.EntityElement">  //设置展开展开元素的类型
               </instanceof>
            </or>
         </possibleChildren>
         <actionProvider                                                //提供扩展节点的右键菜单
               class="nwpu.edu.gnc.navigator.NodeCommonActionProvider"
               id="nwpu.edu.gnc.cnf.navigatorContent.actions"           //id 会被org.eclipse.ui.navigator.viewer扩展点下的actionExtension引用
               priority="normal">
            <enablement>
               <or>
                  <instanceof
                        value="nwpu.edu.gnc.project.entity.EntityElement">      //指定设置这种Action的节点,这里如果有多个元素不能设置为nwpu.edu.gnc.project.entity.*必须提供一个可以转换所有Entity的一个类,获取到的节点类型就是EntityElement
                  </instanceof></or></enablement></actionProvider> </navigatorContent> </extension>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值