Eclipse RCP 中如何为项目视图添加自定义右键上下文菜单项
完全可以通过在plugin.xml中注册扩展点的方式实现Eclipse RCP项目资源管理器的自定义右键菜单,无需硬编码构建菜单结构,完整实现逻辑如下:

实现步骤
1. 注册自定义命令
首先通过org.eclipse.ui.commands扩展点定义菜单绑定的命令,设置唯一标识、名称和描述:
<extension point="org.eclipse.ui.commands"> <command id="com.itemis.test.MyOpenCommand" name="Open My" description="Open My Editor."> </command> </extension>
2. 绑定命令执行处理器
通过org.eclipse.ui.handlers扩展点将命令和实际处理点击逻辑的Java类绑定:
<extension point="org.eclipse.ui.handlers"> <handler commandId="com.itemis.test.MyOpenCommand" class="com.itemis.test.MyOpenHandler"> </handler> </extension>
对应处理类的基础模板如下,execute方法内编写点击菜单后要执行的业务逻辑即可:
package com.itemis.test; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; public class MyOpenHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { // 此处添加业务逻辑,比如获取选中项目、打开自定义编辑器等 return null; } }
3. 挂载命令到项目资源管理器右键菜单
通过org.eclipse.ui.menus扩展点将命令挂载到Project Explorer的右键菜单中,locationURI指定了菜单的挂载位置:
<extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions"> <command commandId="com.itemis.test.MyOpenCommand" label="Open My" style="push" tooltip="Open My Editor."> </command> </menuContribution>
可选优化:如果需要控制菜单显隐条件,可在
command标签内添加visibleWhen配置,以下是仅当选中项为项目资源时显示菜单的示例:<visibleWhen checkEnabled="false"> <iterate ifEmpty="false"> <adapt type="org.eclipse.core.resources.IProject"/> </iterate> </visibleWhen>
内容的提问来源于stack exchange,提问作者steven
相关产品推荐
相关产品推荐

