2017-03-16 115 views
0

我有一個基於e4xmi模型的RCP4應用程序,包含3個部分。我只想添加一個菜單,如Eclipse的「Window」菜單,其中包含一個「顯示視圖」子菜單,該子菜單打開一個對話框以打開一個零件。我怎樣才能重用這個子菜單? 我已經嘗試通過添加菜單中調用窗口和使用命令「org.eclipse.ui.views.showView」使用擴展點「org.eclipse.ui.menus」:eclipse e4啓用showView菜單

<extension 
     point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="menu:org.eclipse.ui.main.menu"> 
     <menu 
      id="window" 
      label="Window"> 
     <command 
       commandId="org.eclipse.ui.views.showView" 
       label="Show Progress" 
       style="push"> 
      <parameter 
        name="org.eclipse.ui.views.showView.viewId" 
        value="org.eclipse.ui.views.ProgressView"> 
      </parameter> 
     </command> 
     </menu> 
    </menuContribution> 
</extension> 

但是當我運行我的插件在主菜單中沒有任何反應時,沒有創建「窗口」菜單。任何想法的問題?

可能是與e4xmi應用模型有衝突嗎?

Tahnks通過您的幫助,我在RCP是新:-)

回答

0

org.eclipse.ui.menus只適用於Eclipse 3.X了兼容性模式垃圾收集站。您不能在純e4 RCP中使用任何org.eclipse.ui.xxx擴展點或類。

這意味着您不能在e4應用程序中使用大多數Eclipse 3.x菜單 - 您必須自己從頭開始編寫它們。這同樣適用於現有的編輯和觀點。

要添加一個菜單項以顯示在e4xmi文件中定義的部件,您可以在e4xmi文件中添加一個Handled Menu Item或Direct Menu Item。菜單項的處理程序應該使用EPartServiceshowPart方法來顯示一個部分:

@Inject 
EPartService partService; 

partService.showPart("part id", PartState.Activate); 

但是你又不能用它來顯示現有的進步觀點,因爲這是一個3.x的兼容性視圖。