在我的 RCP 程序中,我在工作台窗口中添加了一个菜单“Demo”,并在“Demo”下方添加了一个分隔符“addition”。代码如下,
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
private ExampleAction exampleAction;
@Override
protected void makeActions(IWorkbenchWindow window) {
// TODO Auto-generated method stub
super.makeActions(window);
exampleAction = new ExampleAction(window);
}
@Override
protected void fillMenuBar(IMenuManager menuBar) {
// TODO Auto-generated method stub
super.fillMenuBar(menuBar);
MenuManager demoMenu = new MenuManager("&Demo", "demo");
demoMenu.add(exampleAction);
demoMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
menuBar.add(demoMenu);
}
..............
}
现在我想为“demo/additions”这个位置贡献一个子菜单。我声明了一个 actionSet 扩展点,如下所示,
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="RCP-View-Example.actionSet"
label="actionSet">
<menu
id="RCP-View-Example.menu"
label="ActionSetMenu"
path="demo/additions">
<groupMarker
name="menuItem">
</groupMarker>
</menu>
<action
class="Action1"
id="RCP-View-Example.action"
label="Action"
menubarPath="RCP-View-Example.menu/menuItem"
style="push"
toolbarPath="main/additions">
</action>
</actionSet>
</extension>
<extension
point="org.eclipse.ui.actionSetPartAssociations">
<actionSetPartAssociation
targetID="RCP-View-Example.actionSet">
<part
id="my.view">
</part>
</actionSetPartAssociation>
</extension>
我没有看到菜单被贡献并显示在“演示”菜单下。我将菜单路径从“path="demo/additions”修改为“path="org.eclipse.ui.main.menu/demo/additions”,还是看不到。
谁能帮忙看看我的程序出了什么问题?
我将菜单路径从path="demo/additions修改为path="additions"。打开视图时看到“Demo”后面的菜单。但是,在actionSetPartAssociations扩展点中指定的视图关闭后,菜单仍然存在那里。我希望菜单在与其关联的视图关闭时消失。我的程序有什么问题?