## org.jfree.report.modules.misc.tablemodel
Class SubSetTableModel

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

All Implemented Interfaces:
  javax.swing.table.TableModel

    public class SubSetTableModel

extends java.lang.Object
implements javax.swing.table.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
`SubSetTableModel(int start, int end, javax.swing.table.TableModel model)` Creates a new SubSetTableModel, the start and the end parameters define the new tablemodel row count.

Method Summary
`void` `addTableModelListener(javax.swing.event.TableModelListener l)` Adds a listener to the list that is notified each time a change to the data model occurs.
`java.lang.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.
`java.lang.String` `getColumnName(int columnIndex)` Returns the name of the column at `columnIndex`.
`protected javax.swing.table.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.
`java.lang.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(javax.swing.event.TableModelListener l)` Removes a listener from the list that is notified each time a change to the data model occurs.
`void` `setValueAt(java.lang.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 Detail

### SubSetTableModel

    public SubSetTableModel(int start,
                            int end,
                            javax.swing.table.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:
    `java.lang.NullPointerException` - if the given model is null
    `java.lang.IllegalArgumentException` - if start or end are invalid.

Method Detail

### 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 `javax.swing.table.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 `javax.swing.table.TableModel`
  Returns:
    the number of columns in the model
  See Also:
    `getRowCount()`

### getColumnName

    public java.lang.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 `javax.swing.table.TableModel`
  Parameters:
    `columnIndex` - the index of the column
  Returns:
    the name of the column

### getColumnClass

    public java.lang.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 `javax.swing.table.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 `javax.swing.table.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 java.lang.Object getValueAt(int rowIndex,
                                       int columnIndex)

  Returns the value for the cell at `columnIndex` and `rowIndex`.

  Specified by:
    `getValueAt` in interface `javax.swing.table.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(java.lang.Object aValue,
                           int rowIndex,
                           int columnIndex)

  Sets the value in the cell at `columnIndex` and `rowIndex` to `aValue`.

  Specified by:
    `setValueAt` in interface `javax.swing.table.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(javax.swing.event.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 `javax.swing.table.TableModel`
  Parameters:
    `l` - the TableModelListener

### removeTableModelListener

    public void removeTableModelListener(javax.swing.event.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 `javax.swing.table.TableModel`
  Parameters:
    `l` - the TableModelListener

### getEnclosedModel

    protected javax.swing.table.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.