我的问题可以分为三个部分:
在Eclipse(3.6)中,是否可能通过以下方法隐藏/删除任意上下文菜单项:
- 标准UI?
- 某些现有的插件?
- 自定义插件?
我尝试了方法1和方法2,但没有找到解决方案。如果唯一的选择是创建自定义插件,请问有没有人能够指导我从哪里开始(我有一些Java经验,但没有Eclipse插件开发经验)。
我的问题可以分为三个部分:
在Eclipse(3.6)中,是否可能通过以下方法隐藏/删除任意上下文菜单项:
我尝试了方法1和方法2,但没有找到解决方案。如果唯一的选择是创建自定义插件,请问有没有人能够指导我从哪里开始(我有一些Java经验,但没有Eclipse插件开发经验)。
要隐藏一个菜单项或工具栏按钮:
- 切换到您想要配置的透视图。
- 选择
窗口 > 自定义透视图…
- 打开“菜单可见性”或“工具栏可见性”选项卡。
- 找到要隐藏的项。
- 取消该项旁边的复选框。取消菜单以隐藏其所有子项。
- 点击确定使更改生效。
但这将在出现该项的所有菜单(上下文相关或不相关)中都隐藏它。
因此,它可能不如您通过 GUI 想要的那样精细。
问题在于似乎至少有3种方法可以向UI中添加菜单项和工具栏按钮。使用扩展在 Eclipse 中进行的前几个步骤非常标准。
- 打开
plugin.xml
文件并添加org.eclipse.ui.activities extension
。- 然后创建一个活动节点并为其分配唯一的 ID。
- 接着,创建一个
activityPatternBinding
节点,并使用该活动的唯一 ID 来查找与该活动节点相关联的模式节点。
activityPatternBinding
节点要求您提供 UI 元素 ID 字符串的正则表达式,以便隐藏它。
1/ 使用插件侦察器
第一种方法是使用插件侦察器。
按下 alt-shift-F2 并单击要隐藏的菜单项或工具栏按钮。
如果在“活动操作定义标识符”标题下有ID字符串,则您很幸运。
此项目已使用Command Extension添加,您可以使用此ID作为Activities Extension的模式参数。
但不是所有使用Command Extension添加其ID字符串的项目都会将其ID字符串呈现给插件侦察器。顺便提一下,ID字符串使用句点分隔。
例如,按钮的ID可能是“org.eclipse.ui.navigate.backwardHistory
”。
正则表达式使用句点代表任何字符。幸运的是,用作通配符的句点与实际句点字符匹配,因此如果您不想转义它们,则无需转义它们。我发现如果不转义它们,阅读起来会更容易,而且它几乎不可能导致任何歧义匹配。