String rowId = rowIdAccessor.getRowId(
rowDataProvider.getRowObject(rowIndex)).toString();
String key = updateEventsCache.getKey(columnProperty, rowId);
LabelStack underlyingLabelStack = getUnderlyingLayer()
.getConfigLabelsByPosition(columnPosition, rowPosition);
// Cell has been updated
if (updateEventsCache.isUpdated(key)) {
PropertyUpdateEvent<T> event = updateEventsCache.getEvent(key);
// Old update in middle of a blink - cancel it
ScheduledFuture<?> scheduledFuture = blinkingTasks.remove(key);
blinkingUpdates.remove(key);
if (scheduledFuture != null) {
scheduledFuture.cancel(true);
}
LabelStack blinkingConfigTypes = resolveConfigTypes(cell,
event.getOldValue(), event.getNewValue());
// start blinking cell
if (blinkingConfigTypes != null) {
Runnable stopBlinkTask = getStopBlinkTask(key, this);