Eclipse плагин RCP вопрос - PullRequest
0 голосов
/ 10 июня 2011

Я создаю новое приложение Eclipse RCP. Я использовал «Hello RCP» в качестве шаблона проекта для создания нового проекта. Работает нормально. Затем я попытался добавить новое меню. Я использовал две точки расширения "org.eclipse.ui.commands" и "org.eclipse.ui.menu". Я создал класс обработчика, а также определил расположение меню menu uri (). Но мое меню не отображается. Я сильно подозреваю, что мое местоположение неверно. Но я не знаю, как это исправить. Я вставил свое содержимое plugin.xml здесь. Дайте мне знать, если у кого-нибудь есть решение. Я следую инструкциям, приведенным здесь http://zenit.senecac.on.ca/wiki/index.php/Add_Menu_to_RCP_Application

1 Ответ

0 голосов
/ 04 июня 2013

Вы можете использовать класс ApplicationActionbarAdvisor для определения меню и команд для панели инструментов, а также для меню. Сначала вы должны объявить команды, которые вы хотите добавить в свое приложение, как показано ниже:

private IWorkbenchAction newAction

Затем с помощью класса ActionFactory вы должны определить команды в методе makeActions (), как показано ниже:

newAction = ActionFactory.NEW_WIZARD_DROP_DOWN.create(window);
    register(newAction);
    newAction.setText("New");

Теперь после объявления необходимо добавить команды в меню, используя метод fillMenuBar (IMenuManager menuBar):

MenuManager filemenu = new MenuManager("&File", "file");
    filemenu.add(newAction);

и если вы хотите добавить эту команду на панели инструментов, то вы должны использовать следующий метод:

protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar = new ToolBarManager(coolBar.getStyle()); coolBar.add(toolbar); toolbar.add(newAction);

Иногда вам нужно использовать класс IContributionIem для объявления команд, потому что все команды не находятся в классе IWorkbenchAction.

Примечание. Если вы используете класс iContributionItem, код объявления и определения будет заменен следующим образом:

IContributionItem show_view;

show_view = ContributionItemFactory.VIEWS_SHORTLIST.create(window);

и отдых будет таким же.

...