* @return The current state for the specified cell.
*/
public ComponentState getCellState(TableCellId cellIndex) {
boolean isEnabled = this.table.isEnabled();
StateTransitionTracker tracker = this.stateTransitionMultiTracker
.getTracker(cellIndex);
if (tracker == null) {
int row = cellIndex.row;
int column = cellIndex.column;
TableCellId cellId = this.getId(row, column);
boolean isRollover = rolledOverIndices.contains(cellId);
boolean isSelected = false;
boolean hasSelectionAnimations = (this.updateInfo != null) ? this.updateInfo.hasSelectionAnimations
: this._hasSelectionAnimations();
if (hasSelectionAnimations
&& AnimationConfigurationManager
.getInstance()
.isAnimationAllowed(AnimationFacet.SELECTION, table))
isSelected = this.selectedIndices.containsKey(cellId);
else {
isSelected = this.table.isCellSelected(row, column);
}
return ComponentState.getState(isEnabled, isRollover, isSelected);
} else {
ComponentState fromTracker = tracker.getModelStateInfo()
.getCurrModelState();
return ComponentState.getState(isEnabled,
fromTracker.isFacetActive(ComponentStateFacet.ROLLOVER),
fromTracker.isFacetActive(ComponentStateFacet.SELECTION));
}