Class 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

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.