|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.AbstractListModel
com.jidesoft.list.DefaultListModelWrapper
com.jidesoft.list.FilterableListModel
public class FilterableListModel
FilterableListModel
is a list model which wraps another list model so that user can apply filters on
it.
addFilter(com.jidesoft.filter.Filter)
to a filter to the ListModel. By default, filters won't
take effect immediately. You need to call setFiltersApplied(true)
to apply those filters. If
filtersApplied
flag is true already, you just need to call refresh(). We don't refresh automatically
because you might have several filters to add. You can add all of them, then only call refresh once.
setFiltersApplied(boolean)
controls all the filters. Each filter has its own enabled flag which will
control each individual filter.
By default, if you have more than one filters, all filters will be used in AND mode. You can see javadoc of setAndMode(boolean)
to find more information.
Field Summary | |
---|---|
protected List<Filter> |
_filters
The data structure contains all the filters. |
protected boolean |
_filtersApplied
A flag to turn on/off filters. |
Fields inherited from class com.jidesoft.list.DefaultListModelWrapper |
---|
_adjustingIndexes, _indexes, _model |
Fields inherited from class javax.swing.AbstractListModel |
---|
listenerList |
Constructor Summary | |
---|---|
FilterableListModel()
|
|
FilterableListModel(ListModel model)
Creates a FilterableListModel from any table model. |
Method Summary | |
---|---|
void |
addFilter(Filter filter)
Adds a filter to the list model. |
void |
addFilterableListModelListener(FilterableListModelListener l)
Adds a listener to the list that's notified each time a change to the filter occurs. |
void |
addFilters(List<Filter> filters)
Adds a list of filters to the list model. |
void |
clearFilters()
Removes all filters of this list model. |
void |
contentsChanged(ListDataEvent e)
|
protected void |
filter()
Applies filters and generates a new array of indices. |
void |
fireFilterChanged(FilterableListModelEvent e)
Forwards the given notification event to all FilterableTableModelListeners that registered
themselves as listeners for this list model. |
FilterableListModelListener[] |
getFilterableTableModelListeners()
Returns an array of all the FilterableListModel listeners registered on this filter. |
Filter[] |
getFilters()
Gets all filters. |
boolean |
hasFilter()
Checks if the FilterableTableModel has any filters. |
void |
intervalAdded(ListDataEvent e)
|
void |
intervalRemoved(ListDataEvent e)
|
boolean |
isAdjusting()
Checks if the FilterableListModel is adjusting. |
boolean |
isAndMode()
Sets the logic of filters on the list model. |
boolean |
isFiltersApplied()
Checks if the filters are in effect. |
void |
refresh()
Reapply all filters after they are changed. |
void |
removeFilter(Filter filter)
Removes the filter from the list model. |
void |
removeFilterableListModelListener(FilterableListModelListener l)
Removes a listener from the list that's notified each time a change to the filter occurs. |
void |
setAdjusting(boolean adjusting)
Sets the FilterableListModel to adjusting mode. |
void |
setAndMode(boolean andMode)
Sets the logic of the filters on the same column. |
void |
setFiltersApplied(boolean apply)
Applies or unapplies the filters. |
protected boolean |
shouldBeFiltered(int row,
List<Filter> filters)
The method contains the algorithm to filter the specified row. |
boolean |
shouldBeFiltered(Object value,
List<Filter> filters)
The method contains the algorithm to filter the specified value. |
Methods inherited from class com.jidesoft.list.DefaultListModelWrapper |
---|
addIndexChangeListener, createCompoundListDataEvent, fireEvents, fireIndexChanged, fireListDataEvent, getActualIndexAt, getActualModel, getElementAt, getIndexAt, getIndexChangeListeners, getIndexes, getSize, reallocateIndexes, removeIndexChangeListener, setActualModel, setIndexes |
Methods inherited from class javax.swing.AbstractListModel |
---|
addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected List<Filter> _filters
protected boolean _filtersApplied
setFiltersApplied(boolean)
with true will turn it on and setFiltersApplied(boolean)
with false will turn it off.
Constructor Detail |
---|
public FilterableListModel()
public FilterableListModel(ListModel model)
model
- list modelMethod Detail |
---|
public void intervalAdded(ListDataEvent e)
intervalAdded
in interface ListDataListener
intervalAdded
in class DefaultListModelWrapper
public void intervalRemoved(ListDataEvent e)
intervalRemoved
in interface ListDataListener
intervalRemoved
in class DefaultListModelWrapper
public void contentsChanged(ListDataEvent e)
contentsChanged
in interface ListDataListener
contentsChanged
in class DefaultListModelWrapper
public void refresh()
protected void filter()
protected boolean shouldBeFiltered(int row, List<Filter> filters)
row
- the row indexfilters
- The list of filters
public boolean shouldBeFiltered(Object value, List<Filter> filters)
shouldBeFiltered(int, java.util.List)
if some of the filters are row index sensitive.
value
- the valuefilters
- The list of filters
public void addFilterableListModelListener(FilterableListModelListener l)
l
- the FilterableListModelListenerpublic void removeFilterableListModelListener(FilterableListModelListener l)
l
- the FilterableListModelListenerpublic FilterableListModelListener[] getFilterableTableModelListeners()
FilterableListModelListener
s or an empty array if no filter listeners
are currently registeredaddFilterableListModelListener(com.jidesoft.list.FilterableListModelListener)
,
removeFilterableListModelListener(com.jidesoft.list.FilterableListModelListener)
public void fireFilterChanged(FilterableListModelEvent e)
FilterableTableModelListeners
that registered
themselves as listeners for this list model.
e
- the event to be forwardedaddFilterableListModelListener(com.jidesoft.list.FilterableListModelListener)
,
FilterableListModelEvent
,
EventListenerList
public void addFilters(List<Filter> filters)
filters
- the filters to be addedpublic void addFilter(Filter filter)
You can use AbstractFilter
to create new filter. If you need the row
index in order to decide if the value should be filtered, you can use AbstractListFilter
and use
getRowIndex() to find out current row index.
filter
- the filter to be addedpublic void removeFilter(Filter filter)
filter
- the filter to be removedpublic void clearFilters()
public Filter[] getFilters()
public void setFiltersApplied(boolean apply)
apply
- true to apply the filters.public boolean isFiltersApplied()
public boolean hasFilter()
FilterableTableModel
has any filters.
public boolean isAndMode()
public void setAndMode(boolean andMode)
andMode
- the and mode flagpublic boolean isAdjusting()
public void setAdjusting(boolean adjusting)
adjusting
- the adjusting flag
|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |