Package io.guise.framework.component
Class AbstractListSelectContainerControl
- 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.AbstractListCompositeComponent
-
- io.guise.framework.component.AbstractLayoutComponent
-
- io.guise.framework.component.AbstractContainer
-
- io.guise.framework.component.AbstractContainerControl
-
- io.guise.framework.component.AbstractListSelectContainerControl
-
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.model.MutableValued<Component>
,com.globalmentor.model.Valued<Component>
,Component
,CompositeComponent
,Container
,ContainerControl
,Control
,InputFocusableComponent
,LayoutComponent
,ListSelectControl<Component>
,SelectControl<Component>
,ValueControl<Component>
,ValuedComponent<Component>
,ListListenable<Component>
,Displayable
,Enableable
,InfoModel
,LabelModel
,ListSelectModel<Component>
,Model
,SelectModel<Component>
,PresentationModel
,ValueModel<Component>
,DepictedObject
,java.lang.Iterable<Component>
,java.util.Collection<Component>
,java.util.List<Component>
- Direct Known Subclasses:
AbstractCardPanel
,TabContainerControl
public abstract class AbstractListSelectContainerControl extends AbstractContainerControl implements ListSelectControl<Component>
An abstract list select control that is also a container. The component valid status is updated before a change in theValueModel.VALUE_PROPERTY
or theValueModel.VALIDATOR_PROPERTY
is fired.This implementation installs a default value representation strategy that simply passes through the represented component.
- Author:
- Garret Wilson
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractListSelectContainerControl.ComponentRepresentationStrategy
A strategy for to represent components in a list select model as themselves.-
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 Modifier and Type Field Description static AbstractListSelectContainerControl.ComponentRepresentationStrategy
COMPONENT_REPRESENTATION_STRATEGY
The static representation strategy to represent component values as themselves.-
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.component.LayoutComponent
LAYOUT_PROPERTY, LAYOUT_THEME_APPLIED_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 Modifier Constructor Description protected
AbstractListSelectContainerControl(AbstractValueLayout<?> layout)
Layout constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addAll(int index, java.util.Collection<? extends Component> collection)
boolean
addAll(java.util.Collection<? extends Component> collection)
void
addListListener(ListListener<Component> listListener)
Adds a list listener.void
addListSelectionListener(ListSelectionListener<Component> selectionListener)
Adds a list selection listener.void
addSelectedIndexes(int... indexes)
Adds a selection at the given indices.void
clearValue()
Clears the value by setting the value tonull
, which may be invalid according to any installed validators.boolean
containsAll(java.util.Collection<?> collection)
protected boolean
determineChildrenValid()
Checks the state of child components for validity.protected void
fireChildComponentAdded(ComponentEvent childComponentEvent)
Fires a given component added event to all registered composite component listeners.protected void
fireChildComponentRemoved(ComponentEvent childComponentEvent)
Fires a given component removed event to all registered composite component listeners.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.Component
getComponent(Component object)
Retrieves the component for the given value.Component
getDefaultValue()
AbstractValueLayout<? extends ControlConstraints>
getLayout()
int
getSelectedIndex()
Determines the selected index.int[]
getSelectedIndexes()
Determines the selected indices.Component
getSelectedValue()
Determines the selected value.Component[]
getSelectedValues()
Determines the selected values.ListSelectionPolicy<Component>
getSelectionPolicy()
Validator<Component>
getValidator()
Component
getValue()
java.lang.Class<Component>
getValueClass()
ListSelectControl.ValueRepresentationStrategy<Component>
getValueRepresentationStrategy()
boolean
isDisplayed(Component component)
Convenience method to determine whether a card is displayed based upon its associated constraints.boolean
isEnabled(Component component)
Convenience method to determine whether a card is enabled based upon its associated constraints.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(Component value)
Determines the displayed status of the first occurrence of a given value.boolean
isValueEnabled(Component value)
Determines the enabled status of the first occurrence of a given value.java.util.ListIterator<Component>
listIterator()
java.util.ListIterator<Component>
listIterator(int index)
boolean
removeAll(java.util.Collection<?> collection)
void
removeListListener(ListListener<Component> listListener)
Removes a list listener.void
removeListSelectionListener(ListSelectionListener<Component> selectionListener)
Removes a list selection listener.void
removeSelectedIndexes(int... indexes)
Removes a selection at the given indices.boolean
replace(Component oldValue, Component newValue)
Replaces the first occurrence in the of the given value with its replacement.void
resetValue()
Resets the value to a default value, which may be invalid according to any installed validators.boolean
retainAll(java.util.Collection<?> collection)
Component
set(int index, Component value)
void
setDisplayed(Component component, boolean newDisplayed)
Sets a card displayed or not displayed.void
setEnabled(Component component, boolean newEnabled)
Enables or disables a card.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(Component... values)
Sets the selected values.void
setValidator(Validator<Component> newValidator)
Sets the validator.void
setValue(Component newValue)
Sets the new value.void
setValueDisplayed(Component value, boolean newDisplayed)
Sets the displayed status of the first occurrence of a given value.void
setValueEnabled(Component value, boolean newEnabled)
Sets the enabled status of the first occurrence of a given value.void
setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<Component> newValueRepresentationStrategy)
Sets the strategy used to generate a component to represent each value in the model.java.util.List<Component>
subList(int fromIndex, int toIndex)
java.lang.Object[]
toArray()
<T> T[]
toArray(T[] array)
boolean
validateChildren()
Validates the user input of 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.AbstractContainerControl
determineStatus, getEnableable, getStatus, isEnabled, reset, setEnabled, setNotification, setStatus, updateStatus, updateValid
-
Methods inherited from class io.guise.framework.component.AbstractContainer
add, add, add, add, add, add, add, add, clear, contains, createComponent, get, getChildComponents, indexOf, isEmpty, iterator, lastIndexOf, remove, remove, setChildren, setLayout, size
-
Methods inherited from class io.guise.framework.component.AbstractLayoutComponent
addComponent, applyTheme, applyTheme, isLayoutThemeApplied, removeComponent, resetTheme, setLayoutThemeApplied, updateTheme
-
Methods inherited from class io.guise.framework.component.AbstractListCompositeComponent
addComponent, getComponentList, hasChildComponents
-
Methods inherited from class io.guise.framework.component.AbstractCompositeComponent
addCompositeComponentListener, childComponentValidPropertyChanged, determineValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, savePreferences, uninitializeChildComponent, validate
-
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, 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, validate
-
Methods inherited from interface io.guise.framework.component.CompositeComponent
addCompositeComponentListener, getChildComponents, hasChildComponents, removeCompositeComponentListener
-
Methods inherited from interface io.guise.framework.component.Container
add, add, add, add, add, add, add, clear, contains, get, indexOf, isEmpty, lastIndexOf, remove, remove, setLayout, size
-
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.component.LayoutComponent
isLayoutThemeApplied, setLayoutThemeApplied
-
Methods inherited from interface java.util.List
add, add, clear, contains, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, remove, remove, replaceAll, size, sort, spliterator
-
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
-
-
-
-
Field Detail
-
COMPONENT_REPRESENTATION_STRATEGY
public static final AbstractListSelectContainerControl.ComponentRepresentationStrategy COMPONENT_REPRESENTATION_STRATEGY
The static representation strategy to represent component values as themselves.
-
-
Constructor Detail
-
AbstractListSelectContainerControl
protected AbstractListSelectContainerControl(AbstractValueLayout<?> layout)
Layout constructor.- Parameters:
layout
- The layout definition for the container.- Throws:
java.lang.NullPointerException
- if the given layout isnull
.
-
-
Method Detail
-
getLayout
public AbstractValueLayout<? extends ControlConstraints> getLayout()
- Specified by:
getLayout
in interfaceLayoutComponent
- Overrides:
getLayout
in classAbstractLayoutComponent
- Returns:
- The layout definition for the container.
-
getValueRepresentationStrategy
public ListSelectControl.ValueRepresentationStrategy<Component> getValueRepresentationStrategy()
- Specified by:
getValueRepresentationStrategy
in interfaceListSelectControl<Component>
- Returns:
- The strategy used to generate a component to represent each value in the model.
-
setValueRepresentationStrategy
public void setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<Component> 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<Component>
- 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(Component object)
Retrieves the component for the given value.This version returns the given component to fulfill the interface contract of
ListSelectControl
.- Specified by:
getComponent
in interfaceListSelectControl<Component>
- Parameters:
object
- The value for which a representation component should be returned.- Returns:
- The child component representing the given value.
-
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
-
determineChildrenValid
protected boolean determineChildrenValid()
Checks the state of child components for validity. This version checks all child components for validity using the currentComponent.isValid()
; child component are not asked to update their valid state. Children that are not visible and/or not displayed are not taken into account.This version only checks the validity of the selected card.
- Overrides:
determineChildrenValid
in classAbstractCompositeComponent
- Returns:
true
if the relevant children pass all validity tests.
-
validateChildren
public boolean validateChildren()
Validates the user input of child components. Children that are not visible and/or not displayed are not taken into account.This version only validates the selected card.
- Overrides:
validateChildren
in classAbstractCompositeComponent
- Returns:
true
if all child validations returntrue
.
-
getDefaultValue
public Component getDefaultValue()
- Specified by:
getDefaultValue
in interfaceValueModel<Component>
- Returns:
- The default value.
-
getValue
public Component getValue()
- Specified by:
getValue
in interfacecom.globalmentor.model.Valued<Component>
- Specified by:
getValue
in interfaceValuedComponent<Component>
- Specified by:
getValue
in interfaceValueModel<Component>
- Returns:
- The input value, or
null
if there is no input value.
-
setValue
public void setValue(Component 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<Component>
- Specified by:
setValue
in interfaceValuedComponent<Component>
- Specified by:
setValue
in interfaceValueModel<Component>
- 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<Component>
- 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<Component>
- See Also:
ValueModel.VALUE_PROPERTY
-
getValidator
public Validator<Component> getValidator()
- Specified by:
getValidator
in interfaceValueModel<Component>
- Returns:
- The validator for this model, or
null
if no validator is installed.
-
setValidator
public void setValidator(Validator<Component> newValidator)
Description copied from interface:ValueModel
Sets the validator. This is a bound property- Specified by:
setValidator
in interfaceValueModel<Component>
- 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<Component>
- 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<Component>
- Throws:
ValidationException
- if the value of this model is not valid.
-
getValueClass
public java.lang.Class<Component> getValueClass()
- Specified by:
getValueClass
in interfaceValuedComponent<Component>
- Specified by:
getValueClass
in interfaceValueModel<Component>
- Returns:
- The class representing the type of value this model can hold.
-
replace
public boolean replace(Component oldValue, Component 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<Component>
- 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 Component 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<Component>
- Returns:
- The value currently selected, or
null
if no value is currently selected.
-
getSelectedValues
public Component[] getSelectedValues()
Description copied from interface:SelectModel
Determines the selected values. This method delegates to the selection strategy.- Specified by:
getSelectedValues
in interfaceSelectModel<Component>
- Returns:
- The values currently selected.
-
setSelectedValues
public void setSelectedValues(Component... 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<Component>
- 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<Component> getSelectionPolicy()
- Specified by:
getSelectionPolicy
in interfaceListSelectModel<Component>
- 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<Component>
- 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<Component>
- 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<Component>
- 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<Component>
- 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<Component>
- 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(Component value)
Description copied from interface:ListSelectModel
Determines the displayed status of the first occurrence of a given value.- Specified by:
isValueDisplayed
in interfaceListSelectModel<Component>
- 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(Component 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<Component>
- 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<Component>
- 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<Component>
- 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(Component value)
Description copied from interface:ListSelectModel
Determines the enabled status of the first occurrence of a given value.- Specified by:
isValueEnabled
in interfaceListSelectModel<Component>
- 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(Component 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<Component>
- 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<Component>
- 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<Component>
- 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<Component> listListener)
Description copied from interface:ListSelectModel
Adds a list listener.- Specified by:
addListListener
in interfaceListListenable<Component>
- Specified by:
addListListener
in interfaceListSelectModel<Component>
- Parameters:
listListener
- The list listener to add.
-
removeListListener
public void removeListListener(ListListener<Component> listListener)
Description copied from interface:ListSelectModel
Removes a list listener.- Specified by:
removeListListener
in interfaceListListenable<Component>
- Specified by:
removeListListener
in interfaceListSelectModel<Component>
- Parameters:
listListener
- The list listener to remove.
-
addListSelectionListener
public void addListSelectionListener(ListSelectionListener<Component> selectionListener)
Description copied from interface:ListSelectModel
Adds a list selection listener.- Specified by:
addListSelectionListener
in interfaceListSelectModel<Component>
- Parameters:
selectionListener
- The selection listener to add.
-
removeListSelectionListener
public void removeListSelectionListener(ListSelectionListener<Component> selectionListener)
Description copied from interface:ListSelectModel
Removes a list selection listener.- Specified by:
removeListSelectionListener
in interfaceListSelectModel<Component>
- Parameters:
selectionListener
- The selection listener to remove.
-
fireChildComponentAdded
protected void fireChildComponentAdded(ComponentEvent childComponentEvent)
Fires a given component added event to all registered composite component listeners.This implementation also fires a list modified event to all registered list listeners, if any.
- Overrides:
fireChildComponentAdded
in classAbstractCompositeComponent
- Parameters:
childComponentEvent
- The child component event to fire.
-
fireChildComponentRemoved
protected void fireChildComponentRemoved(ComponentEvent childComponentEvent)
Fires a given component removed event to all registered composite component listeners. This implementation also fires a list modified event to all registered list listeners, if any.- Overrides:
fireChildComponentRemoved
in classAbstractCompositeComponent
- Parameters:
childComponentEvent
- The child component event to fire.- See Also:
CompositeComponentListener
-
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
-
toArray
public java.lang.Object[] toArray()
-
toArray
public <T> T[] toArray(T[] array)
-
containsAll
public boolean containsAll(java.util.Collection<?> collection)
-
addAll
public boolean addAll(java.util.Collection<? extends Component> collection)
-
addAll
public boolean addAll(int index, java.util.Collection<? extends Component> collection)
- Specified by:
addAll
in interfacejava.util.List<Component>
-
removeAll
public boolean removeAll(java.util.Collection<?> collection)
-
retainAll
public boolean retainAll(java.util.Collection<?> collection)
-
set
public Component set(int index, Component value)
- Specified by:
set
in interfacejava.util.List<Component>
-
listIterator
public java.util.ListIterator<Component> listIterator()
- Specified by:
listIterator
in interfacejava.util.List<Component>
-
listIterator
public java.util.ListIterator<Component> listIterator(int index)
- Specified by:
listIterator
in interfacejava.util.List<Component>
-
subList
public java.util.List<Component> subList(int fromIndex, int toIndex)
- Specified by:
subList
in interfacejava.util.List<Component>
-
isDisplayed
public boolean isDisplayed(Component component)
Convenience method to determine whether a card is displayed based upon its associated constraints.- Parameters:
component
- The component for which the card should be displayed or not displayed.- Returns:
- Whether the card is displayed or has no representation, taking up no space.
- Throws:
java.lang.IllegalStateException
- if the given component has no associated constraints.- See Also:
ControlConstraints.isDisplayed()
-
setDisplayed
public void setDisplayed(Component component, boolean newDisplayed)
Sets a card displayed or not displayed. This convenience method changes the displayed status of the component's associated constraints.- Parameters:
component
- The component for which the card should be displayed or not displayed.newDisplayed
-true
if the card should be displayed.- Throws:
java.lang.IllegalStateException
- if the given component has no associated constraints.- See Also:
ControlConstraints.setDisplayed(boolean)
-
isEnabled
public boolean isEnabled(Component component)
Convenience method to determine whether a card is enabled based upon its associated constraints.- Parameters:
component
- The component for which the card should be enabled or disabled.- Returns:
- Whether the card is enabled and can receive user input.
- Throws:
java.lang.IllegalStateException
- if the given component has no associated constraints.- See Also:
ControlConstraints.isEnabled()
-
setEnabled
public void setEnabled(Component component, boolean newEnabled)
Enables or disables a card. This convenience method changes the enabled status of the component's associated constraints.- Parameters:
component
- The component for which the card should be enabled or disabled.newEnabled
-true
if the card can be selected.- Throws:
java.lang.IllegalStateException
- if the given component has no associated constraints.- See Also:
ControlConstraints.setEnabled(boolean)
-
-