package org.pentaho.reporting.libraries.designtime.swing.table;
import javax.swing.event.TableModelEvent;
public class GroupedTableModel extends RowMapperTableModel {
private GroupingModel parent;
public GroupedTableModel( final GroupingModel parent ) {
super( parent );
this.parent = parent;
recomputeRowCount();
}
public boolean isCellEditable( final int rowIndex, final int columnIndex ) {
final int index = mapToModel( rowIndex );
if ( parent.isHeaderRow( index ) ) {
return true;
}
return parent.isCellEditable( index, columnIndex );
}
public void setValueAt( final Object aValue, final int rowIndex, final int columnIndex ) {
final int index = mapToModel( rowIndex );
parent.setValueAt( aValue, index, columnIndex );
if ( parent.isHeaderRow( index ) ) {
recomputeRowCount();
fireTableModelEvent( new TableModelEvent( this ) );
}
}
protected boolean isFiltered( final int row ) {
final GroupingHeader groupHeader = parent.getGroupHeader( row );
return groupHeader != null && groupHeader.isCollapsed() && parent.isHeaderRow( row ) == false;
}
}