【发布时间】:2015-11-25 08:05:57
【问题描述】:
我是 Eclipse 中扩展创建的新手。我正在尝试向 Project Explorer 和 Package Explorer 添加相同的上下文菜单。
XXX_label 是菜单,XXX、YYY 和 ZZZ 是命令。
对于Link 中描述的项目资源管理器,我添加了项目资源管理器和包资源管理器的条目。
插件.xml
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
<menu
id="XXX_Project"
label="XXX_label">
</menu>
</menuContribution>
<menuContribution
allPopups="false"
locationURI="popup:XXX_Project?after=additions">
<command
commandId="demoeeeeeeeemenu.XXX"
id="XXX"
label="XXX"
style="push">
<visibleWhen>
<with
variable="activeMenuSelection">
<iterate
ifEmpty="true"
operator="or">
//Only option to get the Project instance in core expression is adapt type!!
<adapt
type="org.eclipse.core.internal.resources.Project">
</adapt>
</iterate>
</with>
</visibleWhen>
</command>
<command
commandId="demoeeeeeeeemenu.YYY"
label="YYY"
style="push">
</command>
<command
commandId="demoeeeeeeeemenu.ZZZ"
label="ZZZ"
style="push">
</command>
</menuContribution>
<menuContribution
allPopups="false"
locationURI="popup:popup:org.eclipse.jdt.ui.PackageExplorer#PopupMenu?after=additions">
<menu
id="XXX_package"
label="XXX_label">
</menu>
</menuContribution>
<menuContribution
allPopups="false"
locationURI="popup:XXX_package?after=additions">
<command
commandId="demoeeeeeeeemenu.XXX"
label="XXX"
style="push">
</command>
<command
commandId="demoeeeeeeeemenu.YYY"
label="YYY"
style="push">
</command>
<command
commandId="demoeeeeeeeemenu.ZZZ"
label="ZZZ"
style="push">
</command>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="demoeeeeeeeemenu.XXX"
name="XXX">
</command>
<command
id="demoeeeeeeeemenu.YYY"
name="YYY">
</command>
<command
id="demoeeeeeeeemenu.ZZZ"
name="ZZZ">
</command>
</extension>
</plugin>
如何消除包资源管理器完成的额外输入? 任何帮助表示赞赏。
编辑: 我认为最好使用 locationURI="popup:org.eclipse.ui.popup.any?after=additions" 作为单个弹出条目,它将在包资源管理器、项目资源管理器和导航器中添加菜单条目。
【问题讨论】:
-
字符串
popup:popup:在 PackageExplorer 贡献中看起来不正确。 -
Greg,如果我删除了一个“弹出窗口:”,那么我将无法在包资源管理器中找到菜单项。
-
你推荐 locationURI="popup:org.eclipse.ui.popup.any?after=additions" 吗?我四处寻找,发现了这个。此 URI 正在工作,而不是两个单独的菜单贡献,在一个菜单贡献中,我只能在项目资源管理器和包资源管理器中获取条目。
-
您可以使用它,它也会将菜单添加到其他弹出窗口中。我相信包资源管理器的 locationURI 只是 'popup:org.eclipse.jdt.ui.PackageExplorer'
-
是的。有了这个,我为我的任务制作了大量的核心表达。如果我只使用'popup:org.eclipse.jdt.ui.PackageExplorer',它可以按我想要的方式工作。谢谢格雷格..
标签: eclipse eclipse-rcp