我正在尝试将项目项目提供给Project Explorer中的 Configure 菜单项/组。
以下代码段将我的菜单项添加到同一级别。在<menu label="Configure" />
和<menuContribution ...>
之间添加<command ...>
会创建一个重复的配置菜单项。
我做错了什么?
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command commandId="com.example.convert" label="Convert to XXX Project..." />
</menuContribution>
</extension>
<extension point="org.eclipse.ui.commands">
<command id="com.example.convert" defaultHandler="com.example.ConvertAction" name="Convert to XXX Project" />
</extension>
</plugin>
答案 0 :(得分:3)
使用org.eclipse.ui.menus
是更安全的未来方式,所以每当我有选择时,我都更喜欢这种方式。
将locationURI
设置为popup:org.eclipse.ui.projectConfigure
如果您需要找到任何菜单的locationURI,请按 Alt + Shift + F2 ,然后照常打开菜单并点击你想插入。
答案 1 :(得分:1)
您应该使用org.eclipse.ui.popupMenus
扩展点并添加objectContribution。
这是plugin.xml中的一个简化片段,我们在AJDT中使用它来贡献配置菜单。你应该能够为你的项目使用这样的东西。
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
objectClass="org.eclipse.core.resources.IProject"
adaptable="true"
id="iprojectcontributions">
<menu
label="%org.eclipse.ajdt.ui.tools"
id="org.eclipse.ajdt.ui.project.tools">
<separator
name="group0">
</separator>
</menu>
<visibility>
<and>
<objectState name="nature" value="org.eclipse.jdt.core.javanature"/>
<not>
<objectState name="nature" value="org.eclipse.ajdt.ui.ajnature"/>
</not>
<objectState name="open" value="true"/>
</and>
</visibility>
<action
label="%convertToAJP"
class="org.eclipse.ajdt.internal.ui.actions.AddAJNatureAction"
menubarPath="org.eclipse.ui.projectConfigure/additions"
id="addajnatureaction">
</action>
</objectContribution>
</extension>