Eclipse 如何在PackageExplorer中仅为目录创建弹出菜单项
我正在写Eclispe(开普勒)插件。这个插件的主要目标是在PackageExplorer弹出菜单中添加“在浏览器中打开”项。此项对于目录、包等应可见,但对于文件不可见。我试过这个:Eclipse 如何在PackageExplorer中仅为目录创建弹出菜单项,eclipse,eclipse-plugin,Eclipse,Eclipse Plugin,我正在写Eclispe(开普勒)插件。这个插件的主要目标是在PackageExplorer弹出菜单中添加“在浏览器中打开”项。此项对于目录、包等应可见,但对于文件不可见。我试过这个: <menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer"> <command commandId="pl.com.tt.wide.lms.core.commands.samp
<menuContribution
locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command
commandId="pl.com.tt.wide.lms.core.commands.sampleCommand"
id="pl.com.tt.wide.lms.core.menus.sampleCommand"
mnemonic="S">
<visibleWhen>
<with variable="activeMenuSelection">
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.type" value="org.eclipse.core.resources.FOLDER"/>
</adapt>
</iterate>
</with>
</visibleWhen>
</command>
</menuContribution>
这是行不通的。你对如何做到这一点有什么建议吗?
谢谢您的帮助。我想,首先,我们的想法不是隐藏菜单元素,而是禁用它们。这至少给了用户一个提示,将有一个可用的命令,但不是现在。所以我会用“enableWhen”而不是“visibleWhen”。 否则,您会根据选择奇怪地更改菜单和项目顺序,这可能会增加混乱。尤其是在Eclipse中,您会被困惑所包围。:-)
也许可以看看这个已经存在的插件:包资源管理器不仅使用类型
org.eclipse.core.resources
,而且还使用类型org.ecliplse.jdt.core
查看IPackageFragment
,IPackageFragmentRoot
和IJavaProject
。在或语句中使用它们可能会产生您想要的结果
这就是我的工作原理:
<visibleWhen>
<with variable="activeMenuSelection">
<iterate ifEmpty="false">
<or>
<adapt type="org.eclipse.jdt.core.IJavaProject">
</adapt>
<adapt type="org.eclipse.jdt.core.IPackageFragmentRoot">
</adapt>
<adapt type="org.eclipse.jdt.core.IPackageFragment">
</adapt>
</or>
</iterate>
</with>
</visibleWhen>
嘿,我现在也有同样的问题。我尝试使用adapt type=“org.eclipse.core.resources.IContainer
和IFolder
,但没有成功。到目前为止,我的搜索还没有找到任何解决方案。您找到解决方案了吗?