Class AbstractListSelectControl<V>
- java.lang.Object
-
- com.globalmentor.beans.BoundPropertyObject
-
- io.guise.framework.event.GuiseBoundPropertyObject
-
- io.guise.framework.model.ui.AbstractPresentationModel
-
- io.guise.framework.component.AbstractComponent
-
- io.guise.framework.component.AbstractCompositeComponent
-
- io.guise.framework.component.AbstractMultipleCompositeComponent
-
- io.guise.framework.component.AbstractCompositeStateComponent<T,S>
-
- io.guise.framework.component.AbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState>
-
- io.guise.framework.component.AbstractListSelectControl<V>
-
- Type Parameters:
V
- The type of values to select.
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.model.MutableValued<V>
,com.globalmentor.model.Valued<V>
,Component
,CompositeComponent
,Control
,InputFocusableComponent
,ListSelectControl<V>
,SelectControl<V>
,ValueControl<V>
,ValuedComponent<V>
,ListListenable<V>
,Displayable
,Enableable
,InfoModel
,LabelModel
,ListSelectModel<V>
,Model
,SelectModel<V>
,PresentationModel
,ValueModel<V>
,DepictedObject
,java.lang.Iterable<V>
,java.util.Collection<V>
,java.util.List<V>
- Direct Known Subclasses:
BooleanValueControlSelectControl
,ListControl
,TabControl
public abstract class AbstractListSelectControl<V> extends AbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState> implements ListSelectControl<V>
Abstract implementation of a control to allow selection by the user of a value from a list. The component valid status is updated before a change in theValueModel.VALUE_PROPERTY
or theValueModel.VALIDATOR_PROPERTY
is fired. This implementation does not yet fully support elements that appear more than once in the model.- Author:
- Garret Wilson
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractListSelectControl.ConverterInfoModelValueRepresentationStrategy<VV>
A list select value representation strategy that creates a component by converting the value to a info model.static class
AbstractListSelectControl.DefaultValueRepresentationStrategy<VV>
A default list select value representation strategy that creates aLabel
.protected static class
AbstractListSelectControl.ValueComponentState
An encapsulation of a component for a tree node along with other metadata, such as whether the component was editable when created.-
Nested classes/interfaces inherited from class io.guise.framework.component.AbstractCompositeStateComponent
AbstractCompositeStateComponent.ComponentState
-
Nested classes/interfaces inherited from class io.guise.framework.component.AbstractComponent
AbstractComponent.AbstractFlyoverFrameStrategy<S extends Component>, AbstractComponent.AbstractFlyoverStrategy<S extends Component>, AbstractComponent.DefaultFlyoverStrategy<S extends Component>
-
Nested classes/interfaces inherited from interface io.guise.framework.component.Component
Component.FlyoverStrategy<S extends Component>
-
Nested classes/interfaces inherited from interface io.guise.framework.component.Control
Control.Status
-
Nested classes/interfaces inherited from interface io.guise.framework.component.ListSelectControl
ListSelectControl.ValueRepresentationStrategy<VV>
-
-
Field Summary
-
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
-
Fields inherited from interface io.guise.framework.component.Component
BOOKMARK_ENABLED_PROPERTY, CONSTRAINTS_PROPERTY, DRAG_ENABLED_PROPERTY, DROP_ENABLED_PROPERTY, FLYOVER_ENABLED_PROPERTY, FLYOVER_STRATEGY_PROPERTY, INPUT_STRATEGY_PROPERTY, NAME_PROPERTY, NOTIFICATION_PROPERTY, ORIENTATION_PROPERTY, THEME_APPLIED_PROPERTY, VALID_PROPERTY
-
Fields inherited from interface io.guise.framework.component.Control
STATUS_PROPERTY
-
Fields inherited from interface io.guise.framework.model.Displayable
DISPLAYED_PROPERTY
-
Fields inherited from interface io.guise.framework.model.Enableable
ENABLED_PROPERTY
-
Fields inherited from interface io.guise.framework.model.InfoModel
DESCRIPTION_CONTENT_TYPE_PROPERTY, DESCRIPTION_PROPERTY, INFO_CONTENT_TYPE_PROPERTY, INFO_PROPERTY
-
Fields inherited from interface io.guise.framework.model.LabelModel
GLYPH_URI_PROPERTY, LABEL_CONTENT_TYPE_PROPERTY, LABEL_PROPERTY
-
Fields inherited from interface io.guise.framework.model.ui.PresentationModel
BACKGROUND_COLOR_PROPERTY, BORDER_LINE_FAR_COLOR_PROPERTY, BORDER_LINE_FAR_EXTENT_PROPERTY, BORDER_LINE_FAR_STYLE_PROPERTY, BORDER_LINE_NEAR_COLOR_PROPERTY, BORDER_LINE_NEAR_EXTENT_PROPERTY, BORDER_LINE_NEAR_STYLE_PROPERTY, BORDER_PAGE_FAR_COLOR_PROPERTY, BORDER_PAGE_FAR_EXTENT_PROPERTY, BORDER_PAGE_FAR_STYLE_PROPERTY, BORDER_PAGE_NEAR_COLOR_PROPERTY, BORDER_PAGE_NEAR_EXTENT_PROPERTY, BORDER_PAGE_NEAR_STYLE_PROPERTY, CORNER_LINE_FAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_FAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CURSOR_PROPERTY, FONT_FAMILIES_PROPERTY, FONT_SIZE_PROPERTY, FONT_STYLE_PROPERTY, FONT_WEIGHT_BOLD, FONT_WEIGHT_NORMAL, FONT_WEIGHT_PROPERTY, LABEL_FONT_FAMILIES_PROPERTY, LABEL_FONT_SIZE_PROPERTY, LABEL_FONT_STYLE_PROPERTY, LABEL_FONT_WEIGHT_PROPERTY, LABEL_TEXT_COLOR_PROPERTY, LINE_EXTENT_PROPERTY, MARGIN_LINE_FAR_EXTENT_PROPERTY, MARGIN_LINE_NEAR_EXTENT_PROPERTY, MARGIN_PAGE_FAR_EXTENT_PROPERTY, MARGIN_PAGE_NEAR_EXTENT_PROPERTY, OPACITY_PROPERTY, PADDING_LINE_FAR_EXTENT_PROPERTY, PADDING_LINE_NEAR_EXTENT_PROPERTY, PADDING_PAGE_FAR_EXTENT_PROPERTY, PADDING_PAGE_NEAR_EXTENT_PROPERTY, PAGE_EXTENT_PROPERTY, ROUNDED_CORNER_ARC_SIZE, STYLE_ID_PROPERTY, TEXT_COLOR_PROPERTY, TOOLTIP_ENABLED_PROPERTY, VISIBLE_PROPERTY
-
Fields inherited from interface io.guise.framework.component.SelectControl
VALUE_REPRESENTATION_STRATEGY_PROPERTY
-
Fields inherited from interface io.guise.framework.component.ValueControl
CONVERTER_PROPERTY
-
Fields inherited from interface io.guise.framework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description AbstractListSelectControl(ListSelectModel<V> listSelectModel, ListSelectControl.ValueRepresentationStrategy<V> valueRepresentationStrategy)
List select model and value representation strategy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, V value)
boolean
add(V value)
boolean
addAll(int index, java.util.Collection<? extends V> collection)
boolean
addAll(java.util.Collection<? extends V> collection)
void
addListListener(ListListener<V> listListener)
Adds a list listener.void
addListSelectionListener(ListSelectionListener<V> selectionListener)
Adds a list selection listener.void
addSelectedIndexes(int... indexes)
Adds a selection at the given indices.void
clear()
void
clearValue()
Clears the value by setting the value tonull
, which may be invalid according to any installed validators.boolean
contains(java.lang.Object value)
boolean
containsAll(java.util.Collection<?> collection)
protected AbstractListSelectControl.ValueComponentState
createComponentState(V value)
Creates a component state to represent the given object.protected boolean
determineValid()
Checks the state of the component for validity.protected void
fireListModified(int index, V addedElement, V removedElement)
Fires an event to all registered list listeners indicating the list was modified.protected <VV> void
firePropertyChange(java.lang.String propertyName, VV oldValue, VV newValue)
protected void
fireSelectionChanged(java.lang.Integer addedIndex, java.lang.Integer removedIndex)
Fires an event to all registered selection listeners indicating the selection changed.V
get(int index)
Component
getComponent(V value)
Retrieves the component for the given object.V
getDefaultValue()
protected ListSelectModel<V>
getListSelectModel()
int
getSelectedIndex()
Determines the selected index.int[]
getSelectedIndexes()
Determines the selected indices.V
getSelectedValue()
Determines the selected value.V[]
getSelectedValues()
Determines the selected values.ListSelectionPolicy<V>
getSelectionPolicy()
Validator<V>
getValidator()
V
getValue()
java.lang.Class<V>
getValueClass()
ListSelectControl.ValueRepresentationStrategy<V>
getValueRepresentationStrategy()
int
indexOf(java.lang.Object value)
boolean
isEmpty()
boolean
isIndexDisplayed(int index)
Determines the displayed status of a given index.boolean
isIndexEnabled(int index)
Determines the enabled status of a given index.boolean
isValidValue()
Determines whether the value of this model is valid.boolean
isValueDisplayed(V value)
Determines the displayed status of the first occurrence of a given value.boolean
isValueEnabled(V value)
Determines the enabled status of the first occurrence of a given value.java.util.Iterator<V>
iterator()
int
lastIndexOf(java.lang.Object value)
java.util.ListIterator<V>
listIterator()
java.util.ListIterator<V>
listIterator(int index)
V
remove(int index)
boolean
remove(java.lang.Object value)
boolean
removeAll(java.util.Collection<?> collection)
void
removeListListener(ListListener<V> listListener)
Removes a list listener.void
removeListSelectionListener(ListSelectionListener<V> selectionListener)
Removes a list selection listener.void
removeSelectedIndexes(int... indexes)
Removes a selection at the given indices.boolean
replace(V oldValue, V newValue)
Replaces the first occurrence in the of the given value with its replacement.void
reset()
Resets the control to its default value.void
resetValue()
Resets the value to a default value, which may be invalid according to any installed validators.boolean
retainAll(java.util.Collection<?> collection)
V
set(int index, V value)
void
setIndexDisplayed(int index, boolean newDisplayed)
Sets the displayed status of a given index.void
setIndexEnabled(int index, boolean newEnabled)
Sets the enabled status of a given index.void
setSelectedIndexes(int... indexes)
Sets the selected indices.void
setSelectedValues(V... values)
Sets the selected values.void
setValidator(Validator<V> newValidator)
Sets the validator.void
setValue(V newValue)
Sets the new value.void
setValueDisplayed(V value, boolean newDisplayed)
Sets the displayed status of the first occurrence of a given value.void
setValueEnabled(V value, boolean newEnabled)
Sets the enabled status of the first occurrence of a given value.void
setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<V> newValueRepresentationStrategy)
Sets the strategy used to generate a component to represent each value in the model.int
size()
java.util.List<V>
subList(int fromIndex, int toIndex)
java.lang.Object[]
toArray()
<T> T[]
toArray(T[] array)
boolean
validate()
Validates the user input of this component and all child components.void
validateValue()
Validates the value of this model, throwing an exception if the model is not valid.-
Methods inherited from class io.guise.framework.component.AbstractCompositeStateControl
determineStatus, getEnableable, getStatus, isEnabled, setEnabled, setNotification, setStatus, updateStatus, updateValid
-
Methods inherited from class io.guise.framework.component.AbstractCompositeStateComponent
clearComponentStates, determineComponentState, getComponentState, getComponentStates, getObject, putComponentState, removeComponentState
-
Methods inherited from class io.guise.framework.component.AbstractMultipleCompositeComponent
addComponent, getChildComponents, hasChildComponents, removeComponent
-
Methods inherited from class io.guise.framework.component.AbstractCompositeComponent
addCompositeComponentListener, childComponentValidPropertyChanged, determineChildrenValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentAdded, fireChildComponentRemoved, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, resetTheme, savePreferences, uninitializeChildComponent, updateTheme, validateChildren
-
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, depict, equals, exportTransfer, fireInputEvent, fireNotified, fireNotified, getAncestor, getCommandListeners, getComponentByID, getComponentByName, getComponentOrientation, getConstraints, getDepictID, getDepictor, getDescription, getDescriptionContentType, getDirtyComponents, getDirtyComponents, getEventListenerManager, getFlyoverStrategy, getGlyphURI, getInfo, getInfoContentType, getInfoModel, getInputStrategy, getKeyListeners, getLabel, getLabelContentType, getMouseListeners, getName, getNotification, getNotifications, getNotifications, getOrientation, getParent, getPreferenceProperties, getRootComponent, getTheme, hasAncestor, hasCommandListeners, hashCode, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, notify, processEvent, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, setConstraints, setDepicted, setDescription, setDescriptionContentType, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setGlyphURI, setInfo, setInfoContentType, setInputStrategy, setLabel, setLabelContentType, setName, setOrientation, setParent, setThemeApplied, setValid, toString, update
-
Methods inherited from class io.guise.framework.model.ui.AbstractPresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
-
Methods inherited from class io.guise.framework.event.GuiseBoundPropertyObject
getSession
-
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.guise.framework.component.Component
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, dispatchInputEvent, exportTransfer, fireInputEvent, getAncestor, getComponentOrientation, getConstraints, getDepictor, getFlyoverStrategy, getInputStrategy, getName, getNotification, getOrientation, getParent, getPreferenceProperties, getTheme, hasCommandListeners, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, loadPreferences, notify, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setInputStrategy, setName, setNotification, setOrientation, setParent, setThemeApplied, updateTheme
-
Methods inherited from interface io.guise.framework.platform.DepictedObject
depict, getDepictID, getSession, processEvent
-
Methods inherited from interface io.guise.framework.model.Enableable
isEnabled, setEnabled
-
Methods inherited from interface io.guise.framework.model.InfoModel
getDescription, getDescriptionContentType, getInfo, getInfoContentType, setDescription, setDescriptionContentType, setInfo, setInfoContentType
-
Methods inherited from interface io.guise.framework.model.LabelModel
getGlyphURI, getLabel, getLabelContentType, setGlyphURI, setLabel, setLabelContentType
-
Methods inherited from interface io.guise.framework.model.ui.PresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getSession, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
-
-
-
-
Constructor Detail
-
AbstractListSelectControl
public AbstractListSelectControl(ListSelectModel<V> listSelectModel, ListSelectControl.ValueRepresentationStrategy<V> valueRepresentationStrategy)
List select model and value representation strategy constructor.- Parameters:
listSelectModel
- The component list select model.valueRepresentationStrategy
- The strategy to create controls to represent this model's values.- Throws:
java.lang.NullPointerException
- if the given list select model and/or value representation strategy isnull
.
-
-
Method Detail
-
getListSelectModel
protected ListSelectModel<V> getListSelectModel()
- Returns:
- The list select model used by this component.
-
getValueRepresentationStrategy
public ListSelectControl.ValueRepresentationStrategy<V> getValueRepresentationStrategy()
- Specified by:
getValueRepresentationStrategy
in interfaceListSelectControl<V>
- Returns:
- The strategy used to generate a component to represent each value in the model.
-
setValueRepresentationStrategy
public void setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<V> newValueRepresentationStrategy)
Description copied from interface:ListSelectControl
Sets the strategy used to generate a component to represent each value in the model. This is a bound property- Specified by:
setValueRepresentationStrategy
in interfaceListSelectControl<V>
- Parameters:
newValueRepresentationStrategy
- The new strategy to create components to represent this model's values.- See Also:
SelectControl.VALUE_REPRESENTATION_STRATEGY_PROPERTY
-
getComponent
public Component getComponent(V value)
Retrieves the component for the given object. If no component yet exists for the given object, one will be created.This version is provided to allow public access.
- Specified by:
getComponent
in interfaceListSelectControl<V>
- Overrides:
getComponent
in classAbstractCompositeStateComponent<V,AbstractListSelectControl.ValueComponentState>
- Parameters:
value
- The object for which a representation component should be returned.- Returns:
- The child component representing the given object.
-
createComponentState
protected AbstractListSelectControl.ValueComponentState createComponentState(V value)
Description copied from class:AbstractCompositeStateComponent
Creates a component state to represent the given object.- Specified by:
createComponentState
in classAbstractCompositeStateComponent<V,AbstractListSelectControl.ValueComponentState>
- Parameters:
value
- The object with which the component state is to be associated.- Returns:
- The component state to represent the given object.
-
firePropertyChange
protected <VV> void firePropertyChange(java.lang.String propertyName, VV oldValue, VV newValue)
This version first updates the valid status if the value is reported as being changed.
- Overrides:
firePropertyChange
in classcom.globalmentor.beans.BoundPropertyObject
-
determineValid
protected boolean determineValid()
Checks the state of the component for validity. This version returnstrue
.This version calls
AbstractCompositeComponent.determineChildrenValid()
.This version performs no additional checks if the control is disabled.
- Overrides:
determineValid
in classAbstractCompositeComponent
- Returns:
true
if the component and all children passes all validity tests, elsefalse
.
-
validate
public boolean validate()
Validates the user input of this component and all child components. The component will be updated with error information.This version clears all notifications. This version calls
AbstractComponent.updateValid()
.This version first calls
AbstractCompositeComponent.validateChildren()
so that all children will be validated before checks are performed on this component.This version validates the associated list select model. This version performs no additional checks if the control is disabled.
- Specified by:
validate
in interfaceComponent
- Overrides:
validate
in classAbstractCompositeComponent
- Returns:
- The current state of
Component.isValid()
as a convenience.
-
reset
public void reset()
Resets the control to its default value.This version clears any notification.
This version resets the control value.
- Specified by:
reset
in interfaceControl
- Overrides:
reset
in classAbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState>
- See Also:
resetValue()
-
getDefaultValue
public V getDefaultValue()
- Specified by:
getDefaultValue
in interfaceValueModel<V>
- Returns:
- The default value.
-
getValue
public V getValue()
- Specified by:
getValue
in interfacecom.globalmentor.model.Valued<V>
- Specified by:
getValue
in interfaceValuedComponent<V>
- Specified by:
getValue
in interfaceValueModel<V>
- Returns:
- The input value, or
null
if there is no input value.
-
setValue
public void setValue(V newValue) throws java.beans.PropertyVetoException
Description copied from interface:ValueModel
Sets the new value. This is a bound property that only fires a change event when the new value is different via theequals()
method. If a validator is installed, the value will first be validated before the current value is changed. Validation always occurs if a validator is installed, even if the value is not changing. If the value change is vetoed by the installed validator, the validation exception will be accessible viaThrowable.getCause()
.- Specified by:
setValue
in interfacecom.globalmentor.model.MutableValued<V>
- Specified by:
setValue
in interfaceValuedComponent<V>
- Specified by:
setValue
in interfaceValueModel<V>
- Parameters:
newValue
- The new value.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.- See Also:
ValueModel.getValidator()
,ValueModel.VALUE_PROPERTY
-
clearValue
public void clearValue()
Description copied from interface:ValueModel
Clears the value by setting the value tonull
, which may be invalid according to any installed validators. No validation occurs.- Specified by:
clearValue
in interfaceValueModel<V>
- See Also:
ValueModel.VALUE_PROPERTY
-
resetValue
public void resetValue()
Description copied from interface:ValueModel
Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.- Specified by:
resetValue
in interfaceValueModel<V>
- See Also:
ValueModel.VALUE_PROPERTY
-
getValidator
public Validator<V> getValidator()
- Specified by:
getValidator
in interfaceValueModel<V>
- Returns:
- The validator for this model, or
null
if no validator is installed.
-
setValidator
public void setValidator(Validator<V> newValidator)
Description copied from interface:ValueModel
Sets the validator. This is a bound property- Specified by:
setValidator
in interfaceValueModel<V>
- Parameters:
newValidator
- The validator for this model, ornull
if no validator should be used.- See Also:
ValueModel.VALIDATOR_PROPERTY
-
isValidValue
public boolean isValidValue()
Description copied from interface:ValueModel
Determines whether the value of this model is valid.- Specified by:
isValidValue
in interfaceValueModel<V>
- Returns:
- Whether the value of this model is valid.
-
validateValue
public void validateValue() throws ValidationException
Description copied from interface:ValueModel
Validates the value of this model, throwing an exception if the model is not valid.- Specified by:
validateValue
in interfaceValueModel<V>
- Throws:
ValidationException
- if the value of this model is not valid.
-
getValueClass
public java.lang.Class<V> getValueClass()
- Specified by:
getValueClass
in interfaceValuedComponent<V>
- Specified by:
getValueClass
in interfaceValueModel<V>
- Returns:
- The class representing the type of value this model can hold.
-
replace
public boolean replace(V oldValue, V newValue)
Description copied from interface:SelectModel
Replaces the first occurrence in the of the given value with its replacement. This method ensures that another thread does not change the model while the search and replace operation occurs.- Specified by:
replace
in interfaceSelectModel<V>
- Parameters:
oldValue
- The value for which to search.newValue
- The replacement value.- Returns:
- Whether the operation resulted in a modification of the model.
-
getSelectedValue
public V getSelectedValue()
Description copied from interface:SelectModel
Determines the selected value. This method delegates to the selection strategy. If more than one value is selected, the lead selected value will be returned.- Specified by:
getSelectedValue
in interfaceSelectModel<V>
- Returns:
- The value currently selected, or
null
if no value is currently selected.
-
getSelectedValues
public V[] getSelectedValues()
Description copied from interface:SelectModel
Determines the selected values. This method delegates to the selection strategy.- Specified by:
getSelectedValues
in interfaceSelectModel<V>
- Returns:
- The values currently selected.
-
setSelectedValues
public void setSelectedValues(V... values) throws java.beans.PropertyVetoException
Description copied from interface:SelectModel
Sets the selected values. If a value occurs more than one time in the model, all occurrences of the value will be selected. Values that do not occur in the select model will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible viaThrowable.getCause()
. This method delegates to the selection strategy.- Specified by:
setSelectedValues
in interfaceSelectModel<V>
- Parameters:
values
- The values to select.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.
-
getSelectionPolicy
public ListSelectionPolicy<V> getSelectionPolicy()
- Specified by:
getSelectionPolicy
in interfaceListSelectModel<V>
- Returns:
- The selection policy for this model.
-
getSelectedIndex
public int getSelectedIndex()
Description copied from interface:ListSelectModel
Determines the selected index. If more than one index is selected, the lead selected index will be returned.- Specified by:
getSelectedIndex
in interfaceListSelectModel<V>
- Returns:
- The index currently selected, or -1 if no index is selected.
- See Also:
SelectModel.getSelectedValue()
-
getSelectedIndexes
public int[] getSelectedIndexes()
Description copied from interface:ListSelectModel
Determines the selected indices.- Specified by:
getSelectedIndexes
in interfaceListSelectModel<V>
- Returns:
- The indices currently selected.
- See Also:
SelectModel.getSelectedValues()
-
setSelectedIndexes
public void setSelectedIndexes(int... indexes) throws java.beans.PropertyVetoException
Description copied from interface:ListSelectModel
Sets the selected indices. Invalid and duplicate indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible viaThrowable.getCause()
.- Specified by:
setSelectedIndexes
in interfaceListSelectModel<V>
- Parameters:
indexes
- The indices to select.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.- See Also:
ListSelectionPolicy.getSetSelectedIndices(ListSelectModel, int[])
,SelectModel.setSelectedValues(Object...)
,ListSelectModel.addSelectedIndexes(int...)
-
addSelectedIndexes
public void addSelectedIndexes(int... indexes) throws java.beans.PropertyVetoException
Description copied from interface:ListSelectModel
Adds a selection at the given indices. Any invalid indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible viaThrowable.getCause()
.- Specified by:
addSelectedIndexes
in interfaceListSelectModel<V>
- Parameters:
indexes
- The indices to add to the selection.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.- See Also:
ListSelectionPolicy.getAddSelectedIndices(ListSelectModel, int[])
,ListSelectModel.setSelectedIndexes(int...)
-
removeSelectedIndexes
public void removeSelectedIndexes(int... indexes) throws java.beans.PropertyVetoException
Description copied from interface:ListSelectModel
Removes a selection at the given indices. Any invalid indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible viaThrowable.getCause()
.- Specified by:
removeSelectedIndexes
in interfaceListSelectModel<V>
- Parameters:
indexes
- The indices to remove from the selection.- Throws:
java.beans.PropertyVetoException
- if the provided value is not valid or the change has otherwise been vetoed.- See Also:
ListSelectionPolicy.getRemoveSelectedIndices(ListSelectModel, int[])
,ListSelectModel.setSelectedIndexes(int[])
-
isValueDisplayed
public boolean isValueDisplayed(V value)
Description copied from interface:ListSelectModel
Determines the displayed status of the first occurrence of a given value.- Specified by:
isValueDisplayed
in interfaceListSelectModel<V>
- Parameters:
value
- The value for which the displayed status is to be determined.- Returns:
true
if the value is displayed, elsefalse
.
-
setValueDisplayed
public void setValueDisplayed(V value, boolean newDisplayed)
Description copied from interface:ListSelectModel
Sets the displayed status of the first occurrence of a given value. This is a bound value state property.- Specified by:
setValueDisplayed
in interfaceListSelectModel<V>
- Parameters:
value
- The value to display.newDisplayed
- Whether the value should be displayed.- See Also:
Displayable.DISPLAYED_PROPERTY
-
isIndexDisplayed
public boolean isIndexDisplayed(int index)
Description copied from interface:ListSelectModel
Determines the displayed status of a given index.- Specified by:
isIndexDisplayed
in interfaceListSelectModel<V>
- Parameters:
index
- The index of the value for which the displayed status is to be determined.- Returns:
true
if the value at the given index is displayed, elsefalse
.
-
setIndexDisplayed
public void setIndexDisplayed(int index, boolean newDisplayed)
Description copied from interface:ListSelectModel
Sets the displayed status of a given index. This is a bound value state property.- Specified by:
setIndexDisplayed
in interfaceListSelectModel<V>
- Parameters:
index
- The index of the value to display.newDisplayed
- Whether the value at the given index should be displayed.- See Also:
Displayable.DISPLAYED_PROPERTY
-
isValueEnabled
public boolean isValueEnabled(V value)
Description copied from interface:ListSelectModel
Determines the enabled status of the first occurrence of a given value.- Specified by:
isValueEnabled
in interfaceListSelectModel<V>
- Parameters:
value
- The value for which the enabled status is to be determined.- Returns:
true
if the value is enabled, elsefalse
.
-
setValueEnabled
public void setValueEnabled(V value, boolean newEnabled)
Description copied from interface:ListSelectModel
Sets the enabled status of the first occurrence of a given value. This is a bound value state property.- Specified by:
setValueEnabled
in interfaceListSelectModel<V>
- Parameters:
value
- The value to enable or disable.newEnabled
- Whether the value should be enabled.- See Also:
Enableable.ENABLED_PROPERTY
-
isIndexEnabled
public boolean isIndexEnabled(int index)
Description copied from interface:ListSelectModel
Determines the enabled status of a given index.- Specified by:
isIndexEnabled
in interfaceListSelectModel<V>
- Parameters:
index
- The index of the value for which the enabled status is to be determined.- Returns:
true
if the value at the given index is enabled, elsefalse
.
-
setIndexEnabled
public void setIndexEnabled(int index, boolean newEnabled)
Description copied from interface:ListSelectModel
Sets the enabled status of a given index. This is a bound value state property.- Specified by:
setIndexEnabled
in interfaceListSelectModel<V>
- Parameters:
index
- The index of the value to enable or disable.newEnabled
- Whether the value at the given index should be enabled.- See Also:
Enableable.ENABLED_PROPERTY
-
addListListener
public void addListListener(ListListener<V> listListener)
Description copied from interface:ListSelectModel
Adds a list listener.- Specified by:
addListListener
in interfaceListListenable<V>
- Specified by:
addListListener
in interfaceListSelectModel<V>
- Parameters:
listListener
- The list listener to add.
-
removeListListener
public void removeListListener(ListListener<V> listListener)
Description copied from interface:ListSelectModel
Removes a list listener.- Specified by:
removeListListener
in interfaceListListenable<V>
- Specified by:
removeListListener
in interfaceListSelectModel<V>
- Parameters:
listListener
- The list listener to remove.
-
addListSelectionListener
public void addListSelectionListener(ListSelectionListener<V> selectionListener)
Description copied from interface:ListSelectModel
Adds a list selection listener.- Specified by:
addListSelectionListener
in interfaceListSelectModel<V>
- Parameters:
selectionListener
- The selection listener to add.
-
removeListSelectionListener
public void removeListSelectionListener(ListSelectionListener<V> selectionListener)
Description copied from interface:ListSelectModel
Removes a list selection listener.- Specified by:
removeListSelectionListener
in interfaceListSelectModel<V>
- Parameters:
selectionListener
- The selection listener to remove.
-
fireListModified
protected void fireListModified(int index, V addedElement, V removedElement)
Fires an event to all registered list listeners indicating the list was modified.- Parameters:
index
- The index at which an element was added and/or removed, or -1 if the index is unknown.addedElement
- The element that was added to the list, ornull
if no element was added or it is unknown whether or which elements were added.removedElement
- The element that was removed from the list, ornull
if no element was removed or it is unknown whether or which elements were removed.- See Also:
ListListener
,ListEvent
-
fireSelectionChanged
protected void fireSelectionChanged(java.lang.Integer addedIndex, java.lang.Integer removedIndex)
Fires an event to all registered selection listeners indicating the selection changed.- Parameters:
addedIndex
- The index that was added to the selection, ornull
if no index was added or it is unknown whether or which indices were added.removedIndex
- The index that was removed from the list, ornull
if no index was removed or it is unknown whether or which indices were removed.- See Also:
ListSelectionListener
,ListSelectionEvent
-
size
public int size()
-
isEmpty
public boolean isEmpty()
-
contains
public boolean contains(java.lang.Object value)
-
iterator
public java.util.Iterator<V> iterator()
-
toArray
public java.lang.Object[] toArray()
-
toArray
public <T> T[] toArray(T[] array)
-
add
public boolean add(V value)
This version delegates to
add(int, Object)
.
-
remove
public boolean remove(java.lang.Object value)
-
containsAll
public boolean containsAll(java.util.Collection<?> collection)
-
addAll
public boolean addAll(java.util.Collection<? extends V> collection)
-
addAll
public boolean addAll(int index, java.util.Collection<? extends V> collection)
- Specified by:
addAll
in interfacejava.util.List<V>
-
removeAll
public boolean removeAll(java.util.Collection<?> collection)
-
retainAll
public boolean retainAll(java.util.Collection<?> collection)
-
clear
public void clear()
-
indexOf
public int indexOf(java.lang.Object value)
- Specified by:
indexOf
in interfacejava.util.List<V>
-
lastIndexOf
public int lastIndexOf(java.lang.Object value)
- Specified by:
lastIndexOf
in interfacejava.util.List<V>
-
listIterator
public java.util.ListIterator<V> listIterator()
- Specified by:
listIterator
in interfacejava.util.List<V>
-
listIterator
public java.util.ListIterator<V> listIterator(int index)
- Specified by:
listIterator
in interfacejava.util.List<V>
-
-