Java Eclipse使用visibleWhen显示特定类型的上下文菜单
因此,我正在开发一个Eclipse视图,它使用Java Eclipse使用visibleWhen显示特定类型的上下文菜单,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,因此,我正在开发一个Eclipse视图,它使用CheckStateChangeDevelopent.ContainerCheckedTreeViewer来可视化我的自定义类型my.application.Term的org.Eclipse.swt.widgets.TreeTerm是扩展org.eclipse.emf.ecore.EObject的接口 我只想在单击术语时显示包含多个命令的上下文菜单 <menuContribution locationURI="popup:my.appl
CheckStateChangeDevelopent.ContainerCheckedTreeViewer来可视化我的自定义类型my.application.Term
的org.Eclipse.swt.widgets.Tree
Term
是扩展org.eclipse.emf.ecore.EObject
的接口
我只想在单击术语时显示包含多个命令的上下文菜单
<menuContribution
locationURI="popup:my.application.View">
<command
commandId="my.application.renameterm"
tooltip="Rename this term">
<visibleWhen
checkEnabled="false">
<with variable="activeMenuSelection">
<iterate
ifEmpty="false">
<instanceof value="my.application.Term"/>
</iterate>
</with>
</visibleWhen>
</command>
</menuContribution>
我尝试过几种方法,比如省略
元素或选中启用的。但是,与我尝试的内容无关,上下文菜单显示每次我在视图中右键单击时,而不仅仅是在单击术语时
我在这里遗漏了什么?要使用activeMenuSelection
您的树必须是视图的选择提供程序。您可以将其设置为:
getSite().setSelectionProvider(provider);
其中provider
实现ISelectionProvider
。JFaceTreeViewer
已经实现了ISelectionProvider
,因此这是通常使用的。如果您只是使用Tree
,您将不得不编写自己的 我可能在我的问题中漏掉了这个细节(只是添加了它),但我已经在使用org.eclipse.ui.dialogs.container-checkedtreeviewer
,这是一个TreeViewer
。你有没有打电话给setSelectionProvider
?树内容提供程序返回什么作为树的对象-这些对象将由instanceof
进行测试?Stephan,作为旁白,Shift+F10是否成功打开了上下文菜单?