Preferences 指南
為了設(shè)置全局屬性和設(shè)置,你需要使用Preferences特性,它現(xiàn)在使用一個屬性文件來實(shí)現(xiàn)。本文檔將很好地介紹如何在web.xml里設(shè)置Preferences, 以及一些需要被定義的通用屬性。在這里我非常樂意介紹一些關(guān)于Preferences的進(jìn)一步用法。
所有標(biāo)簽屬性表示一個可插接的接口,它可以通過給出實(shí)現(xiàn)的全路徑來設(shè)置。這為插接實(shí)現(xiàn)提供了一條便利的途徑。當(dāng)然這存在一些為過長術(shù)語的設(shè)計和維護(hù)的考慮。 第一,對你的接口實(shí)現(xiàn)進(jìn)行硬編碼;第二,如果你需要在別的JSP中用到同一個接口實(shí)現(xiàn),你需要拷貝你全路徑。解決這兩個問題的有效辦法就是在Preferences中聲明一切。
下面列出的是可以在Preferences中申明的所有接口。Tag列展示的是eXtremeTable的標(biāo)簽,Attribute 列展示的是相關(guān)標(biāo)簽的對應(yīng)屬性。Interface列展示的是需要被實(shí)現(xiàn)的Java接口。Preference Key列展示的是 Preferences里對應(yīng)的健。
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 |
提示:當(dāng)在寫作本指南的時候,我意識到我忘記了讓標(biāo)簽ColumnsTag的autoGenerateColumns 屬性和Preferences協(xié)同工作。這將在下一版修正。
上表展示了如何聲明preference鍵,但是沒有解釋如何指定有意義的別名。如果你注意到preference鍵提供了一致的語法 tag.attribute,指定鍵的別名僅僅是在它的基礎(chǔ)上進(jìn)行擴(kuò)展。它的語法為: tag.attribute.alias。
eXtremeTable提供了一個名為RowCountCell定制的cell,它的作用是現(xiàn)實(shí)當(dāng)前的行數(shù)。我將在Preferences里使用ColumnTag cell聲明來示范RowCountCell的使用。
首先通過實(shí)現(xiàn)Cell接口或者擴(kuò)展AbstractCell來編寫具體的實(shí)現(xiàn)類。
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 (屬性文件)進(jìn)行聲明并給出別名。eXtremeTable在一個Preferences里保存所有的配置信息,你可以通過使用本地 Preferences的來覆蓋任何的這些屬性。
RowCountCell默認(rèn)的別名是rowCount:
column.cell.rowCount=org.extremecomponents.table.cell.RowCountCell
在ColumnTag中通過別名引用Cell:
<ec:column alias="count" cell="rowCount"/>
現(xiàn)在你可以通過rowCount來引用這個Cell,如果包名改變了你只需要對Preferences進(jìn)行修改。
提示:本示例中我使用了ColumnTag的別名屬性。別名屬性應(yīng)用在有兩列使用同樣的property,也應(yīng)用在列不直接和列的 bean property關(guān)聯(lián)的情況下。本示例就屬于這種情況。
posted on 2006-02-22 18:41 Lucky 閱讀(849) 評論(1) 編輯 收藏 所屬分類: extremeComponents