step 10、构造 树形结构类
java 代码
- /**
- * 地理信息数结构
- */
- package com.fzfx88.common.tree;
- import java.util.Vector;
- /**
- * @author huguoqing
- *
- */
- public class GeographyTreeItem {
- public String strTitle;
- public String strValue;
- public String strText;
- public boolean bDisplayChildren;
- public String strImg;
- public boolean bSelected;
- public boolean bSelectable;
- public boolean bLoadChildren;
- public String strChildURL;
- public Vector vChildren;
- public GeographyTreeItem parent;
- public GeographyTreeItem(String strValue, String strText, String strTitle)
- {
- bDisplayChildren = false;
- strImg = "";
- bSelected = false;
- bSelectable = true;
- bLoadChildren = true;
- strChildURL = "";
- vChildren = new Vector();
- parent = null;
- this.strTitle = strTitle;
- this.strValue = strValue;
- this.strText = strText;
- }
- public GeographyTreeItem(String strValue, String strText)
- {
- this(strValue, strText, strValue);
- }
- public GeographyTreeItem(String strValue)
- {
- this(strValue, strValue, strValue);
- }
- public GeographyTreeItem()
- {
- this("", "", "");
- }
- public void setImage(String strImg)
- {
- this.strImg = strImg;
- }
- public void setDisplayChildren(boolean bDisplay)
- {
- bDisplayChildren = bDisplay;
- }
- public boolean isDisplayChildren()
- {
- return bDisplayChildren;
- }
- public void setSelected(boolean bSelected)
- {
- this.bSelected = bSelected;
- }
- public boolean isSelected()
- {
- return bSelected;
- }
- public void setSelectable(boolean selectable)
- {
- bSelectable = selectable;
- }
- public boolean isSelectable()
- {
- return bSelectable;
- }
- public void addChild(GeographyTreeItem item)
- {
- vChildren.addElement(item);
- }
- public int getCount()
- {
- return vChildren.size();
- }
- public GeographyTreeItem getChild(int index)
- {
- if(index >= getCount())
- {
- return null;
- } else
- {
- GeographyTreeItem item = (GeographyTreeItem)vChildren.get(index);
- return item;
- }
- }
- public void setLoadChildren(boolean bLoad)
- {
- bLoadChildren = bLoad;
- }
- public boolean isLoadChildren()
- {
- return bLoadChildren;
- }
- public void setURL(String strURL)
- {
- strChildURL = strURL;
- }
- public String getURL()
- {
- return strChildURL;
- }
- public String getHTML(String strPath, boolean bLine)
- {
- StringBuffer stHTML = new StringBuffer(1000);
- if(strText != null)
- {
- int nlength = getRealLength(strText);
- nlength = nlength * 12 + 10;
- stHTML.append("《TABLE valign=top width=" + nlength + " cellSpacing=0 cellPadding=0 border=0》\r\n");
- stHTML.append(" 《TR valign=top 》\r\n");
- stHTML.append(" 《TD vAlign=top width=5》" + strImg + "《/TD》\r\n");
- stHTML.append(" 《TD valign=top class=treeview_ob_td");
- if(bSelectable)
- stHTML.append(" onclick=treeview_ob_ft(this) ondoubleclick=treeview_ob_modify(this)");
- stHTML.append(" title='" + strTitle + "' value='" + strValue + "' " + (bSelected ? "style=\"background-Color:#ccddee;\"" : "") + "》" + strText + "《/TD》\r\n");
- stHTML.append(" 《/TR》\r\n");
- stHTML.append("《/TABLE》\r\n");
- }
- stHTML.append(getChildHTML(strPath, bLine));
- return stHTML.toString();
- }
- public String getChildHTML(String strPath, boolean bLine)
- {
- StringBuffer stHTML = new StringBuffer();
- String strVertical = "";
- String strVertDisp = "";
- if(bLine)
- strVertical = " style=\、"BACKGROUND-IMAGE: url(" + strPath + "vertical.gif)\" ";
- if(getCount() > 0)
- if(bLoadChildren || bDisplayChildren)
- {
- stHTML.append("《TABLE valign=top style=\"DISPLAY: " + (bDisplayChildren ? "block" : "none") + "\" cellSpacing=0 cellPadding=0 border=0》\r\n");
- for(int i = 0; i < vChildren.size(); i++)
- {
- GeographyTreeItem item = getChild(i);
- strVertDisp = strVertical;
- String strImg_tmp = "";
- String strURL = "";
- if(!item.isLoadChildren())
- strURL = item.getURL();
- if(item.getCount() > 0)
- {
- if(item.isDisplayChildren())
- {
- if(i < vChildren.size() - 1)
- {
- strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "minus.gif\" 》";
- } else
- {
- strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "minus_l.gif\" 》";
- strVertDisp = "";
- }
- } else
- if(i < vChildren.size() - 1)
- {
- strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "plusik.gif\" 》";
- } else
- {
- strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "plusik_l.gif\" 》";
- strVertDisp = "";
- }
- } else
- {
- if(i < vChildren.size() - 1)
- strImg_tmp = "《IMG class=treeview_ob_ic src=\/"" + strPath + "hr.gif\" 》";
- else
- strImg_tmp = "《IMG class=treeview_ob_ic src=\/"" + strPath + "hr_l.gif\" 》";
- strVertDisp = "";
- }
- stHTML.append(" 《TR 》\/r\/n");
- stHTML.append(" 《TD class=treeview_ob_ic " + strVertDisp + " width=1 》 \/r\/n");
- stHTML.append(" ").append(strImg_tmp);
- stHTML.append("《/TD 》\/r\/n");
- stHTML.append(" 《TD 》\/r\/n");
- stHTML.append(item.getHTML(strPath, bLine));
- stHTML.append(" 《/TD 》\/r\/n");
- stHTML.append(" 《/TR 》\/r\/n");
- }
- stHTML.append("《/TABLE》\/r\/n");
- } else
- {
- stHTML.append("《TABLE style=\"DISPLAY: " + (bDisplayChildren ? "block" : "none") + "\" cellSpacing=0 cellPadding=0 border=0》\r\n");
- stHTML.append(" 《TR》\/r\/n");
- stHTML.append(" 《TD class=treeview_ob_td 》正读取数据,请稍候 .../TD》\/r\/n");
- stHTML.append(" 《/TR》\/r\/n");
- stHTML.append("《/TABLE》\/r\/n");
- }
- return stHTML.toString();
- }
- protected int getRealLength(String strText)
- {
- int nCount = 0;
- int nNow = -1;
- int nLength = strText.length();
- do
- {
- int nStart = strText.indexOf(60, nNow);
- if(nStart == -1)
- {
- nCount += nLength - nNow - 1;
- break;
- }
- nCount += nStart - nNow - 1;
- int nEnd = strText.indexOf(62, nStart);
- if(nEnd == -1)
- {
- nCount += nLength - nStart - 1;
- break;
- }
- nNow = nEnd;
- nCount += 2;
- } while(true);
- return nCount;
- }
- }