Ajout d'un menu contextuel sous eclipse

Fermé
Fayros Messages postés 6 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 11 janvier 2009 - 3 mai 2007 à 16:00
 Fayros - 24 mai 2007 à 09:18
Bonjour. Je cherche à rajouter un menu contextuel dans une vue que j'ai créée.

Pour cela, je me suis servi de l'assistant qui m'a rajouté ceci :

<extension
    	point="org.eclipse.ui.popupMenus">
		<objectContribution
    		objectClass="org.eclipse.core.resources.IFile"
		    id="popup.contribution1">
    		<menu
        		label="New Submenu"
	        	path="additions"
	    	    id="popup.menu1">
    	    	<separator
    		        name="group1">
	        	</separator>
	        </menu>
    	    <action
        		label="New Action"
            	class="popup.actions.NewAction"
	            menubarPath="popup.menu1/group1"
    	        enablesFor="1"
        	    id="popup.newAction">
	        </action>
		</objectContribution>
	</extension>


et la classe NewAction

package popup.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;

public class NewAction implements IObjectActionDelegate {

	/**
	 * Constructor for Action1.
	 */
	public NewAction() {
		super();
	}

	/**
	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
	 */
	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
	}

	/**
	 * @see IActionDelegate#run(IAction)
	 */
	public void run(IAction action) {
		Shell shell = new Shell();
		MessageDialog.openInformation(
			shell,
			"Test_popup Plug-in",
			"New Action was executed.");
	}

	/**
	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
	 */
	public void selectionChanged(IAction action, ISelection selection) {
	}

}


Mais je ne sais pas comment le faire apparaître dans ma vue (d'ailleurs, cela n'apparait nulle part).

Si quelqu'un sait comment faire, je l'en remercie :)

(Au passage : je suis sous Eclipse version 3.2.0)
A voir également:

1 réponse

Pour ceux que ça intéresserait :

Faire fonctionner un menu contextuel dans une vue :

dans le plugin.xml, rajouter ceci :

	<extension
    	point="org.eclipse.ui.popupMenus">
		<viewerContribution
        	id="<id du popup>"
	        targetID="<id de la vue ciblée>">
    		<menu
        		label="New Submenu"
	        	path="additions"
	    	    id="popup.menu1">
    	    	<separator
    		        name="group1">
	        	</separator>
	        </menu>
    	    <action
        		label="New Action"
            	class="<Action à exécuter>"
	            menubarPath="popup.menu1/group1"
    	        enablesFor="1"
        	    id="popup.newAction">
	        </action>
       </viewerContribution>
	</extension>


Et dans la vue elle-même :

   private void hookContextMenu() {
		MenuManager menuMgr = new MenuManager("#PopupMenu");
		menuMgr.setRemoveAllWhenShown(true);
		Menu menu = menuMgr.createContextMenu(<Your Viewer>.getControl());
		<Your Viewer>.getControl().setMenu(menu);
		getSite().registerContextMenu(menuMgr, <Your Viewer>);
	}
2