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

Mec*_*ara 3 java eclipse eclipse-plugin eclipse-rcp

在eclipse中,我为他们拥有的主按钮工具栏中的按钮定义了命令.我有一个命令/按钮,设置为下拉按钮,我想以编程方式添加选项.有点像你可以点击eclipse中播放按钮上的小下拉按钮,看看不同的运行场景.我希望能够在我的下拉菜单中添加这样的选项.我无法通过插件编辑器来完成,因为我需要动态生成菜单选项.

所以说我在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>
Run Code Online (Sandbox Code Playgroud)

Sya*_*yam 6

请找到以下代码.

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
    ....
    } 
}
Run Code Online (Sandbox Code Playgroud)

现在创建SampleContributionFactory的对象,如下所示.

  SampleContributionFactory fac = new SampleContributionFactory ("com.company.gui.base.toolBarMain.monitor");
Run Code Online (Sandbox Code Playgroud)

并调用该方法

addContextMenu(fac);
Run Code Online (Sandbox Code Playgroud)

TODO:根据您的要求在SampleContributionFactory中添加命令贡献项.