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