/**
* output package name
*/
package com.kingdee.eas.testunit.client;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.SelectorItemCollection;
import com.kingdee.bos.metadata.entity.SelectorItemInfo;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.bos.ctrl.swing.KDTree;
import com.kingdee.bos.ctrl.swing.tree.DefaultKingdeeTreeNode;
import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
import com.kingdee.eas.basedata.org.AdminOrgUnitCollection;
import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
/**
* output class name
*/
public class CompanyOrgTreeUI extends AbstractCompanyOrgTreeUI
{
/**
*
*/
private static final long serialVersionUID = 1576812014546125888L;
private static final Logger logger = CoreUIObject.getLogger(CompanyOrgTreeUI.class);
/**
* output class constructor
*/
public CompanyOrgTreeUI() throws Exception
{
super();
}
@Override
public void onLoad() throws Exception
{
super.onLoad();
loadCompanyOrgTree();
}
private void loadCompanyOrgTree() throws Exception
{
long start = System.currentTimeMillis();
AdminOrgUnitInfo adminOrgUnitInfo = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitInfo(new ObjectUuidPK("00000000-0000-0000-0000-000000000000CCE7AED4"));
DefaultKingdeeTreeNode root = new DefaultKingdeeTreeNode(adminOrgUnitInfo);
root.setCheckBoxVisible(false);
Map<String,List<AdminOrgUnitInfo>> adminOrgMap = getAdminOrgUnitCollection();
initAdminOrgTree(root,adminOrgMap);
KDTree tree = new KDTree(root);
this.kDTreeView.setTree(tree);
long end = System.currentTimeMillis();
System.out.println(end-start);
}
private void initAdminOrgTree(DefaultKingdeeTreeNode parentNode,Map<String,List<AdminOrgUnitInfo>> adminOrgMap) throws Exception
{
AdminOrgUnitInfo parentAdminOrgInfo = (AdminOrgUnitInfo)parentNode.getUserObject();
List<AdminOrgUnitInfo> childAdminOrgList = adminOrgMap.get(parentAdminOrgInfo.getId().toString());
if(childAdminOrgList!=null && childAdminOrgList.size()>0)
{
for(int i=0,size=childAdminOrgList.size();i<size;i++)
{
AdminOrgUnitInfo childAdminInfo = childAdminOrgList.get(i);
DefaultKingdeeTreeNode childNode = new DefaultKingdeeTreeNode(childAdminInfo);
childNode.setCheckBoxVisible(false);
parentNode.add(childNode);
initAdminOrgTree(childNode,adminOrgMap);
}
}
}
private Map<String,List<AdminOrgUnitInfo>> getAdminOrgUnitCollection() throws Exception
{
Map<String,List<AdminOrgUnitInfo>> adminOrgMap = new HashMap<String,List<AdminOrgUnitInfo>>();
EntityViewInfo evi = new EntityViewInfo();
SelectorItemCollection sic = new SelectorItemCollection();
sic.add(new SelectorItemInfo("id"));
sic.add(new SelectorItemInfo("name"));
sic.add(new SelectorItemInfo("parent.id"));
AdminOrgUnitCollection adminOrgUnitColl = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitCollection(evi);
if(adminOrgUnitColl!=null)
{
for(int i=0,size=adminOrgUnitColl.size();i<size;i++)
{
AdminOrgUnitInfo adminOrgUnitInfo = adminOrgUnitColl.get(i);
if(adminOrgUnitInfo.getParent()!=null && adminOrgUnitInfo.getParent().getId()!=null)
{
String parentId = adminOrgUnitInfo.getParent().getId().toString();
List<AdminOrgUnitInfo> adminOrgList = adminOrgMap.get(parentId);
if(adminOrgList==null)
{
adminOrgList = new ArrayList<AdminOrgUnitInfo>();
adminOrgMap.put(parentId, adminOrgList);
}
adminOrgList.add(adminOrgUnitInfo);
}
}
}
return adminOrgMap;
}
}
用递归构建组织树
最新推荐文章于 2024-07-26 08:00:19 发布