private void setRocordInRow(final TableRowElement rowElement, Record record) {
Record removed = recordByRow.put(rowElement, record);
if (removed != null) {
ChangeListener<Record> listener = listenerByRecord.get(removed);
removed.removeChangeListener(listener);
}
ChangeListener<Record> listener = new ChangeListener<Record>() {
public void onChange(Record record) {
setRocordInRow(rowElement, record);