}
// Unhighlight the current cell
if (highlightedCellElem != null) {
setStyleName(highlightedCellElem, "highlighted", false);
CellUnhighlightEvent.fire(this, new Cell(highlightedRowIndex,
highlightedCellIndex));
highlightedCellElem = null;
highlightedCellIndex = -1;
// Unhighlight the current row if it changed
if (rowElem != highlightedRowElem) {
setStyleName(highlightedRowElem, "highlighted", false);
RowUnhighlightEvent.fire(this, new Row(highlightedRowIndex));
highlightedRowElem = null;
highlightedRowIndex = -1;
}
}
// Highlight the cell
if (cellElem != null) {
setStyleName(cellElem, "highlighted", true);
highlightedCellElem = cellElem;
highlightedCellIndex = OverrideDOM.getCellIndex(cellElem);
// Highlight the row if it changed
if (highlightedRowElem == null) {
setStyleName(rowElem, "highlighted", true);
highlightedRowElem = rowElem;
highlightedRowIndex = getRowIndex(highlightedRowElem);
RowHighlightEvent.fire(this, new Row(highlightedRowIndex));
}
// Fire listeners
CellHighlightEvent.fire(this, new Cell(highlightedRowIndex,
highlightedCellIndex));
}
}