org.jdesktop.swingx.sort
Class TableSortController<M extends TableModel>
java.lang.Object
javax.swing.RowSorter<M>
javax.swing.DefaultRowSorter<M,Integer>
org.jdesktop.swingx.sort.DefaultSortController<M>
org.jdesktop.swingx.sort.TableSortController<M>
- All Implemented Interfaces:
- SortController<M>
public class TableSortController<M extends TableModel>
- extends DefaultSortController<M>
A SortController to use for a JXTable.
PENDING JW: should move up to DefaultRowSorter for re-use in ListRowSorter, but as long
as we don't have the latter ...
|
Method Summary |
Comparator<?> |
getComparator(int column)
Returns the Comparator for the specified
column. |
void |
setModel(M model)
Sets the TableModel to use as the underlying model
for this TableRowSorter. |
protected boolean |
useToString(int column)
Returns whether or not to convert the value to a string before
doing comparisons when sorting. |
| Methods inherited from class org.jdesktop.swingx.sort.DefaultSortController |
getDefaultSortOrderCycle, getSortOrder, getSortOrderCycle, getStringValueProvider, isSortable, isSortable, resetSortOrders, setSortable, setSortable, setSortOrder, setSortOrderCycle, setStringValueProvider, toggleSortOrder |
| Methods inherited from class javax.swing.DefaultRowSorter |
allRowsChanged, convertRowIndexToModel, convertRowIndexToView, getMaxSortKeys, getModel, getModelRowCount, getModelWrapper, getRowFilter, getSortKeys, getSortsOnUpdates, getViewRowCount, modelStructureChanged, rowsDeleted, rowsInserted, rowsUpdated, rowsUpdated, setComparator, setMaxSortKeys, setModelWrapper, setRowFilter, setSortKeys, setSortsOnUpdates, sort |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TableSortController
public TableSortController()
TableSortController
public TableSortController(M model)
- Parameters:
model -
setModel
public void setModel(M model)
- Sets the
TableModel to use as the underlying model
for this TableRowSorter. A value of null
can be used to set an empty model.
- Parameters:
model - the underlying model to use, or null
getComparator
public Comparator<?> getComparator(int column)
- Returns the
Comparator for the specified
column. If a Comparator has not been specified using
the setComparator method a Comparator
will be returned based on the column class
(TableModel.getColumnClass) of the specified column.
If the column class is String,
Collator.getInstance is returned. If the
column class implements Comparable a private
Comparator is returned that invokes the
compareTo method. Otherwise
Collator.getInstance is returned.
PENDING JW: think about implications to string value lookup!
- Specified by:
getComparator in interface SortController<M extends TableModel>- Overrides:
getComparator in class DefaultRowSorter<M extends TableModel,Integer>
- Parameters:
column - the column to fetch the Comparator for, in
terms of the underlying model
- Returns:
- the
Comparator for the specified column
- Throws:
IndexOutOfBoundsException - if column is outside
the range of the underlying model
useToString
protected boolean useToString(int column)
- Returns whether or not to convert the value to a string before
doing comparisons when sorting. If true
ModelWrapper.getStringValueAt will be used, otherwise
ModelWrapper.getValueAt will be used. It is up to
subclasses, such as TableRowSorter, to honor this value
in their ModelWrapper implementation.
Note: must implement same logic as the overridden comparator
lookup, otherwise will throw ClassCastException because
here the comparator is never null.
PENDING JW: think about implications to string value lookup!
- Overrides:
useToString in class DefaultRowSorter<M extends TableModel,Integer>
- Parameters:
column - the index of the column to test, in terms of the
underlying model
- Throws:
IndexOutOfBoundsException - if column is not valid