Reputation: 1605
I'm trying to contribute a menu item to the Configure menu item/group in Project Explorer.
The following snippet adds my menu item to the same level. Adding <menu label="Configure" />
between <menuContribution ...>
and <command ...>
creates a duplicate Configure menu item.
What am I doing wrong?
<?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>
Upvotes: 1
Views: 1279
Reputation: 37700
Using org.eclipse.ui.menus
is the more future-safe way so I prefer that whenever I have a choice.
Set the locationURI
to popup:org.eclipse.ui.projectConfigure
If you need to find the locationURI of any menu press Alt+Shift+F2, then open the menu as usual and click where you want to insert.
Upvotes: 3
Reputation: 28737
You should be using org.eclipse.ui.popupMenus
extension point and adding an objectContribution.
Here's a simplified snippet in the plugin.xml that we are using inside of AJDT to contribute to the configure menu. You should be able to use something like this for your project.
<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>
Upvotes: 1