org.jdesktop.swingx.sort
Class TableSortController<M extends TableModel>

java.lang.Object
  extended by javax.swing.RowSorter<M>
      extended by javax.swing.DefaultRowSorter<M,Integer>
          extended by org.jdesktop.swingx.sort.DefaultSortController<M>
              extended by 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.

Author:
Jeanette Winzenburg

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.DefaultRowSorter
DefaultRowSorter.ModelWrapper<M,I>
 
Nested classes/interfaces inherited from class javax.swing.RowSorter
RowSorter.SortKey
 
Field Summary
 
Fields inherited from class org.jdesktop.swingx.sort.DefaultSortController
cachedModelRowCount, COMPARABLE_COMPARATOR
 
Constructor Summary
TableSortController()
           
TableSortController(M model)
           
 
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)
          
 
Methods inherited from class org.jdesktop.swingx.sort.DefaultSortController
allRowsChanged, convertRowIndexToModel, convertRowIndexToView, getDefaultSortOrderCycle, getModelRowCount, getSortOrder, getSortOrderCycle, getStringValueProvider, getViewRowCount, isSortable, isSortable, modelStructureChanged, resetSortOrders, rowsDeleted, rowsInserted, setSortable, setSortable, setSortOrder, setSortOrderCycle, setStringValueProvider, toggleSortOrder
 
Methods inherited from class javax.swing.DefaultRowSorter
getMaxSortKeys, getModel, getModelWrapper, getRowFilter, getSortKeys, getSortsOnUpdates, rowsUpdated, rowsUpdated, setComparator, setMaxSortKeys, setModelWrapper, setRowFilter, setSortKeys, setSortsOnUpdates, sort
 
Methods inherited from class javax.swing.RowSorter
addRowSorterListener, fireRowSorterChanged, fireSortOrderChanged, removeRowSorterListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jdesktop.swingx.sort.SortController
getRowFilter, getSortsOnUpdates, setComparator, setRowFilter, setSortsOnUpdates
 

Constructor Detail

TableSortController

public TableSortController()

TableSortController

public TableSortController(M model)
Parameters:
model -
Method Detail

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)

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>
Throws:
IndexOutOfBoundsException


Copyright © 2012. All Rights Reserved.