step 9 构造 树结构 类
java 代码
- /**
- * 新建地理信息树结构
- */
- package com.fzfx88.common.tree;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.fzfx88.common.util.StringUtility;
- import com.fzfx88.base.service.GeographyService;
- import com.fzfx88.po.base.DimGeography;
- /**
- * @author huguoqing
- *
- */
- public class GeographyNewTree {
- private String onClick;
- private String orgTopName;
- private Integer rootId;
- private String pattern;
- private List selectedIds;
- private GeographyTreeViewManager tvmOrg;
- private List selectedOrgIdList;
- private String clickTarget;
- private String treeItemHref;
- private String treeItemClick;
- public GeographyNewTree()
- {
- selectedIds = new ArrayList();
- tvmOrg = null;
- }
- protected void createTree()
- {
- try
- {
- GeographyService service = new GeographyService();
- List graphyList = service.queryGeography();
- tvmOrg = getTree(graphyList);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- /**
- *
- * @param graphyList
- * @return
- */
- protected GeographyTreeViewManager getTree(List graphyList)
- {
- GeographyTreeViewManager tvm;
- if(orgTopName == null || orgTopName.trim().equals(""))
- {
- tvm = new GeographyTreeViewManager();
- } else
- {
- GeographyTreeItem rootItem = new GeographyTreeItem("0", getItemText("0", "0", orgTopName), orgTopName);
- tvm = new GeographyTreeViewManager(rootItem);
- }
- // String curSiteID = "";
- List rootIdList = new ArrayList();
- Map graphyMap = new HashMap();
- for(int i = 0; i < graphyList.size(); i++)
- {
- DimGeography geography = (DimGeography)graphyList.get(i);
- graphyMap.put(geography.getId(),geography);
- //判断是否是总公司
- if(geography.getGeoTreeCode().equalsIgnoreCase("0")){
- rootIdList.add(geography.getId());
- }
- //if(org.getOrgTreeCode().equalsIgnoreCase(Constants.ORG_TYPE_TOP_IDT)){
- // rootIdList.add(org.getId());
- // }
- }
- if(rootId != null && graphyMap.containsKey(rootId))
- {
- rootIdList.clear();
- rootIdList.add(rootId);
- }
- Map mapGeography = new HashMap();
- GeographyTreeItem graphyItem = null;
- for(int i = 0; i < rootIdList.size(); i++)
- {
- DimGeography geography = (DimGeography)graphyMap.get(rootIdList.get(i));
- graphyItem = new GeographyTreeItem("0", getItemText(geography.getId().toString(), "0", geography.getGeographyName()), "");
- mapGeography.put(geography.getId() + "###", graphyItem);
- tvm.addItem(graphyItem);
- }
- for(int i = 0; i < graphyList.size(); i++)
- {
- DimGeography graphy = (DimGeography)graphyList.get(i);
- if(!(graphy.getGeoTreeCode().equalsIgnoreCase("0")))
- {
- String graphyId = graphy.getId().toString();
- GeographyTreeItem parentItem = (GeographyTreeItem)mapGeography.get(graphy.getParentGeo() + "###");
- GeographyTreeItem thisItem = new GeographyTreeItem(graphyId, getItemText(graphyId, graphyId, graphy.getGeographyName()), graphy.getGeographyName());
- if(parentItem != null)
- {
- parentItem.addChild(thisItem);
- thisItem.parent = parentItem;
- mapGeography.put(graphyId + "###", thisItem);
- }
- }
- }
- if(selectedOrgIdList != null)
- {
- for(int i = 0; i < selectedOrgIdList.size(); i++)
- {
- Integer graphyId = (Integer)selectedOrgIdList.get(i);
- GeographyTreeItem expandOrgItem = (GeographyTreeItem)mapGeography.get(graphyId + "###");
- expandTreeItem(expandOrgItem);
- }
- }
- return tvm;
- }
- /**
- *
- * @param ti
- */
- private void expandTreeItem(GeographyTreeItem ti)
- {
- GeographyTreeItem parent = ti.parent;
- if(parent != null)
- {
- parent.setDisplayChildren(true);
- expandTreeItem(parent);
- }
- }
- protected String getItemText(String graphyID, String strID, String strName)
- {
- StringBuffer sb = new StringBuffer();
- StringBuffer linkBuf = new StringBuffer();
- if(treeItemHref != null)
- {
- String onClickTmp = StringUtility.replace(treeItemHref, "[orgId]", graphyID);
- linkBuf.append(" + onClickTmp + "\" style=\"cursor:hand;color:#1E2855\""); );
- if(!StringUtility.isNullOrBlank(treeItemClick)){
- String treeItemClickTmp = StringUtility.replace(treeItemClick, "[orgId]", graphyID);
- linkBuf.append(" onClick=\"").append(treeItemClickTmp).append("\"");
- }
- if(!StringUtility.isNullOrBlank(clickTarget)){
- linkBuf.append(" target=\"").append(clickTarget).append("\"");
- }
- linkBuf.append(">");
- } else
- {
- linkBuf.append(");
- }
- linkBuf.append(strName);
- linkBuf.append("");
- if(pattern != null)
- {
- String patternStr = StringUtility.replace(pattern, "[orgId]", graphyID);
- patternStr = StringUtility.replace(patternStr, "[link]", linkBuf.toString());
- try
- {
- Integer orgIDInt = new Integer(graphyID);
- if(selectedIds.contains(orgIDInt))
- patternStr = StringUtility.replace(patternStr, "[checked]", "checked");
- else
- patternStr = StringUtility.replace(patternStr, "[checked]", "");
- }
- catch(Exception exception) { }
- sb.append(patternStr);
- } else
- {
- sb.append(linkBuf.toString());
- }
- return sb.toString();
- }
- protected String getItemText(String strName)
- {
- StringBuffer sb = new StringBuffer();
- sb.append(");
- sb.append(strName);
- sb.append(""
- return sb.toString();
- }
- public String getHtml()
- {
- createTree();
- return tvmOrg.getHTML();
- }
- public void setOnClick(String onClick)
- {
- this.onClick = onClick;
- }
- public void setTopName(String orgTopName)
- {
- this.orgTopName = orgTopName;
- }
- public void setRootId(Integer rootId)
- {
- this.rootId = rootId;
- }
- public void setPattern(String pattern)
- {
- this.pattern = pattern;
- }
- public void setSelectedIds(List selectedIds)
- {
- this.selectedIds = selectedIds;
- }
- public void setSelectedOrgIdList(List orgIdList)
- {
- selectedOrgIdList = orgIdList;
- }
- public String getClickTarget() {
- return clickTarget;
- }
- public void setClickTarget(String clickTarget) {
- this.clickTarget = clickTarget;
- }
- public String getTreeItemClick() {
- return treeItemClick;
- }
- public void setTreeItemClick(String treeItemClick) {
- this.treeItemClick = treeItemClick;
- }
- public String getTreeItemHref() {
- return treeItemHref;
- }
- public void setTreeItemHref(String treeItemHref) {
- this.treeItemHref = treeItemHref;
- }
- }