checktree

public class CheckTreeWrite {
 private static DaoFactory dao = HibernateDaoFactory.getDaoFactory();
 static String scripthead = " ";
 static String scriptend = " ";
 static String scriptbody = "";
 
 public static void clear() {
  scripthead = " ";
  scriptend = " function changeAllChild(parent){for(var i=0;i<parent.childNodes.length;i++){ parent.childNodes[i].getUI().onRender();  parent.childNodes[i].getUI().toggleCheck (parent.getUI().isChecked ());  changeAllChild(parent.childNodes[i]) }   };";
  scriptend += " function changeAllParent(child){if(child==root){return;}; if(child.getUI().checkbox.checked==true){ child.parentNode .getUI().checkbox.checked=true;}  changeAllParent(child.parentNode) ;   };";
  scriptend += " function removeAllcheckchange(parent){for(var i=0;i<parent.childNodes.length;i++){  parent.removeListener(/"checkchange/",changebottom ); removeAllcheckchange(parent.childNodes[i]) }   };";
  scriptend += " function addAllcheckchange(parent){for(var i=0;i<parent.childNodes.length;i++){  parent.addListener(/"checkchange/",changebottom ); addAllcheckchange(parent.childNodes[i]) }   };";
  scriptbody = "";
 }
 
 
 public static String getCheckBoxTree(List<TreeItem> list, String rootname,
   String url) {
  clear();
  if (rootname == null || rootname.equals("")) {
   rootname = "root";
  }

  if (url == null || url.equals("")) {
   url = "javascript:void(0)";
  }
  scriptbody += "var root=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(root)  } },checked:false,id:/"root/",text:/""
    + " "+rootname + " /",href:'" + url
    + "',hrefTarget:'rightFrame',expanded:true});/n";

  TreeItem it;
  
  
  HashMap deptidMap=new HashMap();
  for (int i = 0; i < list.size(); i++) {
   it = (TreeItem) list.get(i);
  
   deptidMap.put(it.getItemId(), it);//放入hashMap,用于子结点引用
   if (it.getItemLev() == 1) {
    AddTreeItem(it,false);//根结点

   } else {
    
      AddTreeItem(it,(TreeItem)deptidMap.get(it.getItemRef()),false);
    

   }

  }

  return scripthead + scriptbody + scriptend;
 }
 
 
 public static TreeItem AddTreeItem(TreeItem po, boolean tar) {
  scriptbody += "var obj" + po.getItemId()
  + "=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(obj" + po.getItemId()+")  } },checked:false,id:/"" + po.getItemId()
  + "/",text:/" "+po.getItemName() + " /",href:/"" + po.getUrl();
  if (tar)
   scriptbody += "/",hrefTarget:'rightFrame'});/n";
  else
   scriptbody += "/"});/n";
  
  scriptbody += "root.appendChild(obj" + po.getItemId() + ");/n";
  
  //自身有子结点列表
  if(po.getTreeItems()!=null&&po.getTreeItems().size()>0)
  {
   for(int i=0;i<po.getTreeItems().size();i++)
   {
   AddTreeItem((TreeItem)po.getTreeItems().get(i),po, false);
   }
  }
  
  return po;
  
 }
 
 public static TreeItem AddTreeItem(TreeItem po, TreeItem parent, boolean tar) {
  scriptbody += "var obj" + po.getItemId()
  + "=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(obj" + po.getItemId()+")  } },checked:false,id:/"" + po.getItemId()
  + "/",text:/""+po.getItemName() + "/",href:/"" + po.getUrl();
  if (tar)
   scriptbody += "/",hrefTarget:'rightFrame'});/n";
  else
   scriptbody += "/"});/n";
  
  scriptbody += "obj" + parent.getItemId() + ".appendChild(obj"
  + po.getItemId() + ");/n";
  
  
  //自身有子结点列表
  if(po.getTreeItems()!=null&&po.getTreeItems().size()>0)
  {
   for(int i=0;i<po.getTreeItems().size();i++)
   {
   AddTreeItem((TreeItem)po.getTreeItems().get(i),po, false);
   }
  }
  
  
  return po;
  
 }
 


 
 
 
 
 
 
}
--------------------------

 

Ext.onReady(function(){

 var root=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(root)  } },checked:false,id:"root",text:" 模块列表 ",href:'/sys/sysnodeAction.action',hrefTarget:'rightFrame',expanded:true});
var obj01=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(obj01)  } },checked:false,id:"01",text:" 系统管理 ",href:"javascript:void(0)"});
root.appendChild(obj01);
var obj02=new Ext.tree.TreeNode({listeners:{        'checkchange':function changebottom()         {  changeAllChild(obj02)  } },checked:false,id:"02",text:" 基础资料 ",href:"javascript:void(0)"});
root.appendChild(obj02);
 
 
  tree=new Ext.tree.TreePanel({
  waitTitle : '请稍候',
     waitMsg : '正在加载......',
renderTo:document.body,
root:root,
width:document.body.scrollWidth,
height:window.screen.availHeight 
});


 
tree.doLayout( );
 
 //接下来,初始化设置
   var frameobj=opener.parent.rightFrame;
             var selectRows = frameobj.grid.getSelectionModel().getSelections();
             var roleid=selectRows[0].get('roleid');
              
             var olddata=getSysRoleLimitsList(roleid);//数据库得到的数据
       
             olddata=eval("["+olddata+"]");
             
          
            changeAllChild(root);//这样,所在结点都会被加载
           removeAllcheckchange(root);
            for(var j=0;j<olddata.length;j++)
              
               {
          
            var lastobj=eval("obj"+olddata[j][0]+"$"+olddata[j][1]);
            
          
            var check;
            if(olddata[j][2]=='0')
            {
            check=false;
            }
            else
            {
            check=true;
            }
           
            //lastobj.getUI().toggleCheck(check);
            lastobj.getUI().checkbox.checked=check;
            changeAllParent(lastobj);
            
          
          
               }
           addAllcheckchange(root);


});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值