Class ArrayTableModel<R>

java.lang.Object
javax.swing.table.AbstractTableModel
uk.ac.starlink.util.gui.ArrayTableModel<R>
All Implemented Interfaces:
Serializable, TableModel

public class ArrayTableModel<R> extends AbstractTableModel
TableModel which contains its data as an array of objects, one per row. The ArrayTableSorter class can be used in conjunction with this class to provide tables which can be sorted by clicking on column headers. The model works by having an array of column objects which know how to interrogate the array of data objects in such a way as to return cell values. The implementation of the column and data item objects is therefore interlinked.
Since:
14 Oct 2009
Author:
Mark Taylor
See Also:
  • Constructor Details

    • ArrayTableModel

      public ArrayTableModel(R[] items)
      Constructor.
      Parameters:
      items - initial list of items
  • Method Details

    • setColumns

      public void setColumns(List<? extends ArrayTableColumn<? extends R,?>> columns)
      Sets the column specifiers to be used by this table.
      Parameters:
      columns - column specifiers
    • getColumns

      public List<ArrayTableColumn<R,?>> getColumns()
      Returns the column specifiers used by this table.
      Returns:
      column specifiers
    • setItems

      public void setItems(R[] items)
      Sets the row data items to be used by this table.
      Parameters:
      items - row data items, one per row
    • getItems

      public R[] getItems()
      Returns the row data items used by this model.
      Returns:
      row data items, one per row
    • sortByColumn

      public void sortByColumn(int icol, boolean descending)
      Sorts the rows in this table according to the ordering of the data in one of the columns. The ordering may not be maintained if the data changes.
      Parameters:
      icol - index of column to sort by
      descending - true to sort down, false to sort up
    • getColumnCount

      public int getColumnCount()
    • getRowCount

      public int getRowCount()
    • 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