Package org.jfree.report.modules.misc.tablemodel

# Class SubSetTableModel

java.lang.Object
org.jfree.report.modules.misc.tablemodel.SubSetTableModel

All Implemented Interfaces:
  `TableModel`

public class SubSetTableModel extends Object implements TableModel
A TableModel that proxies an other tablemodel and cuts rows from the start and/or the end of the other tablemodel.

Author:
  Thomas Morgner

## Constructor Summary

Constructors
Constructor
Description
`SubSetTableModel(int start, int end, TableModel model)`
Creates a new SubSetTableModel, the start and the end parameters define the new tablemodel row count.

## Method Summary

Modifier and Type
Method
Description
`void`
`addTableModelListener(TableModelListener l)`
Adds a listener to the list that is notified each time a change to the data model occurs.
`Class`
`getColumnClass(int columnIndex)`
Returns the most specific superclass for all the cell values in the column.
`int`
`getColumnCount()`
Returns the number of columns in the model.
`String`
`getColumnName(int columnIndex)`
Returns the name of the column at `columnIndex`.
`protected TableModel`
`getEnclosedModel()`
Returns the enclosed tablemodel, which is wrapped by this subset table model.
`protected int`
`getEnd()`
Returns the last row that should be visible.
`int`
`getRowCount()`
Returns the number of rows in the model.
`protected int`
`getStart()`
Returns the start row that should be mapped to row 0 of this model.
`Object`
`getValueAt(int rowIndex, int columnIndex)`
Returns the value for the cell at `columnIndex` and `rowIndex`.
`boolean`
`isCellEditable(int rowIndex, int columnIndex)`
Returns true if the cell at `rowIndex` and `columnIndex` is editable.
`void`
`removeTableModelListener(TableModelListener l)`
Removes a listener from the list that is notified each time a change to the data model occurs.
`void`
`setValueAt(Object aValue, int rowIndex, int columnIndex)`
Sets the value in the cell at `columnIndex` and `rowIndex` to `aValue`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SubSetTableModel

public SubSetTableModel(int start, int end, TableModel model)
Creates a new SubSetTableModel, the start and the end parameters define the new tablemodel row count. The parameter `start` must be a positive integer and denotes the number or rows removed from the start of the tablemodel. `end` is the number of the last translated row. Any row after `end` is ignored. End must be greater or equal the given start row.

Parameters:
  `start` - the number of rows that should be removed.
  `end` - the last row.
  `model` - the wrapped model
Throws:
  `NullPointerException` - if the given model is null
  `IllegalArgumentException` - if start or end are invalid.

## Method Details

### getRowCount

public int getRowCount()
Returns the number of rows in the model. A `JTable` uses this method to determine how many rows it should display. This method should be quick, as it is called frequently during rendering.

Specified by:
  `getRowCount` in interface `TableModel`
Returns:
  the number of rows in the model
See Also:
  - `getColumnCount()`

### getColumnCount

public int getColumnCount()
Returns the number of columns in the model. A `JTable` uses this method to determine how many columns it should create and display by default.

Specified by:
  `getColumnCount` in interface `TableModel`
Returns:
  the number of columns in the model
See Also:
  - `getRowCount()`

### getColumnName

public String getColumnName(int columnIndex)
Returns the name of the column at `columnIndex`. This is used to initialize the table's column header name. Note: this name does not need to be unique; two columns in a table can have the same name.

Specified by:
  `getColumnName` in interface `TableModel`
Parameters:
  `columnIndex` - the index of the column
Returns:
  the name of the column

### getColumnClass

public Class getColumnClass(int columnIndex)
Returns the most specific superclass for all the cell values in the column. This is used by the `JTable` to set up a default renderer and editor for the column.

Specified by:
  `getColumnClass` in interface `TableModel`
Parameters:
  `columnIndex` - the index of the column
Returns:
  the base ancestor class of the object values in the model.

### isCellEditable

public boolean isCellEditable(int rowIndex, int columnIndex)
Returns true if the cell at `rowIndex` and `columnIndex` is editable. Otherwise, `setValueAt` on the cell will not change the value of that cell.

Specified by:
  `isCellEditable` in interface `TableModel`
Parameters:
  `rowIndex` - the row whose value to be queried
  `columnIndex` - the column whose value to be queried
Returns:
  true if the cell is editable
See Also:
  - `setValueAt(java.lang.Object, int, int)`

### getValueAt

public Object getValueAt(int rowIndex, int columnIndex)
Returns the value for the cell at `columnIndex` and `rowIndex`.

Specified by:
  `getValueAt` in interface `TableModel`
Parameters:
  `rowIndex` - the row whose value is to be queried
  `columnIndex` - the column whose value is to be queried
Returns:
  the value Object at the specified cell

### setValueAt

public void setValueAt(Object aValue, int rowIndex, int columnIndex)
Sets the value in the cell at `columnIndex` and `rowIndex` to `aValue`.

Specified by:
  `setValueAt` in interface `TableModel`
Parameters:
  `aValue` - the new value
  `rowIndex` - the row whose value is to be changed
  `columnIndex` - the column whose value is to be changed
See Also:
  - `getValueAt(int, int)`
  - `isCellEditable(int, int)`

### addTableModelListener

public void addTableModelListener(TableModelListener l)
Adds a listener to the list that is notified each time a change to the data model occurs.

Specified by:
  `addTableModelListener` in interface `TableModel`
Parameters:
  `l` - the TableModelListener

### removeTableModelListener

public void removeTableModelListener(TableModelListener l)
Removes a listener from the list that is notified each time a change to the data model occurs.

Specified by:
  `removeTableModelListener` in interface `TableModel`
Parameters:
  `l` - the TableModelListener

### getEnclosedModel

protected TableModel getEnclosedModel()
Returns the enclosed tablemodel, which is wrapped by this subset table model.

Returns:
  the enclosed table model, never null.

### getStart

protected int getStart()
Returns the start row that should be mapped to row 0 of this model.

Returns:
  the first row that should be visible.

### getEnd

protected int getEnd()
Returns the last row that should be visible.

Returns:
  the number of the last row.