com.smardec.asc.table
Class SortedTableModel

java.lang.Object
  |
  +--javax.swing.table.AbstractTableModel
        |
        +--com.smardec.asc.table.TableModelMapping
              |
              +--com.smardec.asc.table.SortedTableModel
All Implemented Interfaces:
java.util.EventListener, java.io.Serializable, javax.swing.table.TableModel, javax.swing.event.TableModelListener

public class SortedTableModel
extends com.smardec.asc.table.TableModelMapping

An AbstractTableModel implementation with sorting support. It uses supplied RowComparator to sort table rows. The original TableModel is used only as the data source and is not modified.

Sample usage:

    // Old code:
    //    JTable jTable = new JTable(tableModel);
    // New code:
    SortedTableModel sortedTableModel = new SortedTableModel(tableModel);
    JTable jTable = new JTable(sortedTableModel);
    // Adding mouse listener that invokes sorting when table column's header is clicked
    jTable.getTableHeader().addMouseListener(new SortedTableHeaderMouseListener(jTable, sortedTableModel));
    // Adding renderer to display sorting icon
    jTable.getTableHeader().setDefaultRenderer(new SortedTableHeaderRenderer(jTable, sortedTableModel));

See Also:
RowComparator

Field Summary
protected  javax.swing.table.TableModel model
          Original TableModel used as data source.
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
SortedTableModel(javax.swing.table.TableModel model)
          Creates SortedTableModel object with specified TableModel as the data source.
 
Method Summary
 javax.swing.table.TableModel getModel()
          Returns original TableModel used as data source.
 int getRealRowIndex(int rowIndex)
          Returns row index in original TableModelMapping.model by index in current model (view index).
 RowComparator getRowComparator()
          Returns RowComparator used to sort table rows.
 int getSortingColumn()
          Returns current sorting column.
 boolean isAscending()
          Returns ascending sort order property.
 void setAscending(boolean ascending)
          Sets ascending sort order property.
 void setModel(javax.swing.table.TableModel model)
          Sets original TableModel used as data source.
 void setRowComparator(RowComparator rowComparator)
          Sets RowComparator used to sort table rows.
 void setSortingColumn(int sortingColumn)
          Sets sorting column.
 void sort()
          Forces sorting of data contained in TableModelMapping.model.
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getColumnName, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.swing.event.TableModelListener
tableChanged
 
Methods inherited from interface javax.swing.table.TableModel
getColumnCount, getRowCount, getValueAt
 

Field Detail

model

protected javax.swing.table.TableModel model
Original TableModel used as data source.

Constructor Detail

SortedTableModel

public SortedTableModel(javax.swing.table.TableModel model)
Creates SortedTableModel object with specified TableModel as the data source.

Parameters:
model - TableModel used as the data source
Method Detail

getRowComparator

public RowComparator getRowComparator()
Returns RowComparator used to sort table rows. The default is DefaultRowComparator instance.

Returns:
RowComparator used to sort table rows.

setRowComparator

public void setRowComparator(RowComparator rowComparator)
Sets RowComparator used to sort table rows. Invokes sort() before return. The default is DefaultRowComparator instance.

Parameters:
rowComparator - RowComparator used to sort table rows

getSortingColumn

public int getSortingColumn()
Returns current sorting column. The default is 0.

Returns:
current sorting column.

setSortingColumn

public void setSortingColumn(int sortingColumn)
Sets sorting column. The default is 0.

Parameters:
sortingColumn - new sorting column

isAscending

public boolean isAscending()
Returns ascending sort order property. The default is true.

Returns:
ascending sort order property, true if ascending order is used for sorting, false otherwise.

setAscending

public void setAscending(boolean ascending)
Sets ascending sort order property. The default is true.

Parameters:
ascending - ascending sort order property, true if ascending order should be used for sorting, false otherwise

sort

public void sort()
Forces sorting of data contained in TableModelMapping.model. The original TableModelMapping.model is not modified.


getRealRowIndex

public int getRealRowIndex(int rowIndex)
Returns row index in original TableModelMapping.model by index in current model (view index).

Parameters:
rowIndex - index in current model (view index)
Returns:
row index in original TableModelMapping.model.

getModel

public javax.swing.table.TableModel getModel()
Returns original TableModel used as data source.

Returns:
original TableModel used as data source.

setModel

public void setModel(javax.swing.table.TableModel model)
Sets original TableModel used as data source.

Parameters:
model - original TableModel used as data source


Copyright © 2003-2005 Smardec. All Rights Reserved.