2010-04-30 5 views
1

Я использую Eclipse RCP для создания настольного приложения. Когда пользователь вызывает всплывающее меню, я хотел бы добавить некоторые элементы в меню. Что-то вроде списка «предлагаемых действий» для решения проблемы. Всплывающее окно находится на столе, и на нем уже есть команды. Каков правильный способ реализации этого?Элементы динамического контекстного меню

ответ

1

в вашем ViewPart (к примеру) можно добавить

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())); 
.... 
} 
Смежные вопросы