2017-03-16 75 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的兼容性视图。