Java 以编程方式向eclipse中的下拉按钮添加选项

Java 以编程方式向eclipse中的下拉按钮添加选项,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,在eclipse中,我为主按钮工具栏中的按钮定义了命令。我有一个命令/按钮,它被设置为一个下拉按钮,我想通过编程向它添加选项。有点像在eclipse中点击play按钮上的小下拉按钮,可以看到不同的运行场景。我想能够添加这样的选项到我的下拉菜单。我不能通过插件编辑器来完成,因为我需要动态生成菜单选项 假设我在plugin.xml文件中定义了以下下拉按钮。如何以编程方式向下拉列表添加选项 <menuContribution allPopups="false"

在eclipse中,我为主按钮工具栏中的按钮定义了命令。我有一个命令/按钮,它被设置为一个下拉按钮,我想通过编程向它添加选项。有点像在eclipse中点击play按钮上的小下拉按钮,可以看到不同的运行场景。我想能够添加这样的选项到我的下拉菜单。我不能通过插件编辑器来完成,因为我需要动态生成菜单选项

假设我在plugin.xml文件中定义了以下下拉按钮。如何以编程方式向下拉列表添加选项

 <menuContribution
        allPopups="false"
        locationURI="toolbar:org.eclipse.ui.main.toolbar">
     <toolbar
           id="com.company.gui.base.toolBarMain">
        <command
              commandId="com.company.gui.base.command1"
              icon="icons/magnifier.png"
              id="com.company.gui.base.toolBarMain.monitor"
              label="Im a pulldown menu"
              style="pulldown">
        </command>
     </toolbar>
  </menuContribution>

请查找以下代码

private void addContextMenu(SampleContributionFactory fac) {
     final IMenuService menuService = (IMenuService) PlatformUI.getWorkbench().getService (IMenuService.class);
     menuService.addContributionFactory(fac);
}

class SampleContributionFactory extends AbstractContributionFactory{

    SampleContributionFactory(final String menuID) {
        super("menu:" + menuID, null);
    }

    @Override
    public void createContributionItems(IServiceLocator serviceLocator,
            IContributionRoot additions) {      
        // add Command Contribution item
        additions.addContributionItem(<YOUR CONTRIBUTION ITEM>, null);
    // add one more Command Contribution item
    ....
    } 
}
并调用该方法

addContextMenu(fac);

TODO:根据需要在SampleContributionFactory中添加命令贡献项。

eclipse文档中有关于此的教程吗?他们似乎很好地记录了所有可以声明式完成的事情,但是当需要对框架采用动态/编程方法时,我永远找不到正确的信息。您的解决方案非常有效,但是在深入研究并尝试了API文档中的许多内容之后,直到您出现,我才发现它的用途。一些可能对您有所帮助的链接是:和。但是你是对的,有些东西很难找到文档。唯一的方法就是挖掘eclipse源代码本身。:-)可能也有帮助
addContextMenu(fac);