2010-04-30 27 views
1

J'utilise Eclipse RCP pour créer une application de bureau. Lorsque l'utilisateur appelle un menu contextuel, j'aimerais ajouter des éléments au menu. Quelque chose comme une liste d '"actions suggérées" à prendre pour un problème. Le pop-up est sur une table et il a déjà des commandes dessus. Quelle est la bonne façon de mettre en œuvre cela?Éléments du menu contextuel dynamique

Répondre

1

dans votre ViewPart (par exemple), vous pouvez ajouter

public void createPartControl(Composite parent) { 
    ... 
    final Action a = new Action("") {}; 
    final MenuManager mgr = new MenuManager(); 
    mgr.setRemoveAllWhenShown(true); 

    mgr.addMenuListener(new IMenuListener() { 
     public void menuAboutToShow(IMenuManager manager) { 
     final IStructuredSelection selection = (IStructuredSelection) listViewer 
         .getSelection(); 
     if (!selection.isEmpty()) { 
         // example Action, here delete... 
      Action deleteAction = new Action("Delete") { 
       public void run() { 
       ....  
           } 
      }; 
      mgr.add(deleteAction); 

         // *** decide here which actions to add by *** 
         // *** evaluation of some of your variables *** 

      mgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); 

     } 
     }); 
     tableViewer.getControl().setMenu(
       mgr.createContextMenu(tableViewer.getControl())); 
.... 
} 
Questions connexes