在我的RCP程序中,我在工作臺窗口中添加了一個菜單「Demo」,在「Demo」下面添加了一個分隔符「additional」。代碼如下,如何通過actionSet擴展點向Workbenchwindow提供菜單?
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);
}
..............
}
現在我想貢獻一個子菜單的位置「演示/添加」。我宣佈一個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 to path =」additions「的菜單路徑,當視圖打開時我看到」Demo「後面的菜單,但是在actionSetPartAssociations擴展點指定的視圖關閉後,菜單仍然存在 我希望當與之相關聯的關閉視圖菜單消失 什麼是錯在我的計劃
感謝您的反饋。它回答了我的第一個問題。我的第二個問題呢?我認爲擴展點org.eclipse.ui.actionSetPartAssociations將一個actionSet與一個視圖鏈接起來。視圖關閉後,我認爲相應的菜單應該消失,我的期望是否正確? – Hua