在eclipse插件开发中,我想在弹出菜单中添加一个项目(例如:Mystyle)。
例如,
Project Explorer - >右键单击 - >新 - > myStyle的
如何在eclipse插件开发中实现这一目标?
此致 马堂
答案 0 :(得分:23)
这样的事情应该这样做(this thread之后):
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI=
"popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
<command
commandId="myplugin.command.mycommand"
icon="icons/etool16/mycommand.png"
label="Run mycommand"
mnemonic="M1+P"
tooltip="Do something with this project">
</command>
</menuContribution>
</extension>
定义命令UI结构的有序添加集。已定义的元素将添加到
locationURI
元素指定的位置的命令UI结构中。这应该是菜单,工具栏或修剪中所有贡献的起点,无论它们出现在UI中。
locationURI
- 一个URI规范,用于定义添加包含添加内容的插入点。
URI的格式由三个基本部分组成:
- 方案:“菜单”,“弹出窗口”或“工具栏”之一 指示用于处理贡献的经理的类型
- Id:这是现有菜单的ID,视图ID或编辑器“类型”的ID
- 查询:查询格式为
<placement>=<id>
,其中:<placement>
是“之前”或“之后”,<id>
是现有菜单项的ID
另请参阅 , org.eclipse.ui.popupMenus
org.eclipse.ui.menus
- 扩展点,menuContribution
具有locationURI
- 属性指向 popup:org.eclipse.ui.popup.any?after=additions
警告,如评论中提到的Prashant Bhate,我们已弃用软件包org.eclipse.ui.popupMenus
有关详情,请参阅问题Missing link between objectContribution
and command。
答案 1 :(得分:8)
我刚刚解决了这个问题花了一些时间,所以我会回答OP的问题(添加到File-&gt; New菜单)。
贡献的地方(common.new.menu)
感谢这篇文章,我发现你想要为popup做贡献:common.new.menu?after = new。你为什么问?如果我知道的话但它确实有效。
<强>结果强>
(当C / C ++处于活跃状态时)
(当'不是'C / C ++作为主动观点时)
这是我的示例插件:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="com.justin.debug.SampleHandler"
id="com.justin.debug.commands.sampleCommand"
name="Sample Command">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:common.new.menu?after=new">
<command
commandId="com.justin.debug.commands.sampleCommand"
icon="icons/sample.gif"
label="New Root Command From Justin"
style="push">
<visibleWhen
checkEnabled="false">
<with
variable="activeWorkbenchWindow.activePerspective">
<equals
value="org.eclipse.cdt.ui.CPerspective">
</equals>
</with>
</visibleWhen>
</command>
</menuContribution>
<menuContribution
locationURI="popup:common.new.menu?after=new">
<menu
id="org.ecilpse.ui.navigator.ProjectExplorer.helloJustin"
label="Hello Justin">
<command
commandId="com.justin.debug.commands.sampleCommand"
icon="icons/sample.gif"
label="New Submenu Command From Justin"
style="push">
</command>
</menu>
</menuContribution>
</extension>
</plugin>
我在这里添加了一个重要的部分,'visibleWhen'参数。在C / C ++透视图中,这仅显示来自Justin的新根命令。事实证明这很复杂,因此我将其纳入示例中。以下是我在研究时挖出的有用资源:
我通过痛苦地挖掘org.eclipse.cdt.ui插件的plugin.xml来挖掘C Perspective org.eclipse.cdt.ui.CPerspective 的名称。
现在如果有人能告诉我将来如何轻松查看这些uri / resources / properties ... omg。