R
- the type representing the rows in this table modelC
- type type used to identify columns in this table model, Integer for simple indexed identification for examplepublic abstract class AbstractFilteredTableModel<R,C> extends javax.swing.table.AbstractTableModel implements FilteredTableModel<R,C,javax.swing.table.TableColumn>
AbstractFilteredTableModel tableModel = ...; JTable table = new JTable(tableModel, tableModel.getColumnModel(), tableModel.getSelectionModel());
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractFilteredTableModel.DefaultColumnValueProvider
A default ColumnValueProvider implementation
|
Constructor and Description |
---|
AbstractFilteredTableModel(TableSortModel<R,C,javax.swing.table.TableColumn> sortModel,
java.util.Collection<? extends ColumnConditionModel<C>> columnFilterModels)
Instantiates a new table model.
|
Modifier and Type | Method and Description |
---|---|
void |
addFilteringListener(EventListener listener) |
protected void |
addItems(java.util.List<R> items,
boolean atTop,
boolean sortAfterAdding)
Adds the given items to this table model, non-filtered items are added at top or bottom.
|
protected void |
addItems(java.util.List<R> items,
int index,
boolean sortAfterAdding)
Adds the given items to this table model, non-filtered items are added at the given index.
|
void |
addRefreshDoneListener(EventListener listener) |
void |
addRefreshStartedListener(EventListener listener) |
void |
addRowsDeletedListener(EventDataListener<java.util.List<java.lang.Integer>> listener)
Adds a listener that is notified each time rows are deleted from the data model.
|
void |
addSortingListener(EventListener listener) |
void |
addTableDataChangedListener(EventListener listener) |
void |
addTableModelClearedListener(EventListener listener) |
boolean |
allowSelectionChange()
A default implementation returning true
|
void |
clear()
Clears all data from this refreshable instance
|
boolean |
contains(R item,
boolean includeFiltered)
Returns true if this model contains the given item, visible or filtered.
|
protected ColumnSummaryModel.ColumnValueProvider |
createColumnValueProvider(C columnIdentifier)
Creates a ColumnValueProvider for the given column
|
protected abstract void |
doRefresh()
Refreshes the data in this table model.
|
void |
filterContents()
Filters the table according to the condition returned by
getFilterCondition() . |
RowColumn |
findNextItemCoordinate(int fromIndex,
boolean forward,
FilterCondition<java.lang.Object> condition)
Returns a RowColumn denoting the row and column index of the first value to fulfill
the given search condition.
|
RowColumn |
findNextItemCoordinate(int fromIndex,
boolean forward,
java.lang.String searchText)
Returns a RowColumn denoting the row and column index of the first value to fulfill
the given search condition.
|
java.util.List<R> |
getAllItems() |
java.lang.Class |
getColumnClass(int columnIndex) |
int |
getColumnCount() |
SwingFilteredTableColumnModel<C> |
getColumnModel() |
ColumnSummaryModel |
getColumnSummaryModel(C columnIdentifier) |
FilterCondition<R> |
getFilterCondition()
Returns the filter condition defined by this model, null if no filter condition has been set.
|
int |
getFilteredItemCount() |
java.util.List<R> |
getFilteredItems() |
R |
getItemAt(int index) |
int |
getRowCount() |
protected FilterCondition<java.lang.Object> |
getSearchCondition(java.lang.String searchText) |
protected java.lang.String |
getSearchValueAt(int rowIndex,
javax.swing.table.TableColumn column)
Returns the value to use when searching through the table.
|
SelectionModel<R> |
getSelectionModel() |
TableSortModel<R,C,javax.swing.table.TableColumn> |
getSortModel() |
java.util.Collection |
getValues(C columnIdentifier,
boolean selectedOnly) |
int |
getVisibleItemCount() |
java.util.List<R> |
getVisibleItems() |
int |
indexOf(R item) |
boolean |
isFiltered(R item)
Returns true if the given item is being filtered in this model, that is, is not visible
|
boolean |
isRegularExpressionSearch() |
boolean |
isVisible(R item)
Returns true if the given item is visible, that is, not filtered in this model
|
void |
refresh()
Refreshes the data in this table model, respecting the selection, filtering as well
as sorting states.
|
void |
removeFilteringListener(EventListener listener) |
void |
removeItem(R item)
Removes the given item from this table model
|
void |
removeItems(java.util.Collection<R> items)
Removes the given items from this table model
|
void |
removeItems(int fromIndex,
int toIndex)
Removes from this table model all visible elements whose index is between fromIndex, inclusive and toIndex, exclusive
|
void |
removeRefreshDoneListener(EventListener listener) |
void |
removeRefreshStartedListener(EventListener listener) |
void |
removeRowsDeletedListener(EventDataListener listener) |
void |
removeSortingListener(EventListener listener) |
void |
removeTableDataChangedListener(EventListener listener) |
void |
removeTableModelClearedListener(EventListener listener) |
void |
setFilterCondition(FilterCondition<R> filterCondition)
Sets the filter condition and filters the model
|
void |
setRegularExpressionSearch(boolean value)
Specifies whether or not to use regular expressions when searching this table model
|
void |
sortContents()
Sorts the visible contents according to the
TableSortModel , keeping the selection state intact |
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnName, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
public AbstractFilteredTableModel(TableSortModel<R,C,javax.swing.table.TableColumn> sortModel, java.util.Collection<? extends ColumnConditionModel<C>> columnFilterModels)
sortModel
- the sort model to usecolumnFilterModels
- the column filter modelsjava.lang.NullPointerException
- in case columnModel
is nullpublic final java.util.List<R> getVisibleItems()
getVisibleItems
in interface FilteredModel<R>
public final java.util.List<R> getFilteredItems()
getFilteredItems
in interface FilteredModel<R>
public final int getVisibleItemCount()
getVisibleItemCount
in interface FilteredModel<R>
public final int getFilteredItemCount()
getFilteredItemCount
in interface FilteredModel<R>
public final int getColumnCount()
getColumnCount
in interface javax.swing.table.TableModel
public final int getRowCount()
getRowCount
in interface javax.swing.table.TableModel
getRowCount
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final boolean contains(R item, boolean includeFiltered)
contains
in interface FilteredModel<R>
item
- the itemincludeFiltered
- if true then the filtered items are includedpublic final boolean isVisible(R item)
isVisible
in interface FilteredModel<R>
item
- the itempublic final boolean isFiltered(R item)
isFiltered
in interface FilteredModel<R>
item
- the itempublic final RowColumn findNextItemCoordinate(int fromIndex, boolean forward, java.lang.String searchText)
findNextItemCoordinate
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
fromIndex
- the row index to start searching at, if this is larger than the size of
the table model or less than 0 the search starts from either 0 or rowCount - 1 depending on search direction.forward
- if true then the search is forward (towards higher row indexes), backwards otherwisesearchText
- the text to search byFilteredTableModel.isRegularExpressionSearch()
,
FilterCondition.include(Object)
public final RowColumn findNextItemCoordinate(int fromIndex, boolean forward, FilterCondition<java.lang.Object> condition)
findNextItemCoordinate
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
fromIndex
- the row index to start searching at, if this is larger than the size of
the table model or less than 0 the search starts from either 0 or rowCount - 1 depending on search direction.forward
- if true then the search is forward (towards higher row indexes), backwards otherwisecondition
- the search conditionFilterCondition.include(Object)
public final void refresh()
refresh
in interface Refreshable
public final void clear()
clear
in interface Refreshable
public final SelectionModel<R> getSelectionModel()
getSelectionModel
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final TableSortModel<R,C,javax.swing.table.TableColumn> getSortModel()
getSortModel
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final ColumnSummaryModel getColumnSummaryModel(C columnIdentifier)
getColumnSummaryModel
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
columnIdentifier
- the column identifierpublic final java.util.Collection getValues(C columnIdentifier, boolean selectedOnly)
getValues
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
columnIdentifier
- the identifier of the column for which to retrieve the valuesselectedOnly
- if true only values from the selected rows are returnedcolumnIdentifier
from the rows in the table modelpublic final boolean isRegularExpressionSearch()
isRegularExpressionSearch
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final void setRegularExpressionSearch(boolean value)
setRegularExpressionSearch
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
value
- the valuepublic final R getItemAt(int index)
getItemAt
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
index
- the indexpublic final int indexOf(R item)
indexOf
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
item
- the itempublic final void sortContents()
TableSortModel
, keeping the selection state intactsortContents
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
FilteredTableModel.getSortModel()
public final void filterContents()
getFilterCondition()
.
If no filter condition is specified this method does nothing.
This method does not interfere with the internal ordering of the visible items.filterContents
in interface FilteredModel<R>
FilteredModel.getFilterCondition()
,
FilteredModel.setFilterCondition(FilterCondition)
,
FilteredModel.addFilteringListener(EventListener)
public final FilterCondition<R> getFilterCondition()
getFilterCondition
in interface FilteredModel<R>
public final void setFilterCondition(FilterCondition<R> filterCondition)
setFilterCondition
in interface FilteredModel<R>
filterCondition
- the FilterCondition to use, null if no filtering should be performedpublic final java.util.List<R> getAllItems()
getAllItems
in interface FilteredModel<R>
public final void removeItem(R item)
removeItem
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
item
- the item to remove from the modelpublic final void removeItems(java.util.Collection<R> items)
removeItems
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
items
- the items to remove from the modelpublic final void removeItems(int fromIndex, int toIndex)
removeItems
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
fromIndex
- index of first row to be removedtoIndex
- index after last row to be removedpublic boolean allowSelectionChange()
allowSelectionChange
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final void addRowsDeletedListener(EventDataListener<java.util.List<java.lang.Integer>> listener)
addRowsDeletedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener, the data list contains the fromIndex and toIndex as items at index 0 and 1public final void removeRowsDeletedListener(EventDataListener listener)
removeRowsDeletedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removepublic final SwingFilteredTableColumnModel<C> getColumnModel()
getColumnModel
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
public final java.lang.Class getColumnClass(int columnIndex)
getColumnClass
in interface javax.swing.table.TableModel
getColumnClass
in class javax.swing.table.AbstractTableModel
public final void addRefreshStartedListener(EventListener listener)
addRefreshStartedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- a listener to be notified each time a refresh is about to startpublic final void removeRefreshStartedListener(EventListener listener)
removeRefreshStartedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removepublic final void addRefreshDoneListener(EventListener listener)
addRefreshDoneListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- a listener to be notified each time a refresh has endedpublic final void removeRefreshDoneListener(EventListener listener)
removeRefreshDoneListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removepublic final void addFilteringListener(EventListener listener)
addFilteringListener
in interface FilteredModel<R>
listener
- a listener notified each time this model is filteredpublic final void removeFilteringListener(EventListener listener)
removeFilteringListener
in interface FilteredModel<R>
listener
- the listener to removepublic final void addSortingListener(EventListener listener)
addSortingListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- a listener to be notified each time the model has been sorted or the sorting state has been clearedpublic final void removeSortingListener(EventListener listener)
removeSortingListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removepublic final void addTableDataChangedListener(EventListener listener)
addTableDataChangedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- a listener to be notified each time the table data changespublic final void removeTableDataChangedListener(EventListener listener)
removeTableDataChangedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removepublic final void addTableModelClearedListener(EventListener listener)
addTableModelClearedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- a listener to be notified each time the table model is clearedpublic final void removeTableModelClearedListener(EventListener listener)
removeTableModelClearedListener
in interface FilteredTableModel<R,C,javax.swing.table.TableColumn>
listener
- the listener to removeprotected abstract void doRefresh()
protected ColumnSummaryModel.ColumnValueProvider createColumnValueProvider(C columnIdentifier)
columnIdentifier
- the column identifiercolumnIdentifier
protected final void addItems(java.util.List<R> items, boolean atTop, boolean sortAfterAdding)
sortAfterAdding
is true and sorting is enabled this model is sorted after the items have been addeditems
- the items to addatTop
- if true then items are added at the top of the table model, else at the bottomsortAfterAdding
- if true and sorting is enabled the model contents are sorted after addingTableSortModel.isSortingEnabled()
protected final void addItems(java.util.List<R> items, int index, boolean sortAfterAdding)
sortAfterAdding
is true and sorting is enabled this model is sorted after the items have been addeditems
- the items to addindex
- the index at which to add the itemssortAfterAdding
- if true and sorting is enabled then the model is sorted after addingTableSortModel.isSortingEnabled()
protected java.lang.String getSearchValueAt(int rowIndex, javax.swing.table.TableColumn column)
rowIndex
- the row indexcolumn
- the columnfindNextItemCoordinate(int, boolean, String)
protected final FilterCondition<java.lang.Object> getSearchCondition(java.lang.String searchText)
searchText
- the search text