20 ページに分割された 300 行以上の CellTable を作成しました。メニューに、ユーザーが列の値に基づいて行を強調表示できるコマンドがあります (Excel の条件付き書式設定に似ています)。
助けが必要なのは、現在のページにない行の行スタイルを変更することです。
Celltable と SimplePager のドキュメントに目を通しましたが、何も飛び出していません。私はGWTに非常に慣れていないので、どんな助けでも大歓迎です。
次のような関数を作成しました (redRow と yellowRow は CSS のスタイルです)。
private void highlightAlerts() {
alertHighlight = true;
Range range = siteTable.getVisibleRange();
int start = range.getStart();
for (int i=0; i<siteTable.getPageSize(); i++) {
if (dataProvider.getList().get(start+i).alert.equals("Error"))
siteTable.getRowElement(i).setClassName("redRow");
else if (dataProvider.getList().get(start+i).alert.equals("Warning"))
siteTable.getRowElement(i).setClassName("yellowRow");
}
次に、ページャーでこれを onRowOrRowCountChanged() に追加して、ユーザーがテーブルのページを移動してもスタイルが保持されるようにしました。
protected void onRangeOrRowCountChanged() {
super.onRowOrRountCountChanged();
if (alertHighlight)
highlightAlerts();
}