/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.portal.entity; import java.util.HashMap; import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import com.jinhe.tss.component.support.persistence.entityaop.IDecodable; import com.jinhe.tss.component.support.persistence.entityaop.OperateInfo; import com.jinhe.tss.core.persistence.IEntity; import com.jinhe.tss.core.util.BeanUtil; import com.jinhe.tss.core.web.dispaly.tree.ILevelTreeNode; import com.jinhe.tss.core.web.dispaly.tree.TreeAttributesMap; import com.jinhe.tss.core.web.dispaly.xform.IXForm; import com.jinhe.tss.portal.PortalConstants; import com.jinhe.tss.portal.helper.IElement; /** * 布局器实体:包括基本信息和布局定义信息 */ @Entity @Table(name = "pms_layout", uniqueConstraints = { @UniqueConstraint(name="MULTI_NAME_Layout", columnNames = { "groupId", "name" }) }) @SequenceGenerator(name = "layout_sequence", sequenceName = "layout_sequence", initialValue = 1000, allocationSize = 50) public class Layout extends OperateInfo implements IEntity, ILevelTreeNode, IXForm, IElement, IDecodable { public static final String LAYOUT_NAME = "layout"; public String getResourceBaseDir() { return PortalConstants.LAYOUT_MODEL_DIR; } public String getResourcePath() { return getResourceBaseDir() + this.code + this.id; } public String getElementName() { return LAYOUT_NAME; } public static Layout defaultLayout = null; public static void setDefaultLayout(Layout defaultLayout) { Layout.defaultLayout = defaultLayout; } @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "layout_sequence") private Long id; @Column(nullable = false) private String name; //布局器名称 @Column(nullable = false) private String code; //布局器代码:用于生成布局器资源文件目录及访问相对路径 @Column(length = 4000, nullable = false) private String definition; //布局器内容:布局器关于展现方式的具体定义信息 @Column(length = 1000) private String description; //布局器的描述信息 private String version; //版本号 @Column(nullable = false) private Long groupId; //布局器组编号 @Column(nullable = false) private Integer seqNo; //顺序号:用于排序 private String decode; // 层码 private Integer levelNo; // 层次值 private Integer isDefault = PortalConstants.FALSE; //是否为默认布局器 private Integer disabled = PortalConstants.FALSE; //是否停用 /** * 布局器中可以显示区域数量 * <li> n > 0 - 此布局器有多少个区域可以填充子节点,用于判断是否适用版面 * <li> -n - 子节点循环填充每个区域; * * 注:当portNumber > ${port*}数量时有问题,创建布局器的时候portNumber和html中${port*}数量必须相等。 */ @Column(nullable = false) private Integer portNumber = new Integer(0); public TreeAttributesMap getAttributes() { TreeAttributesMap map = new TreeAttributesMap(id, name); map.put("code", code); map.put("groupId", groupId); map.put("disabled", disabled); map.put("isDefault", isDefault); map.put("icon", "../platform/images/icon/" + (PortalConstants.TRUE.equals(isDefault) ? "default_" : "") + "layout" + (PortalConstants.TRUE.equals(disabled) ? "_2" : "") + ".gif"); super.putOperateInfo2Map(map); return map; } public Map<String, Object> getAttributesForXForm() { Map<String, Object> map = new HashMap<String, Object>(); BeanUtil.addBeanProperties2Map(this, map); return map; } public Long getParentId() { return this.groupId; } public Class<ElementGroup> getParentClass() { return ElementGroup.class; } public String toString(){ return "(id:" + this.id + ", name:" + this.name + ", groupId:" + this.groupId + ")"; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getDefinition() { return definition; } public void setDefinition(String definition) { this.definition = definition; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Long getGroupId() { return groupId; } public void setGroupId(Long groupId) { this.groupId = groupId; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getPortNumber() { return portNumber; } public void setPortNumber(Integer portNumber) { this.portNumber = portNumber; } public Integer getSeqNo() { return seqNo; } public void setSeqNo(Integer seqNo) { this.seqNo = seqNo; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDecode() { return decode; } public Integer getDisabled() { return disabled; } public Integer getIsDefault() { return isDefault; } public Integer getLevelNo() { return levelNo; } public void setDecode(String decode) { this.decode = decode; } public void setDisabled(Integer disabled) { this.disabled = disabled; } public void setIsDefault(Integer isDefault) { this.isDefault = isDefault; } public void setLevelNo(Integer levelNo) { this.levelNo = levelNo; } }