ExtremeTable使用指南:Preferences 指南
1. 引言为了设置全局属性和设置,你需要使用Preferences特性,它现在使用一个属性文件来实现。本文档将很好地介绍如何在web.xml里设置Preferences, 以及一些需要被定义的通用属性。在这里我非常乐意介绍一些关于Preferences的进一步用法。
所有标签属性表示一个可插接的接口,它可以通过给出实现的全路径来设置。这为插接实现提供了一条便利的途径。当然这存在一些为过长术语的设计和维护的考虑。 第一,对你的接口实现进行硬编码;第二,如果你需要在别的JSP中用到同一个接口实现,你需要拷贝你全路径。解决这两个问题的有效办法就是在Preferences中声明一切。
<a name="1.1._Preferences.E8.A1.A8" />1.1. Preferences表
下面列出的是可以在Preferences中申明的所有接口。Tag列展示的是eXtremeTable的标签,Attribute 列展示的是相关标签的对应属性。Interface列展示的是需要被实现的Java接口。Preference Key列展示的是 Preferences里对应的健。
Tag Attribute Interface Preference KeyTableTag filterRowsCallback org.extremecomponents.table.callback.FilterRowsCallback table.filterRowsCallbackTableTag intercept org.extremecomponents.table.intercept.InterceptTable table.interceptTableTag retrieveRowsCallback org.extremecomponents.table.callback.RetrieveRowsCallback table.retrieveRowsCallbackTableTag sortRowsCallback org.extremecomponents.table.callback.SortRowsCallback table.sortRowsCallbackTableTag state org.extremecomponents.table.state.State table.stateTableTag view org.extremecomponents.table.view.View table.viewRowTag intercept org.extremecomponents.table.intercept.InterceptRow row.interceptColumnTag calc org.extremecomponents.table.calc.Calc column.calcColumnTag cell org.extremecomponents.table.cell.Cell column.cellColumnTag filterCell org.extremecomponents.table.cell.Cell column.filterCellColumnTag headerCell org.extremecomponents.table.cell.Cell column.headerCellColumnTag intercept org.extremecomponents.table.intercept.InterceptColumn column.interceptExportTag intercept org.extremecomponents.table.intercept.InterceptExport export.interceptExportTag view org.extremecomponents.table.view.View export.viewExportTag viewResolver org.extremecomponents.table.filter.ViewResolver export.viewResolver提示:当在写作本指南的时候,我意识到我忘记了让标签ColumnsTag的autoGenerateColumns 属性和Preferences协同工作。这将在下一版修正。
<a name="1.2._.E6.8C.87.E5.AE.9APreference.E5.88.AB.E5.90.8D" />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进行修改。
页:
[1]