Vincent.Chan‘s Blog

常用链接

统计

积分与排名

网站

最新评论

Preferences 指南

Preferences 指南


1. 引言

为了设置全局属性和设置,你需要使用Preferences特性,它现在使用一个属性文件来实现。本文档将很好地介绍如何在web.xml里设置Preferences, 以及一些需要被定义的通用属性。在这里我非常乐意介绍一些关于Preferences的进一步用法。

所有标签属性表示一个可插接的接口,它可以通过给出实现的全路径来设置。这为插接实现提供了一条便利的途径。当然这存在一些为过长术语的设计和维护的考虑。 第一,对你的接口实现进行硬编码;第二,如果你需要在别的JSP中用到同一个接口实现,你需要拷贝你全路径。解决这两个问题的有效办法就是在Preferences中声明一切。

1.1. Preferences表

下面列出的是可以在Preferences中申明的所有接口。Tag列展示的是eXtremeTable的标签,Attribute 列展示的是相关标签的对应属性。Interface列展示的是需要被实现的Java接口。Preference Key列展示的是 Preferences里对应的健。

TagAttributeInterfacePreference Key
TableTagfilterRowsCallbackorg.extremecomponents.table.callback.FilterRowsCallbacktable.filterRowsCallback
TableTaginterceptorg.extremecomponents.table.intercept.InterceptTabletable.intercept
TableTagretrieveRowsCallbackorg.extremecomponents.table.callback.RetrieveRowsCallbacktable.retrieveRowsCallback
TableTagsortRowsCallbackorg.extremecomponents.table.callback.SortRowsCallbacktable.sortRowsCallback
TableTagstateorg.extremecomponents.table.state.Statetable.state
TableTagvieworg.extremecomponents.table.view.Viewtable.view
RowTaginterceptorg.extremecomponents.table.intercept.InterceptRowrow.intercept
ColumnTagcalcorg.extremecomponents.table.calc.Calccolumn.calc
ColumnTagcellorg.extremecomponents.table.cell.Cellcolumn.cell
ColumnTagfilterCellorg.extremecomponents.table.cell.Cellcolumn.filterCell
ColumnTagheaderCellorg.extremecomponents.table.cell.Cellcolumn.headerCell
ColumnTaginterceptorg.extremecomponents.table.intercept.InterceptColumncolumn.intercept
ExportTaginterceptorg.extremecomponents.table.intercept.InterceptExportexport.intercept
ExportTagvieworg.extremecomponents.table.view.Viewexport.view
ExportTagviewResolverorg.extremecomponents.table.filter.ViewResolverexport.viewResolver

提示:当在写作本指南的时候,我意识到我忘记了让标签ColumnsTag的autoGenerateColumns 属性和Preferences协同工作。这将在下一版修正。

1.2. 指定Preference别名

上表展示了如何声明preference键,但是没有解释如何指定有意义的别名。如果你注意到preference键提供了一致的语法 tag.attribute,指定键的别名仅仅是在它的基础上进行扩展。它的语法为: tag.attribute.alias

eXtremeTable提供了一个名为RowCountCell定制的cell,它的作用是现实当前的行数。我将在Preferences里使用ColumnTag cell声明来示范RowCountCell的使用。

首先通过实现Cell接口或者扩展AbstractCell来编写具体的实现类。

public class RowCountCell extends AbstractCell {
protected String getCellValue(TableModel model, Column column) {
int rowcount = ((model.getLimit().getPage() - 1)
* model.getLimit().getCurrentRowsDisplayed())
+ model.getRowHandler().getRow().getRowCount();
return String.valueOf(rowcount);
}
}

然后在Preferences (属性文件)进行声明并给出别名。eXtremeTable在一个Preferences里保存所有的配置信息,你可以通过使用本地 Preferences的来覆盖任何的这些属性。

RowCountCell默认的别名是rowCount:

column.cell.rowCount=org.extremecomponents.table.cell.RowCountCell

在ColumnTag中通过别名引用Cell:

<ec:column alias="count" cell="rowCount"/>

现在你可以通过rowCount来引用这个Cell,如果包名改变了你只需要对Preferences进行修改。

提示:本示例中我使用了ColumnTag的别名属性。别名属性应用在有两列使用同样的property,也应用在列不直接和列的 bean property关联的情况下。本示例就属于这种情况。

posted on 2006-02-23 12:17 Vincent.Chen 阅读(120) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航: