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;
}
}