weka.gui
Class SortedTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by weka.gui.SortedTableModel
All Implemented Interfaces:
java.io.Serializable, java.util.EventListener, javax.swing.event.TableModelListener, javax.swing.table.TableModel
Direct Known Subclasses:
ArffSortedTableModel

public class SortedTableModel
extends javax.swing.table.AbstractTableModel
implements javax.swing.event.TableModelListener

Represents a TableModel with sorting functionality.

Version:
$Revision: 1.3 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
Serialized Form

Constructor Summary
SortedTableModel()
          initializes with no model
SortedTableModel(javax.swing.table.TableModel model)
          initializes with the given model
 
Method Summary
 void addMouseListenerToHeader(javax.swing.JTable table)
          adds a mouselistener to the header
 int getActualRow(int visibleRow)
          Returns the actual underlying row the given visible one represents.
 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
 javax.swing.table.TableModel getModel()
          returns the current model, can be null
 int getRowCount()
          Returns the number of rows in the 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.
 boolean isSorted()
          returns whether the table was sorted
 void setModel(javax.swing.table.TableModel value)
          sets the model to use
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
          Sets the value in the cell at columnIndex and rowIndex to aValue.
 void sort(int columnIndex)
          sorts the table over the given column (ascending)
 void sort(int columnIndex, boolean ascending)
          sorts the table over the given column, either ascending or descending
 void tableChanged(javax.swing.event.TableModelEvent e)
          This fine grain notification tells listeners the exact range of cells, rows, or columns that changed.
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SortedTableModel

public SortedTableModel()
initializes with no model


SortedTableModel

public SortedTableModel(javax.swing.table.TableModel model)
initializes with the given model

Parameters:
model - the model to initialize the sorted model with
Method Detail

setModel

public void setModel(javax.swing.table.TableModel value)
sets the model to use

Parameters:
value - the model to use

getModel

public javax.swing.table.TableModel getModel()
returns the current model, can be null

Returns:
the current model

isSorted

public boolean isSorted()
returns whether the table was sorted

Returns:
true if the table was sorted

getActualRow

public int getActualRow(int visibleRow)
Returns the actual underlying row the given visible one represents. Useful for retrieving "non-visual" data that is also stored in a TableModel.

Parameters:
visibleRow - the displayed row to retrieve the original row for
Returns:
the original row

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
Returns the most specific superclass for all the cell values in the column.

Specified by:
getColumnClass in interface javax.swing.table.TableModel
Overrides:
getColumnClass in class javax.swing.table.AbstractTableModel
Parameters:
columnIndex - the index of the column
Returns:
the class of the specified column

getColumnCount

public int getColumnCount()
Returns the number of columns in the model

Specified by:
getColumnCount in interface javax.swing.table.TableModel
Returns:
the number of columns in the model

getColumnName

public java.lang.String getColumnName(int columnIndex)
Returns the name of the column at columnIndex

Specified by:
getColumnName in interface javax.swing.table.TableModel
Overrides:
getColumnName in class javax.swing.table.AbstractTableModel
Parameters:
columnIndex - the column to retrieve the name for
Returns:
the name of the specified column

getRowCount

public int getRowCount()
Returns the number of rows in the model.

Specified by:
getRowCount in interface javax.swing.table.TableModel
Returns:
the number of rows in the model

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
columnIndex - the column
Returns:
the value of the sepcified cell

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Returns true if the cell at rowIndex and columnIndex is editable.

Specified by:
isCellEditable in interface javax.swing.table.TableModel
Overrides:
isCellEditable in class javax.swing.table.AbstractTableModel
Parameters:
rowIndex - the row
columnIndex - the column
Returns:
true if the cell is editable

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
Overrides:
setValueAt in class javax.swing.table.AbstractTableModel
Parameters:
aValue - the new value of the cell
rowIndex - the row
columnIndex - the column

sort

public void sort(int columnIndex)
sorts the table over the given column (ascending)

Parameters:
columnIndex - the column to sort over

sort

public void sort(int columnIndex,
                 boolean ascending)
sorts the table over the given column, either ascending or descending

Parameters:
columnIndex - the column to sort over
ascending - ascending if true, otherwise descending

tableChanged

public void tableChanged(javax.swing.event.TableModelEvent e)
This fine grain notification tells listeners the exact range of cells, rows, or columns that changed.

Specified by:
tableChanged in interface javax.swing.event.TableModelListener
Parameters:
e - the event

addMouseListenerToHeader

public void addMouseListenerToHeader(javax.swing.JTable table)
adds a mouselistener to the header

Parameters:
table - the table to add the listener to