Eclipse使用visibleWhen显示特定类型的上下文菜单

时间:2017-02-14 11:37:40

标签: java eclipse eclipse-rcp

所以我正在开发一个Eclipse View,它使用org.eclipse.swt.widgets.Tree可视化my.application.Term我的自定义类型CheckStateChangedEvent.ContainerCheckedTreeViewerTerm是一个扩展org.eclipse.emf.ecore.EObject的接口。

我想仅在点击Term时显示包含多个命令的上下文菜单。

<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>

我尝试了几项内容,例如遗漏<iterate>元素或checkEnabled。但是,独立于我正在尝试的内容,每次我在视图中右键单击时,上下文菜单都会显示,而不仅仅是在点击Term时。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

要使用diversity(df[,4:50]),您的树必须是视图的选择提供者。你设置它:

activeMenuSelection

其中getSite().setSelectionProvider(provider); 实现provider。 JFace ISelectionProvider已经实现TreeViewer所以这是通常使用的。如果您只是使用ISelectionProvider,则必须自己编写。