ecside 中,对于每列的属性,是用户可以自个定义,只要实现ColumnInterceptor接口就可以。
如何实现的:
首先定义了接口ColumnInterceptior,有两个方法:
public interface ColumnInterceptor {
//增加列的属性
public void addColumnAttributes(TableModel tableModel, Column column);
//修改列的属性
public void modifyColumnAttributes(TableModel model, Column column);
}
ecside 在生成列时,会根据column 中的interceptor(指定实现ColumnInterceptor接口的类的全名,包括包) 属性 如:com.frame.ui.myColumnInterceptor 实例化这个类:
TableCache.getInstance().getColumnInterceptor(interceptor).addColumnAttributes(model, column);
其中:interceptor 为:com.frame.ui.myColumnInterceptor
对于已经实例化了的interceptor 类,它将从内存中直接拿出来,不再做初始化。所以用到了TableCache这个类。就是为此。
column 为列的对象,此中包含了已经定义好的了属性,可以进行修改。