/* ==================================================================
* 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.engine.model;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import com.jinhe.tss.portal.entity.PortalStructure;
/**
* 页面节点对象:用于解析门户中使用到的页面
*/
public class PageNode extends AbstractSubNode implements DecoratorConfigable, LayoutConfigable, Supplementable {
/** 页面全局脚本文件列表:每元素为文件相对路径字符串 */
private List<String> scriptFiles = new ArrayList<String>();
/** 页面全局样式表文件列表:每元素为文件相对路径字符串 */
private List<String> styleFiles = new ArrayList<String>();
private String scriptCode; //页面全局脚本代码
private String styleCode; //页面全局样式表代码
private LayoutNode layoutNode; //页面布局器
private DecoratorNode decoratorNode; //页面修饰器
public PageNode(PortalStructure ps, Node parentNode) {
this.id = ps.getId();
this.name = ps.getName();
this.code = ps.getCode();
this.setParent(parentNode);
}
public String getScriptCode() { return scriptCode; }
public String getStyleCode () { return styleCode; }
public List<String> getScriptFiles() { return scriptFiles; }
public List<String> getStyleFiles () { return styleFiles; }
public void setScriptCode(String scriptCode) { this.scriptCode = scriptCode; }
public void setStyleCode (String styleCode) { this.styleCode = styleCode; }
public DecoratorNode getDecoratorNode() { return decoratorNode; }
public LayoutNode getLayoutNode() { return layoutNode; }
public void setDecoratorNode(DecoratorNode decorator) { this.decoratorNode = decorator; }
public void setLayoutNode(LayoutNode layout) { this.layoutNode = layout; }
public AbstractElementNode getDecoratorContent() {
return layoutNode;
}
public PortalNode getPortal() {
return (PortalNode) this.parent;
}
public PageNode getPage() {
return this;
}
public void setPortal(PortalNode node) {
this.setParent(node);
}
public void setPage(PageNode node) { }
public Object clone() {
PageNode copy = (PageNode) super.clone();
copy.children = new LinkedHashSet<Node>();
for ( Node kitten : this.children ) {
copy.children.add( (Node) kitten.clone() );
}
copy.decoratorNode = (DecoratorNode) this.decoratorNode.clone();
copy.layoutNode = (LayoutNode) this.layoutNode.clone();
return copy;
}
}