java - SWT - TreeViewer - 单选与多选

标签 java eclipse swt eclipse-rcp

请注意使用 Eclipse RCP。

我已使用 CTRL+鼠标单击为现有的树查看器启用了多选。现在我需要为右键单击提供两个菜单:

 One menu item on Single Selection.
 A different menu item for Multiple Selection.

当前通过 plugin.xml 进行的扩展定义可用于单选,其中检查所选对象是否是某个值的instance

如何识别多选?扩展定义中需要检查多选的内容。

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

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

最佳答案

您可以使用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>

关于java - SWT - TreeViewer - 单选与多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49448429/

相关文章:

java - 为什么 TestNG 提示使用 @QAFDataProvider

eclipse - 哪个编辑器用于 Eclipse RCP 项目中的富文本格式 (WYSIWYG)?

java - 优先队列排序

Java TCP 服务器在发送所有行时收到来自客户端的每一行

Android/Eclipse/xml 文件过早结束

android - jtwitter 不发布到 twitter,应用程序崩溃

java - 配置嵌入式 Tomcat7 以使用嵌入在可执行 jar 中的 keystore 文件

java - 从 eclipse 插件打开操作系统默认文件资源管理器?

text - swt文本验证

java - 打算高效缓存多个值时,Guava缓存应该如何实现?