/**
* 全选复选,当树下的子节点全部被选中后,父节点选中为true
* @param treeitem
* @param bool
*/
public void checkOrCleanAll(TreeItem treeitem,boolean bool){
TreeItem parentItem = treeitem.getParentItem();//获取所有传入节点的父节点.
if(parentItem != null)
{
TreeItem[] treeItems = parentItem.getItems();//获取所有传入节点的兄弟节点.
boolean booled = true;
for(int i = 0 ; i < treeItems.length ; i ++)
{
TreeItem brotherItem = treeItems[i];
if(brotherItem.getChecked() != bool)//验证兄弟节点是否一样
{
booled =false;
break;
}
}
if (bool && booled)//如果是选中, 并且全部一样, 才会去设置上级节点选中.
{
parentItem.setChecked(bool);
checkOrCleanAll(parentItem,bool);
}
if(!bool)//如果不是选中. 可能取消所有上级节点.
{
parentItem.setChecked(bool);
checkOrCleanAll(parentItem,bool);
}
}
}
/**
* 选中上级节点,此节点下的所有子节点都为true
* 取消选中上级节点,此节点下的所有子节点都为false
* @param parentItem
* @param bool
*/
public void selectOrClean(TreeItem parentItem,boolean bool){
//获取当前节点的所有子节点,
TreeItem[] items = parentItem.getItems();
for(int i = 0;i < items.length; i ++)
{
TreeItem item = items[i];
item.setChecked(bool);
selectOrClean(item, bool);
}
}
public void checkParent(TreeItem parent) {
List<Map<String,Object>> checkList = getResultList();
//如果返回列表为空,表明没有选择数据,退出递归
if(checkList.size()!=0)
{
for(TreeItem child : parent.getItems()) {
//循环列表
for(Map<String,Object> childmap:checkList)
{
//节点名称与列表名称相同,设置其check为true;
String name = ""+childmap.get("name");
//if ( name.equals(parent.getText())) {
//1,子节点有一个为【部分选中的】,直接设置父节点为【部分选中的】。
//2,子节点不完全相同,说明【部分选中的】。
parent.setChecked(true);
// }
}
}
}else
{
return;
}
checkParent(parent.getParentItem());
}
public void checkChildren(TreeItem[] children) {
List<Map<String,Object>> checkList = getResultList();
//如果返回列表为空,表明没有选择数据,退出递归
if(checkList.size()!=0)
{
for(TreeItem child : children) {
//循环列表
for(Map<String,Object> childmap:checkList)
{
//节点名称与列表名称相同,设置其check为true;
String name = ""+childmap.get("name");
//if ( name.equals(child.getText())) {
//1,子节点有一个为【部分选中的】,直接设置父节点为【部分选中的】。
//2,子节点不完全相同,说明【部分选中的】。
child.setChecked(true);
// }
checkChildren(child.getItems());
}
}
}
}
}
* 全选复选,当树下的子节点全部被选中后,父节点选中为true
* @param treeitem
* @param bool
*/
public void checkOrCleanAll(TreeItem treeitem,boolean bool){
TreeItem parentItem = treeitem.getParentItem();//获取所有传入节点的父节点.
if(parentItem != null)
{
TreeItem[] treeItems = parentItem.getItems();//获取所有传入节点的兄弟节点.
boolean booled = true;
for(int i = 0 ; i < treeItems.length ; i ++)
{
TreeItem brotherItem = treeItems[i];
if(brotherItem.getChecked() != bool)//验证兄弟节点是否一样
{
booled =false;
break;
}
}
if (bool && booled)//如果是选中, 并且全部一样, 才会去设置上级节点选中.
{
parentItem.setChecked(bool);
checkOrCleanAll(parentItem,bool);
}
if(!bool)//如果不是选中. 可能取消所有上级节点.
{
parentItem.setChecked(bool);
checkOrCleanAll(parentItem,bool);
}
}
}
/**
* 选中上级节点,此节点下的所有子节点都为true
* 取消选中上级节点,此节点下的所有子节点都为false
* @param parentItem
* @param bool
*/
public void selectOrClean(TreeItem parentItem,boolean bool){
//获取当前节点的所有子节点,
TreeItem[] items = parentItem.getItems();
for(int i = 0;i < items.length; i ++)
{
TreeItem item = items[i];
item.setChecked(bool);
selectOrClean(item, bool);
}
}
public void checkParent(TreeItem parent) {
List<Map<String,Object>> checkList = getResultList();
//如果返回列表为空,表明没有选择数据,退出递归
if(checkList.size()!=0)
{
for(TreeItem child : parent.getItems()) {
//循环列表
for(Map<String,Object> childmap:checkList)
{
//节点名称与列表名称相同,设置其check为true;
String name = ""+childmap.get("name");
//if ( name.equals(parent.getText())) {
//1,子节点有一个为【部分选中的】,直接设置父节点为【部分选中的】。
//2,子节点不完全相同,说明【部分选中的】。
parent.setChecked(true);
// }
}
}
}else
{
return;
}
checkParent(parent.getParentItem());
}
public void checkChildren(TreeItem[] children) {
List<Map<String,Object>> checkList = getResultList();
//如果返回列表为空,表明没有选择数据,退出递归
if(checkList.size()!=0)
{
for(TreeItem child : children) {
//循环列表
for(Map<String,Object> childmap:checkList)
{
//节点名称与列表名称相同,设置其check为true;
String name = ""+childmap.get("name");
//if ( name.equals(child.getText())) {
//1,子节点有一个为【部分选中的】,直接设置父节点为【部分选中的】。
//2,子节点不完全相同,说明【部分选中的】。
child.setChecked(true);
// }
checkChildren(child.getItems());
}
}
}
}
}