| com.anthonyeden.lib.util.TableMap com.anthonyeden.lib.util.TableSorter
TableSorter | public class TableSorter extends TableMap (Code) | | A sorter for TableModels. The sorter has a model (conforming to TableModel)
and itself implements TableModel. TableSorter does not store or copy
the data in the TableModel, instead it maintains an array of
integers which it keeps the same size as the number of rows in its
model. When the model changes it notifies the sorter that something
has changed eg. "rowsAdded" so that its internal array of integers
can be reallocated. As requests are made of the sorter (like
getValueAt(row, col) it redirects them to its model via the mapping
array. That way the TableSorter appears to hold another copy of the table
with the rows in a different order. The sorting algorthm used is stable
which means that it does not move around rows when its comparison
function returns 0 to denote that they are equivalent.
version: 1.5 12/17/97 author: Philip Milne, Anthony Eden |
Constructor Summary | |
public | TableSorter() Construct a TableSorter with no TableModel. | public | TableSorter(TableModel model) Construct a TableSorter with the given TableModel. |
Method Summary | |
public void | addMouseListenerToHeaderInTable(JTable table) Add a MouseListener to the given table which will cause the table
to be sorted when the header is clicked. | public void | checkModel() Check to see if the index length matches the model row count. | public int | compare(int row1, int row2) Compare two rows. | public int | compareRowsByColumn(int row1, int row2, int column) Compare values row by row. | public int | getColumn() Get the column which is being sorted. | public int | getRealIndex(int row) Get the real index of the given row. | public Object | getValueAt(int aRow, int aColumn) | public boolean | isAscending() Return true if the data is sorted in ascending order. | public void | n2sort() | public void | reallocateIndexes() Reallocate the array which holds sorted indexes. | public void | setModel(TableModel model) Set the TableModel. | public void | setValueAt(Object aValue, int aRow, int aColumn) | public void | shuttlesort(int from, int to, int low, int high) | public void | sort(Object sender) Sort the table data. | public void | sortByColumn(int column) Sort by the given column in ascending order. | public void | sortByColumn(int column, boolean ascending) Sort by the given column and order. | public void | swap(int i, int j) | public void | tableChanged(TableModelEvent e) Fire a TableModelEvent signaling that the table has changed. |
ascending | boolean ascending(Code) | | |
TableSorter | public TableSorter()(Code) | | Construct a TableSorter with no TableModel.
|
TableSorter | public TableSorter(TableModel model)(Code) | | Construct a TableSorter with the given TableModel.
Parameters: model - The TableModel |
addMouseListenerToHeaderInTable | public void addMouseListenerToHeaderInTable(JTable table)(Code) | | Add a MouseListener to the given table which will cause the table
to be sorted when the header is clicked. The table will be sorted
in ascending order initially. If the table was already sorted in
ascending order and the same column is clicked then the order will
be reversed.
Parameters: table - The JTable |
checkModel | public void checkModel()(Code) | | Check to see if the index length matches the model row count. If
not then the sorter was never informed of a change in the model.
|
compare | public int compare(int row1, int row2)(Code) | | Compare two rows. All sorting columns will be sorted.
Parameters: row1 - Row 1 Parameters: row2 - Row 2 1, 0, or -1 |
compareRowsByColumn | public int compareRowsByColumn(int row1, int row2, int column)(Code) | | Compare values row by row. This method can compare Strings, Booleans,
Dates, or Numbers. It compares objects by calling each object's toString()
method and then comparing the Strings. It can also compare objects which
implement the java.lang.Comparable interface.
Parameters: row1 - Row 1 Parameters: row2 - Row 2 Parameters: column - The column to sort 1 If row 1 is greater than row 2, -1 if row 1 is less thanrow 2, or 0 if the values match |
getColumn | public int getColumn()(Code) | | Get the column which is being sorted.
The sorted column |
getRealIndex | public int getRealIndex(int row)(Code) | | Get the real index of the given row.
Parameters: row - The row index The index |
getValueAt | public Object getValueAt(int aRow, int aColumn)(Code) | | |
isAscending | public boolean isAscending()(Code) | | Return true if the data is sorted in ascending order.
True if sorted in ascending order |
n2sort | public void n2sort()(Code) | | |
reallocateIndexes | public void reallocateIndexes()(Code) | | Reallocate the array which holds sorted indexes.
|
setModel | public void setModel(TableModel model)(Code) | | Set the TableModel.
Parameters: model - The TableModel |
setValueAt | public void setValueAt(Object aValue, int aRow, int aColumn)(Code) | | |
shuttlesort | public void shuttlesort(int from, int to, int low, int high)(Code) | | |
sort | public void sort(Object sender)(Code) | | Sort the table data.
Parameters: sender - The object which invoked the sort |
sortByColumn | public void sortByColumn(int column)(Code) | | Sort by the given column in ascending order.
Parameters: column - The column |
sortByColumn | public void sortByColumn(int column, boolean ascending)(Code) | | Sort by the given column and order.
Parameters: column - The column Parameters: ascending - True to sort in ascending order |
swap | public void swap(int i, int j)(Code) | | |
tableChanged | public void tableChanged(TableModelEvent e)(Code) | | Fire a TableModelEvent signaling that the table has changed.
Parameters: e - The TableModelEvent |
|
|