net.coderazzi.filters.gui
Class FiltersHandler

java.lang.Object
  extended by net.coderazzi.filters.artifacts.RowFilter
      extended by net.coderazzi.filters.Filter
          extended by net.coderazzi.filters.ComposedFilter
              extended by net.coderazzi.filters.AndFilter
                  extended by net.coderazzi.filters.gui.FiltersHandler
All Implemented Interfaces:
PropertyChangeListener, EventListener, IFilter, IFilterObserver

public class FiltersHandler
extends AndFilter
implements PropertyChangeListener

FiltersHandler represents a RowFilter instance that can be attached to a JTable to compose dynamically the outcome of one or more filter editors. As such, it is a dynamic filter, which updates the table when there are changes in any of the composed sub filters.

Users have, after version 3.2, no direct use for this class

In Java 5, the JTable has no sorting or filtering capabilities, so the implementation of the TableFilter is slightly different in Java 5 and 6. When the table is attached, it should contain already the model to filter, and the model itself should be an instance of ITableModelFilter. If this is not the case, the TableFilter automatically creates a (@link ITableModelFilter} and attaches it to the table.

Author:
Luis M Pena - lu@coderazzi.net

Nested Class Summary
 
Nested classes/interfaces inherited from class net.coderazzi.filters.artifacts.RowFilter
RowFilter.Entry
 
Field Summary
 
Fields inherited from class net.coderazzi.filters.ComposedFilter
filters
 
Method Summary
 void addFilter(IFilter... filtersToAdd)
          ComposedFilter interface.
 void addFilterEditor(net.coderazzi.filters.gui.editor.FilterEditor editor)
          Adds a new filter editor, called from the TableFilterHeader.
 boolean applyEditorFilter(Filter filter)
          Applies the passed filter, from an associated editor, and, on success, reports it to observers.
 void enableNotifications(boolean enable)
          Temporarily enable/disable notifications to the observers, including the registered JTable.
 void filterUpdated(IFilter filter)
          ComposedFilter interface.
 AutoChoices getAutoChoices()
          Returns the auto choices mode.
 net.coderazzi.filters.gui.editor.FilterEditor getEditor(int column)
          Returns the FilterEditor instance on the given column.
 Collection<net.coderazzi.filters.gui.editor.FilterEditor> getEditors()
          Returns all registered FilterEditors.
 IParserModel getParserModel()
          Returns the registered IParserModel instance.
 JTable getTable()
          Returns the associated table.
 void propertyChange(PropertyChangeEvent evt)
          PropertyChangeListener interface, for changes on IParserModel.
 void removeFilter(IFilter... filtersToRemove)
          ComposedFilter interface.
 void removeFilterEditor(net.coderazzi.filters.gui.editor.FilterEditor editor)
          Removes a filter editor, called from the TableFilterHeader.
 void setAutoChoices(AutoChoices mode)
          Sets/unsets the auto choices flag.
 void setEnabled(boolean enabled)
          Enables/Disables the filter.
 void setParserModel(IParserModel parserModel)
          Sets the IParserModel instance.
 void setTable(JTable table)
          Method to set the associated table.
 void updateEditorChoices(net.coderazzi.filters.gui.editor.FilterEditor editor)
          Method invoked by the FilterEditor when its autoChoices mode OR user choices change; in return, it will set the proper choices on the specified editor.
 void updateTableFilter()
          Internal method to set/update the filtering.
 
Methods inherited from class net.coderazzi.filters.AndFilter
include
 
Methods inherited from class net.coderazzi.filters.ComposedFilter
getFilters, isDisabled
 
Methods inherited from class net.coderazzi.filters.Filter
addFilterObserver, getFilterObservers, isEnabled, removeFilterObserver, reportFilterUpdatedToObservers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setTable

public void setTable(JTable table)
Method to set the associated table.


getTable

public JTable getTable()
Returns the associated table.


setParserModel

public void setParserModel(IParserModel parserModel)
Sets the IParserModel instance.


getParserModel

public IParserModel getParserModel()
Returns the registered IParserModel instance.


propertyChange

public void propertyChange(PropertyChangeEvent evt)
PropertyChangeListener interface, for changes on IParserModel.

Specified by:
propertyChange in interface PropertyChangeListener

setEnabled

public void setEnabled(boolean enabled)
Description copied from interface: IFilter
Enables/Disables the filter.

Specified by:
setEnabled in interface IFilter
Overrides:
setEnabled in class ComposedFilter
See Also:
IFilter.setEnabled(boolean)

setAutoChoices

public void setAutoChoices(AutoChoices mode)
Sets/unsets the auto choices flag.


getAutoChoices

public AutoChoices getAutoChoices()
Returns the auto choices mode.


addFilter

public void addFilter(IFilter... filtersToAdd)
ComposedFilter interface.

Overrides:
addFilter in class ComposedFilter

removeFilter

public void removeFilter(IFilter... filtersToRemove)
ComposedFilter interface.

Overrides:
removeFilter in class ComposedFilter

addFilterEditor

public void addFilterEditor(net.coderazzi.filters.gui.editor.FilterEditor editor)
Adds a new filter editor, called from the TableFilterHeader.


removeFilterEditor

public void removeFilterEditor(net.coderazzi.filters.gui.editor.FilterEditor editor)
Removes a filter editor, called from the TableFilterHeader.


updateEditorChoices

public void updateEditorChoices(net.coderazzi.filters.gui.editor.FilterEditor editor)
Method invoked by the FilterEditor when its autoChoices mode OR user choices change; in return, it will set the proper choices on the specified editor.


filterUpdated

public void filterUpdated(IFilter filter)
ComposedFilter interface.

Specified by:
filterUpdated in interface IFilterObserver
Overrides:
filterUpdated in class ComposedFilter
See Also:
IFilterObserver.filterUpdated(IFilter)

applyEditorFilter

public boolean applyEditorFilter(Filter filter)
Applies the passed filter, from an associated editor, and, on success, reports it to observers. This method can be called -instead of the usual FilterEditor.reportFilterUpdatedToObservers to detect if the new filter will filter out all the rows.


updateTableFilter

public void updateTableFilter()
Internal method to set/update the filtering.


getEditors

public Collection<net.coderazzi.filters.gui.editor.FilterEditor> getEditors()
Returns all registered FilterEditors.


getEditor

public net.coderazzi.filters.gui.editor.FilterEditor getEditor(int column)
Returns the FilterEditor instance on the given column.


enableNotifications

public void enableNotifications(boolean enable)

Temporarily enable/disable notifications to the observers, including the registered JTable.

Multiple calls to this method can be issued, but the caller must ensure that there are as many calls with true parameter as with false parameter, as the notifications are only re-enabled when the zero balance is reached.