RCP-使用ExtensionContributionFactory用贡献项填充菜单不允许设置默认选择

时间:2019-01-07 16:02:17

标签: eclipse-rcp rcp

我需要在RCP菜单中动态创建贡献项,因此我不能像在动态创建之前那样使用plugin.xml来定义它-通过将其添加到 org中的适当命令中,足以指定默认值。 eclipse.ui.commands 扩展点:

<state
     class="org.eclipse.ui.handlers.RadioState:None"
     id="org.eclipse.ui.commands.radioState">
</state>
冒号之后

没有了。我在互联网上看了遍,看来本教程正是我所需要的:

http://blog.vogella.com/2009/12/03/commands-menu-runtime/

但是,我需要贡献项为CommandContributionItem.STYLE_RADIO。遵循本教程之后,我可以创建包含这些项目的下拉菜单,但是有两个问题:

  • 有人知道为什么不同时创建它们吗? 就像在plugin.xml中定义的一样 (ExtensionContributionFactory.createContributionItems(IServiceLocator, 菜单上的CLICKING时,将调用IContributionRoot)方法
  • 有人知道如何定义默认的选定项目吗?我在用 以下代码
    ICommandService commandService = todoListView.getViewSite().getService(ICommandService.class);
    Command command = commandService.getCommand(COMMAND_ID);
    try
    {
        HandlerUtil.updateRadioState(command, personalSettings.getCurrentGroupingName());
    }
    catch (ExecutionException e)
    {
        throw new RuntimeException(e);
    }

当我调试它时,它会将命令的RadioState设置为正确的值,但是显示下拉列表时,我看不到指出所选选项的项目符号。有人有想法么?谢谢

0 个答案:

没有答案