ExtremeTable使用指南:Preferences 指南

1. 引言

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

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

1.1. Preferences表

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

Tag 	Attribute 	Interface 	Preference Key
TableTag 	filterRowsCallback 	org.extremecomponents.table.callback.FilterRowsCallback 	table.filterRowsCallback
TableTag 	intercept 	org.extremecomponents.table.intercept.InterceptTable 	table.intercept
TableTag 	retrieveRowsCallback 	org.extremecomponents.table.callback.RetrieveRowsCallback 	table.retrieveRowsCallback
TableTag 	sortRowsCallback 	org.extremecomponents.table.callback.SortRowsCallback 	table.sortRowsCallback
TableTag 	state 	org.extremecomponents.table.state.State 	table.state
TableTag 	view 	org.extremecomponents.table.view.View 	table.view
RowTag 	intercept 	org.extremecomponents.table.intercept.InterceptRow 	row.intercept
ColumnTag 	calc 	org.extremecomponents.table.calc.Calc 	column.calc
ColumnTag 	cell 	org.extremecomponents.table.cell.Cell 	column.cell
ColumnTag 	filterCell 	org.extremecomponents.table.cell.Cell 	column.filterCell
ColumnTag 	headerCell 	org.extremecomponents.table.cell.Cell 	column.headerCell
ColumnTag 	intercept 	org.extremecomponents.table.intercept.InterceptColumn 	column.intercept
ExportTag 	intercept 	org.extremecomponents.table.intercept.InterceptExport 	export.intercept
ExportTag 	view 	org.extremecomponents.table.view.View 	export.view
ExportTag 	viewResolver 	org.extremecomponents.table.filter.ViewResolver 	export.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"></ec:column>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值