Порядок смешанных пунктов меню «действие» и «команда» в Eclipse RCP - PullRequest
0 голосов
/ 10 января 2012

На данный момент в моем приложении RCP есть два меню: Файл и Справка.

Меню Файл создается с помощью command:

<extension point="org.eclipse.ui.menus">
  <menuContribution allPopups="false" 
                    locationURI="menu:org.eclipse.ui.main.menu">
     <menu
           id="fileMenu"
           label="File"
           mnemonic="F"
           tooltip="Main Menu">
        <command
              commandId="myPlugin.bundle.menuCommands.Exit"
              label="Exit"
              mnemonic="E"
              style="push"
              tooltip="Exits MyPlugin">
        </command>
     </menu>
  </menuContribution>
  </extension>

<extension point="org.eclipse.ui.commands">
  <command defaultHandler="myPlugin.bundle.commands.exit.ExitHandler"
        id="myPlugin.bundle.menuCommands.Exit"
        name="Exit">
  </command>
</extension>

Меню Справка (только с пунктом меню О программе) создается через соответствующие action в ApplicationActionBarAdvisor:

protected void makeActions(IWorkbenchWindow window) {
    aboutAction = ActionFactory.ABOUT.create(window);
    register(aboutAction);
}

protected void fillMenuBar(IMenuManager menuBar) {
    MenuManager helpMenu = new MenuManager("&Help", "helpMenu");
    helpMenu.add(aboutAction);
    menuBar.add(helpMenu);
}

Теперь Справка меню появляется перед меню Файл в строке меню.Это явно не так, как должно быть.Как я могу изменить порядок меню?

Большое спасибо!

1 Ответ

0 голосов
/ 10 января 2012

Ах, решил эту проблему, просто добавив MenuManager в ApplicationActionBarAdvisor для меню Файл :

MenuManager helpMenu = new MenuManager("&Help", "helpMenu");
MenuManager fileMenu = new MenuManager("&File", "fileMenu");
...
menuBar.add(fileMenu);
menuBar.add(helpMenu);

Могу ли я услышать, что вы говорите "черт!"?Потому что это то, что я сделал;).

ОБНОВЛЕНИЕ:

Это действительно, как это должно быть сделано, хотя?Это означало бы, что для каждого нового меню, которое я создаю в мастере расширений, мне нужно будет добавить новую строку в ApplicationActionBarAdvisor ...

Возможно, вы могли бы поделиться своими мыслями по этому поводу, или этопросто взлом, который можно избежать.

Спасибо!

...