uk.ac.starlink.table.gui

## Class StarTableModel

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

- All Implemented Interfaces:
    java.io.Serializable, javax.swing.table.TableModel

      public class StarTableModel
      extends javax.swing.table.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(uk.ac.starlink.table.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.

  See Also:
    `JTable`, Serialized Form

- - ### Field Summary

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

    - ### Fields inherited from class javax.swing.table.AbstractTableModel

      `listenerList`

  - ### Constructor Summary

    Constructors
    Constructor and 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Class<?>` | `getColumnClass(int icol)`
    `int` | `getColumnCount()`
    `java.lang.String` | `getColumnName(int icol)`
    `int` | `getRowCount()`
    `StarTable` | `getStarTable()` Gets the `StarTable` underlying this model.
    `java.lang.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 javax.swing.table.AbstractTableModel

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

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

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

- - ### Field Detail

    - #### startable

          protected StarTable startable

  - ### Constructor Detail

    - #### 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:
        `java.lang.IllegalArgumentException` - if `startable.isRandom` returns `false`
      See Also:
        `Tables.randomTable(uk.ac.starlink.table.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:
        `java.lang.IllegalArgumentException` - if `startable.isRandom` returns `false`
      See Also:
        `Tables.randomTable(uk.ac.starlink.table.StarTable)`

  - ### Method Detail

    - #### 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 java.lang.Object getValueAt(int irow,
                                             int icol)

    - #### getColumnName

          public java.lang.String getColumnName(int icol)

      Specified by:
        `getColumnName` in interface `javax.swing.table.TableModel`
      Overrides:
        `getColumnName` in class `javax.swing.table.AbstractTableModel`

    - #### getColumnClass

          public java.lang.Class<?> getColumnClass(int icol)

      Specified by:
        `getColumnClass` in interface `javax.swing.table.TableModel`
      Overrides:
        `getColumnClass` in class `javax.swing.table.AbstractTableModel`