⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baseelement.java

📁 Excel Report是一款基于Excel的报表生成工具
💻 JAVA
字号:
/***********************************************************************
 * Module:  ReportElement.java
 * Author:  juny
 * Created: 2006年7月13日 13:50:12
 * Purpose: Defines the Class ReportElement
 ***********************************************************************/

package net.excel.report.base;

import java.util.ArrayList;
import java.util.List;


/**
 * 报表自定义模板元素基类. 在报表模板文件中,每一个模板定义单元都被抽象成一个模板元素对象,
 * 当然,对于不同的模板元素对象其在生成报表过程当中的操作也不一样。
 * 因此在将一个模板元素描述的行为最终输出到报表上的实现是由模板元素的不同实现类自己来负责。
 * 
 * @author juny
 */
public abstract class BaseElement implements IElementWriter {
    public static final int ELEMENT_TYPE_BAND = 1;
    public static final int ELEMENT_TYPE_GROUP = 2;
    public static final int ELEMENT_TYPE_FIELD = 3;
    public static final int ELEMENT_TYPE_VARIABLE = 4;
    public static final int ELEMENT_TYPE_UNKNOWN = 4;

    /**
     * 设置包含该模板元素的容器对象
     */
    public BaseElement(ITempletContainer container) {
        parentContainer = container;
    }

    /**
     * 取得当前报表模板元素名称 
     * @return 返回当前模板元素类型
     * @see ELEMENT_TYPE_BAND
     * @see ELEMENT_TYPE_GROUP
     * @see ELEMENT_TYPE_FIELD
     * @see ELEMENT_TYPE_VARIABLE
     * @see ELEMENT_TYPE_UNKNOWN
     */
    public int getType() {
        return ELEMENT_TYPE_UNKNOWN;
    }

    /**
     * 取得包含本模板元素的容器对象。
     * @return	返回容器对象
     */
    public ITempletContainer getParentContainer() {
        return parentContainer;
    }
    
    /**
     * 取得顶层容器
     * @return
     */
    public ITempletContainer getTopContainer(){
        if(null != topContainer){
            return topContainer;
        }
        
        topContainer = parentContainer;
        while(topContainer != null){
            if(topContainer instanceof BaseElement){
                topContainer = ((BaseElement)topContainer).getParentContainer();
            }else{
                break;
            }
        }
        return topContainer;
    }
    private ITempletContainer topContainer = null;

    /**
     * 取得当前模板元素名称,每个模板元素都有其对应的名称,如band名称为其name属性定义的名称等,
     * 如果一个模板元素取了别名,该元素名称即为模板元素的别名。
     * @return
     */
    public String getName() {
        return name;
    }

    /*
     * @see excel.report.util.IElementWriter#setElementTempletValue(java.lang.String)
     */
    public void setElementTempletValue(String value) {

    }
    
    /**
     * 设置当前模板元素的名称
     * @param name	当前模板元素名称
     * @see	getName()
     */
    protected void setName(String name){
        this.name = name;
    }
    
    /**
     * 给字段添加一个写字段的监听器
     * @param listener	监听器对象
     */
    public final void addListener(IFormulateListener listener){
        if(null == listener){
            return;
        }
        
        if(null == formulateListeners){
            formulateListeners = new ArrayList();
        }
        
        formulateListeners.add(listener);
    }
    
    /**
     * 取得所有监听器列表。
     * @return	返回本模板对象对应的监听器列表
     */
    protected final List getFormulateListeners(){
        return this.formulateListeners;
    }

    private ITempletContainer parentContainer = null;
    private List formulateListeners = null;
    private String name = null;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -