| public abstract class javax.swing DefaultRowSorter<M, I>
|
Java SE 6 |
RowSorter that provides sorting and
filtering around a grid-based data model.
Beyond creating and installing a RowSorter, you very rarely
need to interact with one directly. Refer to
TableRowSorter for a concrete
implementation of RowSorter for JTable.
Sorting is done based on the current SortKeys, in order.
If two objects are equal (the Comparator for the
column returns 0) the next SortKey is used. If no
SortKeys remain or the order is UNSORTED, then
the order of the rows in the model is used.
Sorting of each column is done by way of a Comparator
that you can specify using the setComparator method.
If a Comparator has not been specified, the
Comparator returned by
Collator.getInstance() is used on the results of
calling toString on the underlying objects. The
Comparator is never passed null. A
null value is treated as occuring before a
non-null value, and two null values are
considered equal.
If you specify a Comparator that casts its argument to
a type other than that provided by the model, a
ClassCastException will be thrown when the data is sorted.
In addition to sorting, DefaultRowSorter provides the
ability to filter rows. Filtering is done by way of a
RowFilter that is specified using the
setRowFilter method. If no filter has been specified all
rows are included.
By default, rows are in unsorted order (the same as the model) and
every column is sortable. The default Comparators are
documented in the subclasses (for example, TableRowSorter).
If the underlying model structure changes (the
modelStructureChanged method is invoked) the following
are reset to their default values: Comparators by
column, current sort order, and whether each column is sortable. To
find the default Comparators, see the concrete
implementation (for example, TableRowSorter). The default
sort order is unsorted (the same as the model), and columns are
sortable by default.
If the underlying model structure changes (the
modelStructureChanged method is invoked) the following
are reset to their default values: Comparators by column,
current sort order and whether a column is sortable.
DefaultRowSorter is an abstract class. Concrete
subclasses must provide access to the underlying data by invoking
setModelWrapper. The setModelWrapper method
must be invoked soon after the constructor is
called, ideally from within the subclass's constructor.
Undefined behavior will result if you use a DefaultRowSorter without specifying a ModelWrapper.
DefaultRowSorter has two formal type parameters. The
first type parameter corresponds to the class of the model, for example
DefaultTableModel. The second type parameter
corresponds to the class of the identifier passed to the
RowFilter. Refer to TableRowSorter and
RowFilter for more details on the type parameters.
| M | the type of the model |
| I | the type of the identifier passed to the RowFilter |
| version | 1.20 06/23/06 |
| since | 1.6 |
| See also | javax.swing.table.TableRowSorter, javax.swing.table.DefaultTableModel, java.text.Collator |
| Constructors | |
|---|---|
| public | DefaultRowSorter() Creates an empty DefaultRowSorter.
|
| Methods | |||||||
|---|---|---|---|---|---|---|---|
| public void | allRowsChanged() Invoked when the contents of the underlying model have completely changed. The structure of the table is the same, only the contents have changed. This is typically sent when it is too expensive to characterize the change in terms of the other methods. You normally do not call this method. This method is public to allow view classes to call it. | ||||||
| public int | convertRowIndexToModel(int index) Details
Returns the location of index in terms of the
underlying model. That is, for the row index in
the coordinates of the view this returns the row index in terms
of the underlying model.
| ||||||
| public int | convertRowIndexToView(int index) Details
Returns the location of index in terms of the
view. That is, for the row index in the
coordinates of the underlying model this returns the row index
in terms of the view.
| ||||||
| public void | modelStructureChanged() Invoked when the underlying model structure has completely changed. For example, if the number of columns in a TableModel changed, this method would be invoked.
You normally do not call this method. This method is public to allow view classes to call it. | ||||||
| public void | rowsDeleted(int firstRow, int endRow) Details
Invoked when rows have been deleted from the underlying model
in the specified range (inclusive).
The arguments give the indices of the effected range and are in terms of the model before the change. For example, if you have a 5-row model and delete 3 items from the end of the model the indices are 2, 4. You normally do not call this method. This method is public to allow view classes to call it.
| ||||||
| public void | rowsInserted(int firstRow, int endRow) Details
Invoked when rows have been inserted into the underlying model
in the specified range (inclusive).
The arguments give the indices of the effected range. The first argument is in terms of the model before the change, and must be less than or equal to the size of the model before the change. The second argument is in terms of the model after the change and must be less than the size of the model after the change. For example, if you have a 5-row model and add 3 items to the end of the model the indices are 5, 7. You normally do not call this method. This method is public to allow view classes to call it.
| ||||||
| public void | rowsUpdated(int firstRow, int endRow) Details
Invoked when rows have been changed in the underlying model
between the specified range (inclusive).
You normally do not call this method. This method is public to allow view classes to call it.
| ||||||
| public void | rowsUpdated(int firstRow, int endRow, int column) Details
Invoked when the column in the rows have been updated in
the underlying model between the specified range.
You normally do not call this method. This method is public to allow view classes to call it.
| ||||||
| public void | sort() Details
Sorts and filters the rows in the view based on the sort keys
of the columns currently being sorted and the filter, if any,
associated with this sorter. An empty sortKeys list
indicates that the view should unsorted, the same as the model.
| ||||||
| public void | toggleSortOrder(int column) Details
Reverses the sort order from ascending to descending (or
descending to ascending) if the specified column is already the
primary sorted column; otherwise, makes the specified column
the primary sorted column, with an ascending sort order. If
the specified column is not sortable, this method has no
effect.
| ||||||
| protected boolean | useToString(int column) Details
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.
| ||||||
| Properties | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| public void | setComparator(int column, Comparator comparator) Details
Sets the Comparator to use when sorting the specified
column. This does not trigger a sort. If you want to sort after
setting the comparator you need to explicitly invoke sort.
| ||||||||
| public Comparator | getComparator(int column) Details
Returns the Comparator for the specified
column. This will return null if a Comparator
has not been specified for the column.
| ||||||||
| public void | setMaxSortKeys(int max) Details
Sets the maximum number of sort keys. The number of sort keys
determines how equal values are resolved when sorting. For
example, assume a table row sorter is created and
setMaxSortKeys(2) is invoked on it. The user
clicks the header for column 1, causing the table rows to be
sorted based on the items in column 1. Next, the user clicks
the header for column 2, causing the table to be sorted based
on the items in column 2; if any items in column 2 are equal,
then those particular rows are ordered based on the items in
column 1. In this case, we say that the rows are primarily
sorted on column 2, and secondarily on column 1. If the user
then clicks the header for column 3, then the items are
primarily sorted on column 3 and secondarily sorted on column
2. Because the maximum number of sort keys has been set to 2
with setMaxSortKeys, column 1 no longer has an
effect on the order.
The maximum number of sort keys is enforced by
| ||||||||
| public int | getMaxSortKeys() Details
Returns the maximum number of sort keys.
| ||||||||
| final public Object | getModel() Details
Returns the underlying model.
| ||||||||
| public int | getModelRowCount() Returns the number of rows in the underlying model. | ||||||||
| final protected void | setModelWrapper(DefaultRowSorter.ModelWrapper modelWrapper) Details
Sets the model wrapper providing the data that is being sorted and
filtered.
| ||||||||
| final protected DefaultRowSorter.ModelWrapper | getModelWrapper() Details
Returns the model wrapper providing the data that is being sorted and
filtered.
| ||||||||
| public void | setRowFilter(RowFilter filter) Details
Sets the filter that determines which rows, if any, should be
hidden from the view. The filter is applied before sorting. A value
of null indicates all values from the model should be
included.
This method triggers a sort.
| ||||||||
| public RowFilter | getRowFilter() Details
Returns the filter that determines which rows, if any, should
be hidden from view.
| ||||||||
| public void | setSortable(int column, boolean sortable) Details
Sets whether or not the specified column is sortable. The specified
value is only checked when toggleSortOrder is invoked.
It is still possible to sort on a column that has been marked as
unsortable by directly setting the sort keys. The default is
true.
| ||||||||
| public boolean | isSortable(int column) Details
Returns true if the specified column is sortable; otherwise, false.
| ||||||||
| public void | setSortKeys(List sortKeys) Details
Sets the sort keys. This creates a copy of the supplied
List; subsequent changes to the supplied
List do not effect this DefaultRowSorter.
If the sort keys have changed this triggers a sort.
| ||||||||
| public List | getSortKeys() Details
Returns the current sort keys. This returns an unmodifiable
non-null List. If you need to change the sort keys,
make a copy of the returned List, mutate the copy
and invoke setSortKeys with the new list.
| ||||||||
| public void | setSortsOnUpdates(boolean sortsOnUpdates) Details
If true, specifies that a sort should happen when the underlying
model is updated ( rowsUpdated is invoked). For
example, if this is true and the user edits an entry the
location of that item in the view may change. The default is
false.
| ||||||||
| public boolean | getSortsOnUpdates() Details
Returns true if a sort should happen when the underlying
model is updated; otherwise, returns false.
| ||||||||
| public int | getViewRowCount() Returns the number of rows in the view. If the contents have been filtered this might differ from the row count of the underlying model. | ||||||||
| About DocWeb · Bundles · Export · Export All | Top 10 · Statistics · Login |
| About Sun · Contact · Privacy · Terms of Use · Trademarks | Java SE 6 · Copyright © 1994-2009 Sun Microsystems, Inc.All rights reserved. Use is subject to license terms |
![]() |
![]() |
|