Eclipse rcp 开发 : 自定义导航视图CNF(2)为导航视图增加数据提供和右键支持...

1. 添加org.eclipse.ui.navigator.navigatorContent 扩展点,右键增加navigatorContent属性。

    添加扩展点org.eclipse.ui.navigator.viewer,右键增加viewer属性定义viewerId,该id为在views扩展点的导航视图的viewid一致

            1. id唯一

            2. name个人习惯定义为跟Id一样,方便区分。

            3. priority 选择normal

             4. 定义ContentProvider继承 WorkbenchContentProvider,继承此类需要添加org.eclipse.ui.ide到Dependencies中,使用eclipse自带的类不需要实现里面的方法也可以使用,如果需要自定义的话,可以重写父类的方法,也可以直接使用WorkbenchContentProvider

             5. 定义LabelProvider 继承LabelProvider,需要实现getImage和getText两个方法,一个是定义图片一个是定义显示的文本。     

            @Override
	public Image getImage(Object element) {
		return super.getImage(element);
	}

	@Override
	public String getText(Object element) {
		if(element instanceof IProject){
			IProject project = (IProject) element;
			return project.getName();
		}
		return "";
	}

            

                  6. activeByDefault 选择为true。

                  7. 选择新增的扩展点org.eclipse.ui.navigator.viewer,右键新增viewerContentBinding(内容绑定),viewerid于导航视图id一致,创建includes -- contentExtension,输入pattern属            性为该数据提供者的id:com.itec.rcp.navigatorContent

                   8.完成后还需要在该扩展点下增加一个子属性,以下默认即可:

                        

            <enablement>
            <or>
               <adapt
                     type="org.eclipse.core.resources.IProject">
               </adapt>
               <instanceof
                     value="org.eclipse.core.resources.IResource">
               </instanceof>
            </or>
         </enablement>
         <triggerPoints>
            <or>
               <instanceof
                     value="org.eclipse.core.resources.IWorkspaceRoot">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IProject">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IFolder">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IFile">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IResource">
               </instanceof>
            </or>
         </triggerPoints>
         <possibleChildren>
            <or>
               <instanceof
                     value="org.eclipse.core.resources.IWorkspaceRoot">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IResource">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IProject">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IFolder">
               </instanceof>
               <instanceof
                     value="org.eclipse.core.resources.IFile">
               </instanceof>
            </or>
         </possibleChildren>

            

            

2. 增加视图右键。

   2.1 选择新增的扩展点org.eclipse.ui.navigator.viewer,右键增加viewer属性定义viewerId,该id为在views扩展点的导航视图的viewid一致

   2.2 右键选择新增加viewer属性,选择创建popupMenu。定义id:

org.eclipse.ui.navigator.resourceContent#PopupMenu

    allowsPlatformContributions 默认选择为true,选择后,在导航视图右键会出现Run 这些操作,并且可以使用扩展点来增加右键菜单,并且在新增右键时添加的路径选择additions会添加到右键,如果选择为false,则以上功能都不可用。不理解为什么要这样做。

   2.3 右键选择新建的popupMenu属性创建insertPoint

         默认要添加进去几个否则会报找不到组名的错误

        group.new

        group.open

        group.openWith

        group.edit

        group.reorganize

        group.port

        group.build

        group.properties

  以上的几个功能组,都是常用的,在实际的开发应用中,有些功能不需要的,可以给屏蔽掉,重新定义充能菜单。

后面会讲到

 2.4 右键选择新增加viewer属性,选择创建viewerActionBinding action 绑定,上面所有的定义完成之后,必须完成这样不走,导航视图的右键菜单才会出现。

  viewerid为:com.itec.rcp.view.ItecNavigatorView,右键新建includes -- actionExtension.pattern为org.eclipse.ui.navigator.resources.* 这个是添加所偶的内置定义的action到导航视图中。

完成上述所有的步骤,运行后,导航视图右键,将会出现右键菜单,新建一个项目project,内容为空,完成后将会显示在导航菜单中,因为没有定义图片,只定义了文本,所以只显示文本,图片可根据具体的需求来添加。想增加其他内容,可以再数据提供对象中添加。

源码地址:http://pan.baidu.com/s/1dDCdeed

转载麻烦加上链接,谢谢合作。

转载于:https://my.oschina.net/liuyi126/blog/296521

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值