如何在RCP中隐藏默认菜单?

时间:2012-12-11 12:33:05

标签: eclipse eclipse-plugin rcp

我是Eclipse RCP插件开发的新手。

我用自己的观点编写了一个插件,并在其中添加了透视特定菜单。

我的问题是如何隐藏Eclipse中提供的默认菜单,如编辑,导航,搜索,项目?

我尝试使用'< extension point =“org.eclipse.core.expressions.definitions”>' 并提供我的视图特定条件,以及菜单贡献。

感谢任何帮助。

致以最诚挚的问候,

Mandar Phatak。

2 个答案:

答案 0 :(得分:3)

您需要activities。我当前项目的示例:

<extension
     point="org.eclipse.ui.activities">
  <activity
        id="arm.activity.disabled"
        name="%arm.activity.disabled.name">
     <enabledWhen>
        <with
              variable="selection">
           <count
                 value="-1">
           </count>
        </with>
     </enabledWhen>
  </activity>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.m2e\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.search\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.team\..*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.compare.*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        pattern="org\.eclipse\.help\.ui\.PrefPageHelp.*">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        isEqualityPattern="true"
        pattern="org.eclipse.ui.ide/org.eclipse.ui.preferencePages.Workspace">
  </activityPatternBinding>
  <activityPatternBinding
        activityId="arm.activity.disabled"
        isEqualityPattern="true"
        pattern="org.eclipse.ui.ide/org.eclipse.ui.preferencePages.Perspectives">
  </activityPatternBinding>
</extension>

答案 1 :(得分:1)

一种方法是在您的rcp应用程序中有一个扩展ActionBarAdvisor的类,在类的构造函数中,您可以执行类似这样的操作,例如删除编辑菜单

configurer.getMenuManager().remove(IWorkbenchActionConstants.M_EDIT);

所有常见的eclipse菜单(如edit)都会在上面的类中定义一个常量,为要从应用程序中删除的菜单执行此操作。

这只是一种方法,我相信可能会有其他人,但希望这能得到你所需要的。