cell.removeState( CellState.OTHERWISE );
}
//Copy data that is changing for an event to update the underlying model
if ( cell instanceof GroupedCellValue ) {
GroupedCellValue gcv = (GroupedCellValue) cell;
for ( int iChildValueIndex = 0; iChildValueIndex < gcv.getGroupedCells().size(); iChildValueIndex++ ) {
changedRow.add( data.get( c ) );
changedBlock.add( changedRow );
}
} else {
changedRow.add( data.get( c ) );
changedBlock.add( changedRow );
}
}
}
Coordinate originSelected = new Coordinate( rowMapper.mapToAbsoluteRow( firstSelection.getRow() ),
firstSelection.getCol() );
changedData.put( originSelected,
changedBlock );
//---Clear dependent cells' values---
final Context context = new Context( 0,
firstSelection.getCol(),
null );
final Set<Integer> dependentColumnIndexes = this.dropDownManager.getDependentColumnIndexes( context );
for ( Integer dependentColumnIndex : dependentColumnIndexes ) {
changedBlock = new ArrayList<List<CellValue< ? extends Comparable< ? >>>>();
for ( CellValue< ? extends Comparable< ? >> cell : selections ) {
changedRow = new ArrayList<CellValue< ? extends Comparable< ? >>>();
Coordinate dc = new Coordinate( cell.getCoordinate().getRow(),
dependentColumnIndex );
if ( !columns.get( dc.getCol() ).isSystemControlled() ) {
data.set( dc,
null );
if ( value != null ) {
cell.removeState( CellState.OTHERWISE );
}
//Copy data that is changing for an event to update the underlying model
if ( cell instanceof GroupedCellValue ) {
GroupedCellValue gcv = (GroupedCellValue) cell;
for ( int iChildValueIndex = 0; iChildValueIndex < gcv.getGroupedCells().size(); iChildValueIndex++ ) {
changedRow.add( data.get( dc ) );
changedBlock.add( changedRow );
}
} else {
changedRow.add( data.get( dc ) );