是不是很神奇?

treeViewer.addCheckStateListener(new ICheckStateListener() {

            @Override
public void checkStateChanged(CheckStateChangedEvent event) {
// TODO Auto-generated method stub
if (event.getChecked()) {
CheckboxTreeViewer viewer = (CheckboxTreeViewer) event.getSource();
//选中:设置下级菜单选中
viewer.setSubtreeChecked(event.getElement(), true);
//选中:如果是子集菜单,且同级菜单全是选中的时候设置parent选中
//同样如果此时parent所在的同级菜单全选中做相应的迭代处理
//TODO:获取所有选中的项,比较绝对路径 } else {
CheckboxTreeViewer viewer = (CheckboxTreeViewer) event.getSource();
//不选中:下级目录菜单全不选中
Layer file = (Layer) event.getElement();
viewer.setSubtreeChecked(file, false);
// //不选中:如果父级菜单是选中不能设置为选中
// Layer parent = file.getParentFile();
// //这里需要注意如果是顶级菜单不再迭代设置,否则将会空指针
// if (parent.exists() && !parent.getAbsolutePath().equals(projectRoot)) {
// setParentUnchecked(viewer, file.getParentFile());
// }
}
}
});

效果如下:

当选中上级菜单则下级菜单会自动选中:

当取消了上级菜单的选中状态,下级菜单会自动取消;

SWT的CheckBoxTreeView的上级菜单与下级菜单的选中的实现的更多相关文章

  1. C# winform ListView 的右键菜单的下级菜单的选项视情况禁用方法

    ListView 和右键菜单例如以下图: 要实现功能是: 1.用户状态为[活动]时,改动用户状态为[活动]禁用,反之则反. 2.而且仅仅实用户状态为[非活动]时,[删除学员用户]才是可用状态. 功能非 ...

  2. java查询几个菜单下的所有下级菜单

    需求: 假如有几个一级菜单,一级菜单下面有几个二级菜单,二级菜单下又还有三级菜单.现在要求一级菜单里面的几个设置为无效,将不显示在前端.现在需要的是查询出一级菜单下面所有的菜单,包括二级,三级菜单 原 ...

  3. DIY福音:Firefox菜单及右键菜单ID大全

    每一个折腾Firefox的Diyer都是上辈子折翼的天使,致自己! 打磨Firefox界面的时候最多的就隐藏一些平常根本用不上的一些菜单,常规的做法就是安装DOM Inspector扩展右键查找大法寻 ...

  4. ASP.NET MVC动态生成网站菜单及子菜单

    在开发ASP.NET MVC网站时,Insus.NET想实现动态产生网站的主菜单及子菜单. 你需要在网站管理后台管理此2张表(Menu,SubMenu)的信息,添加,删除,编辑,更新等. Sequen ...

  5. Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单

    在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介 ...

  6. Cocos2d-JS中的精灵菜单和图片菜单

    精灵菜单的菜单项类是cc.MenuItemSprite,图片菜单的菜单项类是cc.MenuItemImage.由于cc.MenuItemImage继承于cc.MenuItemSprite,所以图片菜单 ...

  7. 实例介绍Cocos2d-x精灵菜单和图片菜单

    精灵菜单类是MenuItemSprite,图片菜单类是MenuItemImage.由于MenuItemImage继承于MenuItemSprite,所以图片菜单也属于精灵菜单.为什么叫精灵菜单呢?那是 ...

  8. Android 自定义View修炼-Android 实现自定义的卫星式菜单(弧形菜单)View

    一.总述 Android 实现卫星式菜单也叫弧形菜单的主要要做的工作如下:1.动画的处理2.自定义ViewGroup来实现卫星式菜单View (1)自定义属性       a. 在attrs.xml中 ...

  9. <Win32_16>来看看标准菜单和右键菜单的玩法

    日常应用中,菜单主要分为两种:(1) 标准菜单(处于应用程序菜单栏处的菜单)    (2)右键快捷菜单 几乎你所见过或使用过的软件中,都有它俩儿 为应用程序添加它们的基本步骤: (1)用代码或者IDE ...

随机推荐

  1. find-a-jar-file-given-the-class-name

    Save this as findclass.sh (or whatever), put it on your path and make it executable: #!/bin/sh find ...

  2. Computational Geometry Template

    顿时觉得神清气爽!! #include <iostream> #include <math.h> #define eps 1e-8 #define zero(x) (((x)& ...

  3. ListCtrl控件着色

    最近在写一款山寨的反病毒软件,大致功能已经实现,还有一些细小的环节需要细化. 其中,在界面编程中,就用到了给ListCtrl控件着色,查看了网上一些文章,终于实现了. 其实说白了,原理很简单,就是Li ...

  4. NumPy简明教程

    源地址:http://blog.csdn.net/sunny2038/article/details/9002531 http://blog.csdn.net/sunny2038/article/de ...

  5. 循环获取json对象的属性名

    今天做项目遇到一个难题,asp.net 项目,数据库中一个表有八十多个字段,我已经在前台将表转化为了json字符数组,我要在前台循环这八十多个字段,我只能根据属性名来处理,一筹莫展,最终解决,收益颇多 ...

  6. android studio 9.png 报错

    Eclipse里能正常运行,但是导入到Android Studio里就报如下的错误 百度了下,说有两种解决办法一种是改后缀名,还有一种是重新在Android Studio里画一下点9图片.但是这个项目 ...

  7. Androidclient推断server是否开启 HttpHostException解决方式

    Android推断服务器是否开启,试了非常多方法都不行(若server未开启会卡在HttpResponse那),有人说高版本号的Android程序不同意在主线程中訪问网络(主线程中能够读写网络流)有待 ...

  8. php中实现快排与冒泡排序

    快排 <?php function quicksort($str){ if(count($str)<=1) return $str;//如果个数不大于一,直接返回 $key=$str[0] ...

  9. OCA读书笔记(9) - 管理数据同步

    9.Managing Data Concurrency 描述锁机制以及oracle如何管理数据一致性监控和解决锁冲突 管理数据的并发--管理锁数据的不一致:脏读更改丢失幻影读 脏读:数据是指事务T2修 ...

  10. 开发腾讯移动游戏平台SDK Android版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...