# Class StarTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
uk.ac.starlink.table.gui.StarTableModel

All Implemented Interfaces:
  `Serializable, TableModel`

public class StarTableModel extends AbstractTableModel
Adapts a `StarTable` into a `TableModel`. The base StarTable must provide random access (its `isRandom` method must return `true`); to make a StarTableModel if your StarTable is not random you will have to make a random one using for instance `Tables.randomTable(StarTable)`.

One extra bit of functionality is enabled, namely that an extra column containing row indices may be provided.

As well as providing the data model for a `JTable`, this class can be used as a general wrapper for `StarTable` objects when the event handling mechanism it supplies is required.

Author:
  Mark Taylor (Starlink)
See Also:
  - `JTable`
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`protected StarTable`
`startable`

### Fields inherited from class AbstractTableModel

`listenerList`

## Constructor Summary

Constructors
Constructor
Description
`StarTableModel(StarTable startable)`
Constructs a `StarTableModel` from a `StarTable`, without row index column.
`StarTableModel(StarTable startable, boolean rowHeader)`
Constructs a `StarTableModel` from a `StarTable`, optionally with a row index column.

## Method Summary

Modifier and Type
Method
Description
`Class<?>`
`getColumnClass(int icol)`
`int`
`getColumnCount()`
`String`
`getColumnName(int icol)`
`int`
`getRowCount()`
`StarTable`
`getStarTable()`
Gets the `StarTable` underlying this model.
`Object`
`getValueAt(int irow, int icol)`
`boolean`
`hasRowHeader()`
Indicates whether the first column in this table is an artificial one containing just the index of the row.

### Methods inherited from class AbstractTableModel

`addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt`

### Methods inherited from class Object

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

## Field Details

### startable

protected StarTable startable

## Constructor Details

### StarTableModel

public StarTableModel(StarTable startable)
Constructs a `StarTableModel` from a `StarTable`, without row index column. The supplied `StarTable` must provide random access.

Parameters:
  `startable` - the `StarTable` object
Throws:
  `IllegalArgumentException` - if `startable.isRandom` returns `false`
See Also:
  - `Tables.randomTable(StarTable)`

### StarTableModel

public StarTableModel(StarTable startable, boolean rowHeader)
Constructs a `StarTableModel` from a `StarTable`, optionally with a row index column. The supplied `StarTable` must provide random access.

Parameters:
  `startable` - the `StarTable` object
  `rowHeader` - whether to add an extra column at the start containing the row index
Throws:
  `IllegalArgumentException` - if `startable.isRandom` returns `false`
See Also:
  - `Tables.randomTable(StarTable)`

## Method Details

### hasRowHeader

public boolean hasRowHeader()
Indicates whether the first column in this table is an artificial one containing just the index of the row.

Returns:
  `true` iff column 0 is a row index

### getStarTable

public StarTable getStarTable()
Gets the `StarTable` underlying this model.

Returns:
  the `StarTable` object

### getRowCount

public int getRowCount()

### getColumnCount

public int getColumnCount()

### getValueAt

public Object getValueAt(int irow, int icol)

### getColumnName

public String getColumnName(int icol)

Specified by:
  `getColumnName` in interface `TableModel`
Overrides:
  `getColumnName` in class `AbstractTableModel`

### getColumnClass

public Class<?> getColumnClass(int icol)

Specified by:
  `getColumnClass` in interface `TableModel`
Overrides:
  `getColumnClass` in class `AbstractTableModel`