org.jminor.common.model.combobox
Class DefaultFilteredComboBoxModel<T>

java.lang.Object
  extended by org.jminor.common.model.combobox.DefaultFilteredComboBoxModel<T>
All Implemented Interfaces:
ComboBoxModel, ListModel, FilteredComboBoxModel<T>, FilteredModel<T>, Refreshable
Direct Known Subclasses:
DefaultEntityComboBoxModel, DefaultPropertyComboBoxModel

public class DefaultFilteredComboBoxModel<T>
extends Object
implements FilteredComboBoxModel<T>

A default FilteredComboBoxModel implementation.


Constructor Summary
DefaultFilteredComboBoxModel()
          Instantiates a new DefaultFilteredComboBoxModel that does not sort its contents and does not include a nullValueItem.
DefaultFilteredComboBoxModel(String nullValueString)
          Instantiates a new FilteredComboBoxModel.
 
Method Summary
 void addFilteringListener(ActionListener listener)
          
 void addItem(T item)
          
 void addListDataListener(ListDataListener l)
          
 void addSelectionListener(ActionListener listener)
          
 void clear()
          Clears all data from this refreshable instance
 boolean contains(T item, boolean includeFiltered)
          Returns true if this model contains the given item, visible or filtered.
 void filterContents()
          Filters the table according to the criteria returned by getFilterCriteria().
protected  void fireContentsChanged()
           
 List<T> getAllItems()
          
 Object getElementAt(int index)
          
 FilterCriteria<T> getFilterCriteria()
          Returns the filter criteria defined by this model, this method should return a "accept all" criteria instead of null, if no criteria is defined.
 int getFilteredItemCount()
          
 List<T> getFilteredItems()
          
 String getNullValueString()
          
 Object getSelectedItem()
          
 int getSize()
          
 int getVisibleItemCount()
          
 List<T> getVisibleItems()
          
protected  List<T> initializeContents()
           
 boolean isCleared()
          
 boolean isFiltered(T item)
          Returns true if the given item is filtered in this combo box model
 boolean isNullValueSelected()
          
 boolean isVisible(T item)
          Returns true if the given item is visible in this combo box model
 void refresh()
          Performs a refresh
 void removeFilteringListener(ActionListener listener)
          
 void removeItem(T item)
          Removes the given item from this model
 void removeListDataListener(ListDataListener l)
          
 void removeSelectionListener(ActionListener listener)
          
 void setContents(Collection<T> contents)
          Resets the contents of this model using the values found in contents
 void setFilterCriteria(FilterCriteria<T> filterCriteria)
          
 void setNullValueString(String nullValueString)
          Sets the nullValueItem, a refresh is required for it to show up
 void setSelectedItem(Object anItem)
          
protected  Object translateSelectionItem(Object item)
           
protected  boolean vetoSelectionChange(Object item)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultFilteredComboBoxModel

public DefaultFilteredComboBoxModel()
Instantiates a new DefaultFilteredComboBoxModel that does not sort its contents and does not include a nullValueItem.


DefaultFilteredComboBoxModel

public DefaultFilteredComboBoxModel(String nullValueString)
Instantiates a new FilteredComboBoxModel.

Parameters:
nullValueString - a string representing a null value, which is shown at the top of the item list
See Also:
isNullValueSelected()
Method Detail

refresh

public final void refresh()
Performs a refresh

Specified by:
refresh in interface Refreshable

clear

public final void clear()
Clears all data from this refreshable instance

Specified by:
clear in interface Refreshable

isCleared

public final boolean isCleared()

Specified by:
isCleared in interface FilteredComboBoxModel<T>
Returns:
true if the model data needs to be refreshed

setContents

public final void setContents(Collection<T> contents)
Resets the contents of this model using the values found in contents

Specified by:
setContents in interface FilteredComboBoxModel<T>
Parameters:
contents - the contents to be used by this model

filterContents

public final void filterContents()
Filters the table according to the criteria returned by getFilterCriteria(). This method does not interfere with the internal ordering of the visible items.

Specified by:
filterContents in interface FilteredModel<T>
See Also:
FilteredModel.getFilterCriteria(), FilteredModel.addFilteringListener(java.awt.event.ActionListener)

getFilteredItems

public final List<T> getFilteredItems()

Specified by:
getFilteredItems in interface FilteredModel<T>
Returns:
an unmodifiable view of the filtered items

getVisibleItems

public final List<T> getVisibleItems()

Specified by:
getVisibleItems in interface FilteredModel<T>
Returns:
an unmodifiable view of the visible items

setFilterCriteria

public final void setFilterCriteria(FilterCriteria<T> filterCriteria)

Specified by:
setFilterCriteria in interface FilteredModel<T>
Parameters:
filterCriteria - the FilterCriteria to use

getFilterCriteria

public final FilterCriteria<T> getFilterCriteria()
Returns the filter criteria defined by this model, this method should return a "accept all" criteria instead of null, if no criteria is defined.

Specified by:
getFilterCriteria in interface FilteredModel<T>
Returns:
the filter criteria
See Also:
FilterCriteria.AcceptAllCriteria

getAllItems

public final List<T> getAllItems()

Specified by:
getAllItems in interface FilteredModel<T>
Returns:
all visible and filtered items in this table model

getFilteredItemCount

public final int getFilteredItemCount()

Specified by:
getFilteredItemCount in interface FilteredModel<T>
Returns:
the number of currently filtered items

getVisibleItemCount

public final int getVisibleItemCount()

Specified by:
getVisibleItemCount in interface FilteredModel<T>
Returns:
the number of currently visible items

isVisible

public final boolean isVisible(T item)
Returns true if the given item is visible in this combo box model

Specified by:
isVisible in interface FilteredModel<T>
Parameters:
item - the item
Returns:
true if the given item is visible

isFiltered

public final boolean isFiltered(T item)
Returns true if the given item is filtered in this combo box model

Specified by:
isFiltered in interface FilteredModel<T>
Parameters:
item - the item
Returns:
true if the given item is filtered

addItem

public final void addItem(T item)

Specified by:
addItem in interface FilteredComboBoxModel<T>
Parameters:
item - the item to add

removeItem

public final void removeItem(T item)
Removes the given item from this model

Specified by:
removeItem in interface FilteredComboBoxModel<T>
Parameters:
item - the item to remove

contains

public final boolean contains(T item,
                              boolean includeFiltered)
Returns true if this model contains the given item, visible or filtered.

Specified by:
contains in interface FilteredModel<T>
Parameters:
item - the item
includeFiltered - if true then the filtered items are included
Returns:
true if this combo box model contains the item

getNullValueString

public final String getNullValueString()

Specified by:
getNullValueString in interface FilteredComboBoxModel<T>
Returns:
the String representing the null value, null if none has been specified

setNullValueString

public final void setNullValueString(String nullValueString)
Sets the nullValueItem, a refresh is required for it to show up

Specified by:
setNullValueString in interface FilteredComboBoxModel<T>
Parameters:
nullValueString - a String representing a null value

isNullValueSelected

public final boolean isNullValueSelected()

Specified by:
isNullValueSelected in interface FilteredComboBoxModel<T>
Returns:
true if a value representing null is selected

getSelectedItem

public final Object getSelectedItem()

Specified by:
getSelectedItem in interface ComboBoxModel

setSelectedItem

public final void setSelectedItem(Object anItem)

Specified by:
setSelectedItem in interface ComboBoxModel

addListDataListener

public final void addListDataListener(ListDataListener l)

Specified by:
addListDataListener in interface ListModel

removeListDataListener

public final void removeListDataListener(ListDataListener l)

Specified by:
removeListDataListener in interface ListModel

getElementAt

public final Object getElementAt(int index)

Specified by:
getElementAt in interface ListModel

getSize

public final int getSize()

Specified by:
getSize in interface ListModel

addFilteringListener

public final void addFilteringListener(ActionListener listener)

Specified by:
addFilteringListener in interface FilteredModel<T>
Parameters:
listener - a listener notified each time this model is filtered

removeFilteringListener

public final void removeFilteringListener(ActionListener listener)

Specified by:
removeFilteringListener in interface FilteredModel<T>
Parameters:
listener - the listener to remove

addSelectionListener

public final void addSelectionListener(ActionListener listener)

Specified by:
addSelectionListener in interface FilteredComboBoxModel<T>
Parameters:
listener - a listener notified each time the selection changes

removeSelectionListener

public final void removeSelectionListener(ActionListener listener)

Specified by:
removeSelectionListener in interface FilteredComboBoxModel<T>
Parameters:
listener - a selection listener to remove

initializeContents

protected List<T> initializeContents()
Returns:
a List containing the items to be shown in this combo box model, by default it simply returns a list containing the items currently contained in the model, both filtered and visible, excluding the null value.

vetoSelectionChange

protected boolean vetoSelectionChange(Object item)

translateSelectionItem

protected Object translateSelectionItem(Object item)

fireContentsChanged

protected final void fireContentsChanged()