是否可以隐藏/删除Eclipse中的任意上下文菜单项(3.6)

时间:2010-08-14 06:35:03

标签: eclipse eclipse-plugin contextmenu eclipse-3.6

我的问题可分为三个部分:

是否可以通过...

隐藏/删除Eclipse(3.6)中的任意上下文菜单项
  1. 标准用户界面?
  2. 一些现有的插件?
  3. 自定义插件?
  4. 我没有找到通过方法1和方法2执行此操作的方法。如果唯一的选择是创建自定义插件,是否有人可以将我推向正确的方向从哪里开始(我有一些Java经验,但不是Eclipse插件)。

1 个答案:

答案 0 :(得分:19)

您可以通过标准GUI隐藏菜单或菜单条目:see help

  

隐藏菜单项或工具栏按钮:

     
      
  • 切换到要配置的透视图。
  •   
  • 选择Window > Customize Perspective....
  •   
  • 打开“菜单可见性”或“工具栏可见性”选项卡。
  •   
  • 找到要隐藏的项目。
  •   
  • 取消选中该项旁边的复选框。取消选中一个菜单以隐藏其所有子项。
  •   
  • 单击“确定”以使更改生效。
  •   

但是,这将隐藏所有菜单(上下文与否)中的此条目。
因此,它可能不像您想要的那样精细化。


您也可以尝试through a plugin(另请参阅Menu contribution

  

第一步是在Eclipse中使用扩展的非常标准。

     
      
  • 打开plugin.xml文件并添加org.eclipse.ui.activities extension
  •   
  • 然后创建一个活动节点并为其指定唯一ID。
  •   
  • 然后创建一个activityPatternBinding节点并使用活动的唯一ID来查找活动节点的模式节点。
      activityPatternBinding节点要求您为要隐藏的UI元素的ID字符串提供正则表达式。
  •   
     

问题在于,似乎至少有3种方式将菜单项和工具栏按钮添加到UI。

  • 第一种方法是通过较新的Command / Menu Extensions。
  • 第二种方式是通过较旧的ActionSet扩展。
  • 然后还有其他UI元素似乎硬编码到Workbench中,没有ID字符串,无法使用Activities Extension隐藏。幸运的是,第三种UI元素很少。

考虑到你在谈论最新的Eclipse,我只会复制第一种方式:

  

1 /使用Plug-In Spy

     

第一种方法是使用Plug-In Spy   按 alt - shift - F2 ,然后单击要隐藏的菜单项或工具栏按钮。
  如果标题“主动行动定义标识符”下面有一个ID字符串,那么你很幸运   使用命令扩展添加了此项,您可以使用此ID作为活动扩展的模式参数   但并非所有使用命令扩展添加的项目都将其ID字符串显示给插件间谍。

     

作为旁注,ID字符串是句点分隔的   例如,按钮的ID可能是“org.eclipse.ui.navigate.backwardHistory”   正则表达式使用句点代表任何字符。幸运的是,用作外卡的时间段与实际时期字符匹配,因此如果您不愿意,则无​​需逃避它们。我发现如果它们没有被转义就会更容易阅读,并且它不太可能导致任何模糊的匹配。