SWT - TreeViewer - 单选与多选

时间:2018-03-23 11:14:09

标签: java eclipse swt eclipse-rcp

请注意使用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>

我希望我已正确解释了这个问题。

1 个答案:

答案 0 :(得分:2)

您可以使用count元素测试选择尺寸

选择了单项:

 <with variable="org.eclipse.ui.selection">
    <count value="1" />
    <iterate ifEmpty="false">
          ....
    </iterate>
 </with>

选择了两个或更多项目

 <with variable="org.eclipse.ui.selection">
    <count value="(2-" />
    <iterate ifEmpty="false">
          ....
    </iterate>
 </with>