Я понял это. Два способа: один с использованием org.eclipse.ui.viewActions
расширения, другой с org.eclipse.ui.menus
Использование расширения org.eclipse.ui.viewActions
(затмение> = 3,5)
- стиль действия должен быть установлен на
pulldown
<extension point="org.eclipse.ui.viewActions">
<viewContribution id="..." targetId="$MyViewId$">
<action id="..."
toolbarPath="action1"
class="xxx.MyAction"
style="pulldown">
</action>
</viewContribution>
</extension>
- класс действия должен реализовывать
IViewActionDelegate
(требуется для действия, вносящего вклад в панель инструментов представления) и IMenuCreator
(определяет поведение меню).
public class RetrieveViolationsViewActionDelegate implements IViewActionDelegate, IMenuCreator
{
private IAction action;
private Menu menu;
// IViewActionDelegate methods
...
// IMenuCreator methods
public void selectionChanged(IAction action, ISelection selection)
{
if (action != this.action)
{
action.setMenuCreator(this);
this.action = action;
}
}
public void dispose()
{
if (menu != null)
{
menu.dispose();
}
}
public Menu getMenu(Control parent)
{
Menu menu = new Menu(parent);
addActionToMenu(menu, new ClassImplemententingIAction());
return menu;
}
public Menu getMenu(Menu parent)
{
// Not use
return null;
}
private void addActionToMenu(Menu menu, IAction action)
{
ActionContributionItem item= new ActionContributionItem(action);
item.fill(menu, -1);
}
}
Использование org.eclipse.ui.menus (eclipse> = 3.3)
- Добавить новый вклад в меню к точке расширения
org.eclipse.ui.menus
.
- Установите URI местоположения на
toolbar:IdOfYourView
- Добавьте панель инструментов к этому расширению и новую команду на эту новую панель инструментов.
- Изменить стиль команды на
pulldown
- Создайте новый вклад в меню и установите для locationURI значение
menu:IdOfThePullDownCommand
- Добавить команды в это меню.
Подробнее