【发布时间】:2018-03-23 11:14:08
【问题描述】:
请注意使用了 Eclipse RCP。
我已经为现有的树查看器启用了使用 CTRL+鼠标单击的多选。现在我需要为右键单击提供两个菜单:
One menu item on Single Selection.
A different menu item for Multiple Selection.
目前通过plugin.xml 的扩展定义可用于单选,其中检查选定对象是否为instanceof 某个值。
如何识别多选?扩展定义中多选需要检查什么。
<definition
id="com.sample.rightclickmenu.singleselect.id.expression">
<with
variable="org.eclipse.ui.selection">
<iterate
ifEmpty="false"
operator="and">
<or>
<instanceof
value="com.sample.ExampleNGroup"> -> Where N=1,2,..
</instanceof>
</or>
</iterate>
</with>
</definition>
当我在不同的N之间多选时,扩展定义应该是什么。
<definition
id="com.sample.rightclickmenu.multiselect.id.expression">
<with
variable="org.eclipse.ui.selection">
<iterate
ifEmpty="false"
operator="and">
<or>
<instanceof
value=??> -> what needs to be the value here.
</instanceof>
</or>
</iterate>
</with>
</definition>
我希望我已经正确解释了这个问题。
【问题讨论】:
-
您正在遍历选择中的每个项目,因此 instanceof 测试可能是相同的 - 此时您只是测试选择中的单个项目。由于您已指定
operator="and",表达式将检查选择中的所有项目是否与 instanceof 匹配 - 这是您想要的吗? -
我已经给出了一个示例定义以供澄清。我所需要的只是区分单选与多选。值不能取决于组的类型,因为可能是不同组的组合。
标签: java eclipse swt eclipse-rcp