📄 basefield.java
字号:
/***********************************************************************
* Module: BaseMetaData.java
* Author: juny
* Created: 2006年7月13日 13:44:38
* Purpose: 所有元数据模板变量的基类
***********************************************************************/
package net.excel.report.base;
import java.util.List;
import jxl.CellType;
import jxl.write.Label;
import jxl.write.WritableCell;
/**
* 元素类模板变量基类
* @author juny
*/
public abstract class BaseField extends BaseElement {
/**
* @param container 包含本模板变量得容器
*/
public BaseField(ITempletContainer container) {
super(container);
}
/**
* 拷贝默认的单元格。
* @param param
* @param value
* @return
*/
protected WritableCell copyDefaultCell(Parameter param, Object value){
WritableCell retCell = param.wc.copyTo(param.destCol, param.destRow);
if (retCell.getType() == CellType.LABEL){
Label l = (Label) retCell;
l.setString(value.toString());
}
return retCell;
}
/**
* 具体写数据实现方法,继承类重载该函数来实现具体的数据写入操作。<br>
* 注意:之所以这样设计是为了防止所有继承至BaseField的类都去重载write(),
* 因为如果直接重载write那么重载的客户write函数必须调用super.write()
* 来执行如触发监听字段等一些写数据过程中必须触发的额外动作,
* 如果重载writeImple那么客户程序只需关系自己writeImpl()的实现,而无需
* 关心在执行完writeImpl()之后还需要去通知其监听域字段等细节。这种实现更安全。
*/
public abstract boolean writeImpl(Parameter param) throws Exception;
/**
* @see net.excel.report.base.IElementWriter#write()
*/
public final boolean write(Parameter param) throws Exception {
if(writeImpl(param)){
List formulateListeners = getFormulateListeners();
if(null != formulateListeners){
int col = param.wc.getColumn();
int row = param.wc.getRow();
String content = param.wc.getContents();
for(int i=0; i<formulateListeners.size(); i++){
((IFormulateListener)formulateListeners.get(i)).setValue(
this.getName(),
content,
col,
row
);
}
}
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -