ca.odell.glazedlists.swing
Class TableComparatorChooser<E>
public class TableComparatorChooser<E>
A TableComparatorChooser is a tool that allows the user to sort a ListTable by clicking
on the table's headers. It requires that the
JTable
s model is an
EventTableModel
with a
SortedList
as a source.
This class includes custom arrow icons that indicate the sort
order. The icons used are chosen based on the current Swing look and feel.
Icons are available for the following look and feels: Mac OS X, Metal, Windows.
This class supports multiple sort strategies for each
column, specified by having muliple comparators for each column. This may
be useful when you want to sort a single column in either of two ways. For
example, when sorting movie names, "The Phantom Menace" may be sorted under
"T" for "The", or "P" for "Phantom".
This class supports sorting multiple columns simultaneously.
In this mode, the user clicks a first column to sort by, and then the user
clicks subsequent columns. The list is sorted by the first column and ties
are broken by the second column.
If the
EventTableModel
uses an
AdvancedTableFormat
, its
AdvancedTableFormat.getColumnComparator(int)
method will be used to
populate the initial column
Comparator
s.
TableComparatorChooser(JTable table, SortedList sortedList, Object strategy) - 9/25/06 replaced with
TableComparatorChooser , which is functionally
identical but uses a more fitting name to convey the action that is
performed and fixes an API flaw by explicitly requiring the TableFormat.
|
TableComparatorChooser(JTable table, SortedList sortedList, Object strategy, E> tableFormat) - Creates and installs a TableComparatorChooser.
|
TableComparatorChooser(JTable table, SortedList sortedList, boolean multipleColumnSort) - replaced with
TableComparatorChooser , which is functionally
identical but uses a more fitting name to convey the action that is
performed and fixes an API flaw by explicitly requiring the TableFormat.
|
static | TableComparatorChooser install(JTable table, SortedList sortedList, Object strategy) - Installs a new TableComparatorChooser that responds to clicks on the
header of the specified table and uses them to sort the specified
sortedList by delegating to the given strategy
If at any time the table should no longer sort, the behaviour can be
removed calling dispose() on the object returned by this method.
|
static | TableComparatorChooser install(JTable table, SortedList sortedList, Object strategy, E> tableFormat) - Installs a new TableComparatorChooser that responds to clicks on the
header of the specified table and uses them to sort the specified
sortedList by delegating to the given strategy
If at any time the table should no longer sort, the behaviour can be
removed calling dispose() on the object returned by this method.
|
void | addSortActionListener(ActionListener sortActionListener) - Registers the specified
ActionListener to receive notification whenever
the JTable is sorted by this TableComparatorChooser .
|
TableCellRenderer | createSortArrowHeaderRenderer(TableCellRenderer delegateRenderer) - Decorates and returns the given
delegateRenderer with
functionality that attempts to install a sorting icon into the Component
returned by the delegateRenderer .
|
void | dispose() - Releases the resources consumed by this
TableComparatorChooser so that it
may eventually be garbage collected.
|
protected int | getSortingStyle(int column) - Gets the sorting style currently applied to the specified column.
|
protected boolean | isSortingMouseEvent(MouseEvent e) - Determines if the specified mouse event shall be handled by this
TableComparatorChooser .
|
protected void | rebuildComparator() - Updates the comparator in use and applies it to the table.
|
protected void | redetectComparator(E> currentComparator) - Examines the current
Comparator of the SortedList and
adds icons to the table header renderers in response.
|
void | removeSortActionListener(ActionListener sortActionListener) - Deregisters the specified
ActionListener to no longer receive
action events.
|
static void | setIconPath(String path) - Set all
TableComparatorChooser s to use the icons from the directory
specified.
|
appendComparator , clearComparator , createComparatorForElement , createSortingState , dispose , fromString , getColumnComparatorIndex , getComparatorsForColumn , getSortingColumns , getSortingStyle , isColumnReverse , rebuildComparator , redetectComparator , setTableFormat , toString |
TableComparatorChooser
public TableComparatorChooser(JTable table,
SortedList sortedList,
Object strategy)
9/25/06 replaced with TableComparatorChooser
, which is functionally
identical but uses a more fitting name to convey the action that is
performed and fixes an API flaw by explicitly requiring the TableFormat.
Creates and installs a TableComparatorChooser.
TableComparatorChooser
protected TableComparatorChooser(JTable table,
SortedList sortedList,
Object strategy,
E> tableFormat)
Creates and installs a TableComparatorChooser.
table
- the table with headers that can be clicked onsortedList
- the sorted list to updatestrategy
- an implementations of ca.odell.glazedlists.impl.gui.SortingStrategy
, typically one of
tableFormat
- the TableFormat providing the columns for the table
TableComparatorChooser
public TableComparatorChooser(JTable table,
SortedList sortedList,
boolean multipleColumnSort)
replaced with TableComparatorChooser
, which is functionally
identical but uses a more fitting name to convey the action that is
performed and fixes an API flaw by explicitly requiring the TableFormat.
Creates and installs a TableComparatorChooser.
TableComparatorChooser install
public static TableComparatorChooser install(JTable table,
SortedList sortedList,
Object strategy)
Installs a new TableComparatorChooser that responds to clicks on the
header of the specified table and uses them to sort the specified
sortedList
by delegating to the given
strategy
If at any time the table should no longer sort, the behaviour can be
removed calling
dispose()
on the object returned by this method.
This method assumes that the JTable is backed by an EventTableModel
and it is from that EventTableModel that the TableFormat should be
extracted. This is, by far, the typical case and so we provide this
simpler install method for convenience.
table
- the table with headers that can be clicked onsortedList
- the sorted list to updatestrategy
- an implementations of SortingStrategy
, typically one of
- TableComparatorChooser object that is responsible for translating
mouse clicks on the table header into sorting actions on the sortedList.
TableComparatorChooser install
public static TableComparatorChooser install(JTable table,
SortedList sortedList,
Object strategy,
E> tableFormat)
Installs a new TableComparatorChooser that responds to clicks on the
header of the specified table and uses them to sort the specified
sortedList
by delegating to the given
strategy
If at any time the table should no longer sort, the behaviour can be
removed calling
dispose()
on the object returned by this method.
This method makes no assumptions about the TableModel implementation
that backs the JTable. As such, it requires the TableFormat as an explicit
parameter and expects the TableFormat to be constant (i.e. never changes)
for the life of the TableComparatorChooser.
table
- the table with headers that can be clicked onsortedList
- the sorted list to updatestrategy
- an implementations of SortingStrategy
, typically one of
tableFormat
- the TableFormat providing the columns for the table
- TableComparatorChooser object that is responsible for translating
mouse clicks on the table header into sorting actions on the sortedList.
addSortActionListener
public void addSortActionListener(ActionListener sortActionListener)
Registers the specified
ActionListener
to receive notification whenever
the
JTable
is sorted by this
TableComparatorChooser
.
createSortArrowHeaderRenderer
public TableCellRenderer createSortArrowHeaderRenderer(TableCellRenderer delegateRenderer)
Decorates and returns the given
delegateRenderer
with
functionality that attempts to install a sorting icon into the Component
returned by the
delegateRenderer
. In particular, the
delegateRenderer
will be decorated with a sorting icon in
one of two scenarios:
- the delegateRenderer implements
SortableRenderer
- in this
case setSortIcon
is called on
the delegateRenderer and it is expected to place the icon anywhere
it desires on the Component it returns. This allows maximum
flexibility when displaying the sort icon.
- the Component returned by the delegateRenderer is a JLabel - in
this case
setIcon
is called on the JLabel
with the sort icon. This caters to the typical case when a
javax.swing.table.DefaultTableCellRenderer
is used as the
delegateRenderer.
If neither of these scenarios are true of the given delegateRenderer
then no sort indicator arrows will be added to the renderer's component.
delegateRenderer
- the TableCellRenderer acting as a table header
renderer and to which a sort icon should be added
- a TableCellRenderer that attempts to decorate the given
delegateRenderer
with a sort icon
isSortingMouseEvent
protected boolean isSortingMouseEvent(MouseEvent e)
Determines if the specified mouse event shall be handled by this
TableComparatorChooser
. The default implementation handles only clicks
with the left mouse button. Extending classes can customize which mouse
events the table comparator chooser responds to by overriding this method.
As of 2005/12/20, this method is no longer called when the
corresponding mouse press event was a popup trigger. In effect, if this
is a right-click on Windows or a 'control-click' on the Mac.
As of 2008/02/05, this method is no longer called when the
Cursor over the JTableHeader indicates a column resize is expected to
take place, rather than a change in sort.
redetectComparator
protected void redetectComparator(E> currentComparator)
Examines the current
Comparator
of the SortedList and
adds icons to the table header renderers in response.
To do this, clicks are injected into each of the
corresponding
ColumnClickTracker
s.
- redetectComparator in interface AbstractTableComparatorChooser<E>
removeSortActionListener
public void removeSortActionListener(ActionListener sortActionListener)
Deregisters the specified ActionListener
to no longer receive
action events.
setIconPath
public static void setIconPath(String path)
Set all
TableComparatorChooser
s to use the icons from the directory
specified. The folder should contain the following eight icon files:
primary_sorted.png secondary_sorted.png
primary_sorted_alternate.png secondary_sorted_alternate.png
primary_sorted_alternate_reverse.png secondary_sorted_alternate_reverse.png
primary_sorted_reverse.png secondary_sorted_reverse.png
Note that this path must be on the system classpath. It may be within a
jar file.
Glazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by pbuilder at 2009-07-14 22:05