Ajout d'un menu contextuel sous eclipse
Fayros
Messages postés
6
Statut
Membre
-
Fayros -
Fayros -
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 :
et la classe NewAction
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)
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)
Configuration: Linux Mandriva Firefox 1.5.0.10
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>); }