Module is.codion.swing.common.model
Interface FilterComboBoxModel<T>
- Type Parameters:
T- the type of values in this combo box model
- All Superinterfaces:
ComboBoxModel<T>,is.codion.common.model.FilterModel<T>,ListModel<T>
- All Known Implementing Classes:
ItemComboBoxModel
public interface FilterComboBoxModel<T>
extends is.codion.common.model.FilterModel<T>, ComboBoxModel<T>
A combo box model based on
FilterModel.- See Also:
-
filterComboBoxModel()FilterModel.includeCondition()
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceResponsible for finding an item of typeFilterComboBoxModel.ItemFinderby a single value of typeFilterComboBoxModel.ItemFinder. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final is.codion.common.property.PropertyValue<String>Specifies the caption used by default to represent null in combo box models.Fields inherited from interface is.codion.common.model.FilterModel
ASYNC_REFRESH -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds the given item to this model, respecting the sorting order if specified.voidclear()Clears all items from this combo box model, including the null item and sets the selected item to nullbooleancleared()is.codion.common.value.Value<Comparator<T>>Controls the Comparator used when sorting the visible items in this model and sorts the model accordingly.<V> is.codion.common.value.Value<V>createSelectorValue(FilterComboBoxModel.ItemFinder<T, V> itemFinder) static <T> FilterComboBoxModel<T>is.codion.common.state.StateSpecifies whether filtering can change the selected item, if true then the selected item is set to null when the currently selected item is filtered from the model, otherwise the selected item can potentially represent a value which is not currently visible in the model.is.codion.common.state.Stateis.codion.common.value.Value<T>nullItem()Controls the item that should represent the null value in this model.booleanReturns true if this model contains null and it is selected.voidRemoves the given item from this modelvoidReplaces the given item in this combo box modelProvides a way for the combo box model to translate an item when it is selected, such as selecting the String "1" in a String based model when selected item is set to the number 1.is.codion.common.state.StateObserveris.codion.common.event.EventObserver<T>voidsetItems(Collection<T> items) Resets the items of this model using the values found initems.voidSorts the items in this modelProvides a way for the model to prevent the addition of certain items.Provides a way for the combo box model to prevent the selection of certain items.Methods inherited from interface javax.swing.ComboBoxModel
setSelectedItemMethods inherited from interface is.codion.common.model.FilterModel
containsItem, filtered, filteredCount, filteredItems, filterItems, includeCondition, items, refresh, refresher, refreshThen, visible, visibleCount, visibleItemsMethods inherited from interface javax.swing.ListModel
addListDataListener, getElementAt, getSize, removeListDataListener
-
Field Details
-
COMBO_BOX_NULL_CAPTION
Specifies the caption used by default to represent null in combo box models. Value type: String
Default value: -
-
-
Method Details
-
clear
void clear()Clears all items from this combo box model, including the null item and sets the selected item to null -
cleared
boolean cleared()- Returns:
- true if the model data has been cleared and needs to be refreshed
-
setItems
Resets the items of this model using the values found initems.- Parameters:
items- the items to display in this combo box model- Throws:
IllegalArgumentException- in case an item fails validation- See Also:
-
add
Adds the given item to this model, respecting the sorting order if specified. If this model already contains the item, calling this method has no effect. Note that if the item does not satisfy the include condition, it will be filtered right away.- Parameters:
item- the item to add- Throws:
IllegalArgumentException- in case the item fails validation- See Also:
-
FilterModel.includeCondition()
-
remove
Removes the given item from this model- Parameters:
item- the item to remove
-
replace
Replaces the given item in this combo box model- Parameters:
item- the item to replacereplacement- the replacement item- Throws:
IllegalArgumentException- in case the replacement item fails validation
-
sortItems
void sortItems()Sorts the items in this model- See Also:
-
comparator
is.codion.common.value.Value<Comparator<T>> comparator()Controls the Comparator used when sorting the visible items in this model and sorts the model accordingly. This Comparator must take into account the null value if a null item has been set vianullItem(). If a nullcomparatoris provided no sorting will be performed.- Returns:
- the Value controlling the comparator used when sorting, value may be null if the items of this model should not be sorted
-
validator
Provides a way for the model to prevent the addition of certain items. Trying to add items that fail validation will result in an exception. Note that any translation of the selected item is done before validation.- Returns:
- the Value controlling the item validator
-
selectedItemTranslator
Provides a way for the combo box model to translate an item when it is selected, such as selecting the String "1" in a String based model when selected item is set to the number 1.- Returns:
- the Value controlling the selected item translator
-
validSelectionPredicate
Provides a way for the combo box model to prevent the selection of certain items.- Returns:
- the Value controlling the valid selection predicate
-
includeNull
is.codion.common.state.State includeNull()- Returns:
- the State controlling whether a null value is included as the first item
- See Also:
-
nullItem
is.codion.common.value.Value<T> nullItem()Controls the item that should represent the null value in this model. Note thatincludeNull()must be used as well to enable the null value.- Returns:
- the Value controlling the item representing null
- See Also:
-
nullSelected
boolean nullSelected()Returns true if this model contains null and it is selected.- Returns:
- true if this model contains null and it is selected, false otherwise
- See Also:
-
selectionEmpty
is.codion.common.state.StateObserver selectionEmpty()- Returns:
- a StateObserver indicating whether the selection is empty or the value representing null is selected
-
selectedValue
T selectedValue()- Returns:
- the selected value, null in case the value representing null is selected
- See Also:
-
getSelectedItem
T getSelectedItem()- Specified by:
getSelectedItemin interfaceComboBoxModel<T>- Returns:
- the selected item, N.B. this can include the
nullItemin case it has been set vianullItem(),selectedValue()is usually what you want
-
filterSelectedItem
is.codion.common.state.State filterSelectedItem()Specifies whether filtering can change the selected item, if true then the selected item is set to null when the currently selected item is filtered from the model, otherwise the selected item can potentially represent a value which is not currently visible in the model. This is true by default.- Returns:
- the State controlling whether the selected item is changed when it is filtered
-
createSelectorValue
<V> is.codion.common.value.Value<V> createSelectorValue(FilterComboBoxModel.ItemFinder<T, V> itemFinder) - Type Parameters:
V- the value type- Parameters:
itemFinder- responsible for finding the item to select- Returns:
- a value linked to the selected item via the given finder instance
-
selectionEvent
is.codion.common.event.EventObserver<T> selectionEvent()- Returns:
- an observer notified each time the selection changes
-
filterComboBoxModel
- Type Parameters:
T- the item type- Returns:
- a new
FilterComboBoxModelinstance
-