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
转载麻烦加上链接,谢谢合作。