Показаны сообщения с ярлыком Actions. Показать все сообщения
Показаны сообщения с ярлыком Actions. Показать все сообщения

воскресенье, 19 апреля 2009 г.

Eclipse RCP. Команды пунктам меню

Саму менюшку можно создать поковыряв plugin.xml на вкладке Extensions. Однако, там могут возникать некоторые проблемы такого рода: некоторые пункты меню работают, а некоторые - нет. Например, у меня есть несколько пунктов в меню File: Save и Exit. Реализации, прописанные в CommandId у них org.eclipse.ui.file.save и org.eclipse.ui.file.exit соответственно. Имеем ситуацию, когда Save не работает, а Exit - работает. Не работает - в смысле "серый", на него нельзя кликнуть.
Я попробовал создавать менюшку руками:
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
private IWorkbenchAction exitAction, saveAction;
protected void makeActions(IWorkbenchWindow window) {
exitAction = ActionFactory.QUIT.create(window);
register(exitAction);
saveAction = ActionFactory.SAVE.create(window);
register(saveAction);
}
protected void fillMenuBar(IMenuManager menuBar) {
MenuManager hyperbolaMenu = new MenuManager(
"&Hyperbola", "hyperbola");
hyperbolaMenu.add(saveAction);
hyperbolaMenu.add(exitAction);
menuBar.add(hyperbolaMenu);
}
}
Отлично, всё работает: и выход, и сохранение. Если убрать register(saveAction) - сохранение перестанет работать. По-видимому некоторые Actions сами создаются, а некоторые надо ручками. Магия!