package org.quickbundle.tools.support.tree; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * 功能、用途、现存BUG: * * @author 白小勇 * @version 1.0.0 * @see 需要参见的其它类 * @since 1.0.0 */ public class DeepTreeVo { /** * mapAttribute 表示: 存放属性数据的Map */ private Map<String, Object> mapAttribute; /** * lKeyIndex 表示: 体现key值先后顺序的List */ private List<String> lKeyIndex; /** * 构造函数: 初始化属性,私有构造函数 * */ private DeepTreeVo() { this.mapAttribute = new HashMap<String, Object>(); this.lKeyIndex = new ArrayList<String>(); this.addAttribute("id", ""); this.addAttribute("text", ""); this.addAttribute("hasChild", ""); this.addAttribute("xmlSource", ""); this.addAttribute("defaultOpen", "0"); this.addAttribute("logoImagePath", ""); this.addAttribute("statusFlag", "1"); this.addAttribute("title", ""); this.addAttribute("hrefPath", ""); this.addAttribute("target", "_blank"); this.addAttribute("orderStr", ""); this.addAttribute("returnValue", ""); this.addAttribute("isSelected", ""); this.addAttribute("indeterminate", ""); this.addAttribute("thisType", ""); this.addAttribute("detailedType", ""); this.addAttribute("isSubmit", ""); this.addAttribute("parentId", ""); this.addAttribute("childIds", ""); } /** * 构造函数: 带4个必需参数的构造函数 * @param id 唯一标识,如果returnValue为"",id作为returnValue * @param text 显示的文本,也作为文本返回 * @param hasChild 是否有子节点,软栽入时显示加号(可继续展开)或点(叶子节点) * @param xmlSource 子节点数据的xml路径,只有hasChild等于1才有意义 */ public DeepTreeVo(String id, String text, String hasChild, String xmlSource) { this(); this.addAttribute("id", id); this.addAttribute("text", text); this.addAttribute("hasChild", hasChild); this.addAttribute("xmlSource", xmlSource); } /** * 功能: 为DeepTreeVo增加属性,访问时有序(按属性加入的先后顺序) * * @param attributeName 属性名称 * @param attributeValue 属性值 */ public void addAttribute(String attributeName, String attributeValue) { if(!lKeyIndex.contains(attributeName)) { this.lKeyIndex.add(attributeName); } getAttributeMap().put(attributeName, attributeValue); } /** * 功能: 获得DeepTreeVo的属性 * * @param attributeName 属性名称 * @return */ public String getAttribute(String attributeName) { Object attributeValue = getAttributeMap().get(attributeName); return attributeValue == null ? null : String.valueOf(attributeValue); } /** * 功能: 获得存放属性数据的Map,不带顺序的,谨慎使用 * * @return */ private Map<String, Object> getAttributeMap() { return this.mapAttribute; } /** * 功能: 获得体现key值先后顺序的List迭代器 * * @return */ public Iterator getAttributeMapIterator() { return lKeyIndex.iterator(); } //开始DeepTreeVo属性的getter和setter方法 /** * 功能: 必填项,标识唯一Id * * @return */ public String getId() { return getAttribute("id"); } /** * 功能: 必填项,标识唯一Id * * @param id */ public void setId(String id) { addAttribute("id", id); } /** * 功能: 必填项,显示文本内容 * * @return */ public String getText() { return getAttribute("text"); } /** * 功能: 必填项,显示文本内容 * * @param text */ public void setText(String text) { addAttribute("text", text); } /** * 功能: 必填项,此冗余值表示是否有子节点 * * @return */ public String getHasChild() { return getAttribute("hasChild"); } /** * 功能: 必填项,此冗余值表示是否有子节点 * * @param hasChild */ public void setHasChild(String hasChild) { addAttribute("hasChild", hasChild); } /** * 功能: 必填项(如果hasChild大于0),子节点的数据源 * * @return */ public String getXmlSource() { return getAttribute("xmlSource"); } /** * 功能: 必填项(如果hasChild大于0),子节点的数据源 * * @param xmlSource */ public void setXmlSource(String xmlSource) { addAttribute("xmlSource", xmlSource); } /** * 功能: 可选,是否继续自动展开本节点,只有当hasChild为1并且本xml有子节点时才有效;默认等于0 * * @return */ public String getDefaultOpen() { return getAttribute("defaultOpen"); } /** * 功能: 可选,是否继续自动展开本节点,只有当hasChild为1并且本xml有子节点时才有效;默认等于0 * * @param defaultOpen */ public void setDefaultOpen(String defaultOpen) { addAttribute("defaultOpen", defaultOpen); } /** * 功能: 可选,可以在文字前边加一个图标,注意要写上文件名;默认等于空 * * @return */ public String getLogoImagePath() { return getAttribute("logoImagePath"); } /** * 功能: 可选,可以在文字前边加一个图标,注意要写上文件名;默认等于空 * * @param logoImagePath */ public void setLogoImagePath(String logoImagePath) { addAttribute("logoImagePath", logoImagePath); } /** * 功能: 可选,数据启用禁用状态;默认等于1 * * @return */ public String getStatusFlag() { return getAttribute("statusFlag"); } /** * 功能: 可选,数据启用禁用状态;默认等于1 * * @param statusFlag */ public void setStatusFlag(String statusFlag) { addAttribute("statusFlag", statusFlag); } /** * 功能: 可选,鼠标放上去时提示内容;默认等于text * * @return */ public String getTitle() { return getAttribute("title"); } /** * 功能: 可选,鼠标放上去时提示内容;默认等于text * * @param title */ public void setTitle(String title) { addAttribute("title", title); } /** * 功能: 可选,超链接地址;默认等于空 * * @return */ public String getHrefPath() { return getAttribute("hrefPath"); } /** * 功能: 可选,超链接地址;默认等于空 * * @param hrefPath */ public void setHrefPath(String hrefPath) { addAttribute("hrefPath", hrefPath); } /** * 功能: 可选,超链接的打开方式;默认等于_blank * * @return */ public String getTarget() { return getAttribute("target"); } /** * 功能: 可选,超链接的打开方式;默认等于_blank * * @param target */ public void setTarget(String target) { addAttribute("target", target); } /** * 功能: 可选,排序编码,升序;默认等于空 * * @return */ public String getOrderStr() { return getAttribute("orderStr"); } /** * 功能: 可选,排序编码,升序;默认等于空 * * @param orderStr */ public void setOrderStr(String orderStr) { addAttribute("orderStr", orderStr); } /** * 功能: 可选,提交时的返回值;默认等于Id * * @return */ public String getReturnValue() { return getAttribute("returnValue"); } /** * 功能: 可选,提交时的返回值;默认等于Id * * @param returnValue */ public void setReturnValue(String returnValue) { addAttribute("returnValue", returnValue); } /** * 功能: 可选,是否已经被选中;默认等于0 * * @return */ public String getIsSelected() { return getAttribute("isSelected"); } /** * 功能: 可选,是否已经被选中;默认等于0 * * @param isSelected */ public void setIsSelected(String isSelected) { addAttribute("isSelected", isSelected); } /** * 功能: 可选,是否为不确定状态;默认等于0 * * @return */ public String getIndeterminate() { return getAttribute("indeterminate"); } /** * 功能: 可选,是否为不确定状态;默认等于0 * * @param indeterminate */ public void setIndeterminate(String indeterminate) { addAttribute("indeterminate", indeterminate); } /** * 功能: 可选,节点类型;默认等于空 * * @return */ public String getThisType() { return getAttribute("thisType"); } /** * 功能: 可选,节点类型;默认等于空 * * @param thisType */ public void setThisType(String thisType) { addAttribute("thisType", thisType); } /** * 功能: 可选,更具体的节点类型;默认等于空 * * @return */ public String getDetailedType() { return getAttribute("detailedType"); } /** * 功能: 可选,更具体的节点类型;默认等于空 * * @param detailedType */ public void setDetailedType(String detailedType) { addAttribute("detailedType", detailedType); } /** * 功能: 可选,表示是否可以被提交;默认等于1 * * @return */ public String getIsSubmit() { return getAttribute("isSubmit"); } /** * 功能: 可选,表示是否可以被提交;默认等于1 * * @param isSubmit */ public void setIsSubmit(String isSubmit) { addAttribute("isSubmit", isSubmit); } /** * 功能: 不填,预留给程序处理,表示父节点Id;默认等于空 * * @return */ public String getParentId() { return getAttribute("parentId"); } /** * 功能: 不填,预留给程序处理,表示父节点Id;默认等于空 * * @param parentId */ public void setParentId(String parentId) { addAttribute("parentId", parentId); } /** * 功能: 不填,预留给程序处理,表示子节点集合;默认等于空 * * @return */ public String getChildIds() { return getAttribute("childIds"); } /** * 功能: 不填,预留给程序处理,表示子节点集合;默认等于空 * * @param childIds */ public void setChildIds(String childIds) { addAttribute("childIds", childIds); } //结束DeepTreeVo属性的getter和setter方法 }