GWTでCellTableを使用していて、特定のイベントが発生するたびに行にスタイルを追加しようとしています。スタイリングを追加するコードは次のとおりです。
Range range = playlistTable.getVisibleRange();
int start = range.getStart();
for (int i = start; i < start + playlistTable.getPageSize(); i++) {
if (playlistData.get(i) == currentSong) {
playlistTable.getRowElement(i).addClassName("highlightRow");
} else {
playlistTable.getRowElement(i).removeClassName("highlightRow");
}
}
アプリが読み込まれ、セルテーブルの最初のページが表示されると、すべてが完全に機能します。ただし、次のページにスクロールして上記のコードを呼び出すと、GWTはIndexOutOfBoundsExceptionをスローします。getRowElementを呼び出すときのインデックスは気に入らない。これは、インデックスが「現在のページにない」場合にのみ発生する。getRowElementは、常に現在のページが最初のページであると見なしているようです。最初のページにスクロールして戻ると、すべてが正常に動作します。誰かがこれに遭遇しましたか?私は何かが足りないのですか、それともこれはGWTのバグですか?