class="java"> /** * 根据用户编号生成用户包括的设备类型权限复选框 * @param personId 用户编号 * @return 用户权限复选框 * @throws Exception 抛出的异常 */ public String bindCheckBox(int personId) throws Exception{ //根据用户得到用户包括的设备类型 List personContainDeviceType = this.executeQueryForList("UserTypeSpace.getUserType", personId); //获取所有的设备类型 List deviceType = this.executeQueryForList("ZequipSpace.getZequipAndZequipGroup",null); List<String> allDeviceTypeChecked = new ArrayList<String>(); String checkbox = ""; /** * 1 如果personContainDeviceType的元素为0,那么显示所有的设备类型复选框并且不被选中 * 2 如果personContainDeviceType的元素不为0,那么循环用户包括的设备类型和所有的 * 设备类型,取出设备信息编号进行判断,如果二者的设备信息编号相等,那么就让该设备类型选中。 * 3 让所有的设备类型全部选中,从其中删除刚才相等的设备信息编号的设备类型,得到用户不 * 包括的设备类型,将用户不包括的设备类型全部不选中,再加上刚才相等的设备信息编号选中 * 的设备类型整体生成设备类型复选框。 */ if(personContainDeviceType.size() == 0){ for(int i=0;i<deviceType.size();i++){ ZequipVO zequip = (ZequipVO)deviceType.get(i); checkbox += "<input type='checkbox' id='patrolDiv"+zequip.getZequipId()+"' name='zequipsInfo' value='"+zequip.getZequipId()+"' onclick=checkFunction("+zequip.getZequipId()+",'patrolDiv"+zequip.getZequipId()+"') />"+zequip.getZequipGroup().getNameLoc()+";"; } //用于换行显示 List<String> checkList = new ArrayList<String>(); String[] array_checkbox = checkbox.split(";"); for(int i=0;i<array_checkbox.length;i++){ checkList.add(array_checkbox[i]); } String checkboxInfo = ""; for(int i=0;i<checkList.size();i++){ if((i+1)%4==0){ checkboxInfo += checkList.get(i)+";<br>"; }else{ checkboxInfo += checkList.get(i)+";"; } } return checkboxInfo; }else{ for(int i=0;i<deviceType.size();i++){ ZequipVO zequip = (ZequipVO)deviceType.get(i); for(int j=0;j<personContainDeviceType.size();j++){ UserTypeVO userType = (UserTypeVO)personContainDeviceType.get(j); if(userType.getZequipId().getZequipId() == zequip.getZequipId()){ checkbox += "<input type='checkbox' id='patrolDiv"+userType.getZequipId().getZequipId()+"' name='zequipsInfo' value='"+userType.getZequipId().getZequipId()+"' onclick=checkFunction("+userType.getZequipId().getZequipId()+",'patrolDiv"+userType.getZequipId().getZequipId()+"') checked />"+zequip.getZequipGroup().getNameLoc()+";"; } } allDeviceTypeChecked.add("<input type='checkbox' id='patrolDiv"+zequip.getZequipId()+"' name='zequipsInfo' value='"+zequip.getZequipId()+"' onclick=checkFunction("+zequip.getZequipId()+",'patrolDiv"+zequip.getZequipId()+"') checked />"+zequip.getZequipGroup().getNameLoc()+";"); } String[] checked = checkbox.split(";"); for(int k=0;k<checked.length;k++){ if(allDeviceTypeChecked.contains(checked[k]+";")){ allDeviceTypeChecked.remove(checked[k]+";"); } } String result = ""; for(int e=0;e<allDeviceTypeChecked.size();e++){ result += allDeviceTypeChecked.get(e); } if(allDeviceTypeChecked.size()!=0){ result = result.replace("checked", ""); } //用于换行显示 List<String> checkList = new ArrayList<String>(); String[] array_checkbox = (checkbox+result).split(";"); for(int i=0;i<array_checkbox.length;i++){ checkList.add(array_checkbox[i]); } String checkboxInfo = ""; for(int i=0;i<checkList.size();i++){ if((i+1)%4==0){ checkboxInfo += checkList.get(i)+";<br>"; }else{ checkboxInfo += checkList.get(i)+";"; } } return checkboxInfo; } }