com.guiseframework.component
Class AbstractListSelectContainerControl

java.lang.Object
  extended by com.globalmentor.beans.BoundPropertyObject
      extended by com.guiseframework.event.GuiseBoundPropertyObject
          extended by com.guiseframework.model.ui.AbstractPresentationModel
              extended by com.guiseframework.component.AbstractComponent
                  extended by com.guiseframework.component.AbstractCompositeComponent
                      extended by com.guiseframework.component.AbstractMultipleCompositeComponent
                          extended by com.guiseframework.component.AbstractListCompositeComponent
                              extended by com.guiseframework.component.AbstractLayoutComponent
                                  extended by com.guiseframework.component.AbstractContainer
                                      extended by com.guiseframework.component.AbstractContainerControl
                                          extended by com.guiseframework.component.AbstractListSelectContainerControl
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, 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, Valued<Component>, 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 the ValueModel.VALUE_PROPERTY or the ValueModel.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
static class AbstractListSelectContainerControl.ComponentRepresentationStrategy
          A strategy for to represent components in a list select model as themselves.
 
Nested classes/interfaces inherited from class com.guiseframework.component.AbstractComponent
AbstractComponent.AbstractFlyoverFrameStrategy<S extends Component>, AbstractComponent.AbstractFlyoverStrategy<S extends Component>, AbstractComponent.DefaultFlyoverStrategy<S extends Component>
 
Nested classes/interfaces inherited from interface com.guiseframework.component.ListSelectControl
ListSelectControl.ValueRepresentationStrategy<VV>
 
Nested classes/interfaces inherited from interface com.guiseframework.component.Control
Control.Status
 
Nested classes/interfaces inherited from interface com.guiseframework.component.Component
Component.FlyoverStrategy<S extends Component>
 
Field Summary
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 com.guiseframework.component.SelectControl
VALUE_REPRESENTATION_STRATEGY_PROPERTY
 
Fields inherited from interface com.guiseframework.component.ValueControl
CONVERTER_PROPERTY
 
Fields inherited from interface com.guiseframework.component.Control
STATUS_PROPERTY
 
Fields inherited from interface com.guiseframework.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 com.guiseframework.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 com.guiseframework.model.Displayable
DISPLAYED_PROPERTY
 
Fields inherited from interface com.guiseframework.model.InfoModel
DESCRIPTION_CONTENT_TYPE_PROPERTY, DESCRIPTION_PROPERTY, INFO_CONTENT_TYPE_PROPERTY, INFO_PROPERTY
 
Fields inherited from interface com.guiseframework.model.LabelModel
GLYPH_URI_PROPERTY, LABEL_CONTENT_TYPE_PROPERTY, LABEL_PROPERTY
 
Fields inherited from interface com.guiseframework.model.Model
PLAIN_TEXT_CONTENT_TYPE, XHTML_CONTENT_TYPE, XHTML_FRAGMENT_CONTENT_TYPE
 
Fields inherited from interface com.guiseframework.model.Enableable
ENABLED_PROPERTY
 
Fields inherited from interface com.guiseframework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
 
Fields inherited from interface com.guiseframework.component.LayoutComponent
LAYOUT_PROPERTY, LAYOUT_THEME_APPLIED_PROPERTY
 
Constructor Summary
protected AbstractListSelectContainerControl(AbstractValueLayout<?> layout)
          Layout constructor.
 
Method Summary
 boolean addAll(java.util.Collection<? extends Component> collection)
          Appends all of the values in the specified collection to the end of this model, in the order that they are returned by the specified collection's iterator.
 boolean addAll(int index, java.util.Collection<? extends Component> collection)
          Inserts all of the values in the specified collection into this model at the specified position.
 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 to null, which may be invalid according to any installed validators.
 boolean containsAll(java.util.Collection<?> collection)
          Determines if this model contains all of the values of the specified 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)
          Reports that a bound property has changed.
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 object.
 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)
          Returns a list iterator of the values in this model (in proper sequence), starting at the specified position in this model.
 boolean removeAll(java.util.Collection<?> collection)
          Removes from this model all the values that are contained in the specified 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)
          Retains only the values in this model that are contained in the specified collection.
 Component set(int index, Component value)
          Replaces the value at the specified position in this model with the specified 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 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)
          Returns a read-only view of the portion of this model between the specified fromIndex, inclusive, and toIndex, exclusive.
 java.lang.Object[] toArray()
           
<T> T[]
toArray(T[] array)
          Returns an array containing all of the values in this model.
 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 com.guiseframework.component.AbstractContainerControl
determineStatus, getEnableable, getStatus, isEnabled, reset, setEnabled, setNotification, setStatus, updateStatus, updateValid
 
Methods inherited from class com.guiseframework.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 com.guiseframework.component.AbstractLayoutComponent
addComponent, applyTheme, applyTheme, isLayoutThemeApplied, removeComponent, resetTheme, setLayoutThemeApplied, updateTheme
 
Methods inherited from class com.guiseframework.component.AbstractListCompositeComponent
addComponent, getComponentList, hasChildComponents
 
Methods inherited from class com.guiseframework.component.AbstractCompositeComponent
addCompositeComponentListener, childComponentValidPropertyChanged, determineValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, savePreferences, uninitializeChildComponent, validate
 
Methods inherited from class com.guiseframework.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 com.guiseframework.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 com.guiseframework.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, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.guiseframework.component.Control
getStatus, reset
 
Methods inherited from interface com.guiseframework.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 com.guiseframework.platform.DepictedObject
depict, getDepictID, getSession, processEvent
 
Methods inherited from interface com.guiseframework.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
 
Methods inherited from interface com.guiseframework.model.InfoModel
getDescription, getDescriptionContentType, getInfo, getInfoContentType, setDescription, setDescriptionContentType, setInfo, setInfoContentType
 
Methods inherited from interface com.guiseframework.model.LabelModel
getGlyphURI, getLabel, getLabelContentType, setGlyphURI, setLabel, setLabelContentType
 
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from interface com.globalmentor.beans.PropertyConstrainable
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, hasVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from interface com.guiseframework.model.Enableable
isEnabled, setEnabled
 
Methods inherited from interface java.util.List
add, add, clear, contains, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, remove, remove, size
 
Methods inherited from interface com.guiseframework.component.Container
add, add, add, add, add, add, add, clear, contains, get, indexOf, isEmpty, lastIndexOf, remove, remove, setLayout, size
 
Methods inherited from interface com.guiseframework.component.LayoutComponent
isLayoutThemeApplied, setLayoutThemeApplied
 
Methods inherited from interface com.guiseframework.component.CompositeComponent
addCompositeComponentListener, getChildComponents, hasChildComponents, removeCompositeComponentListener
 

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 is null.
Method Detail

getLayout

public AbstractValueLayout<? extends ControlConstraints> getLayout()
Specified by:
getLayout in interface LayoutComponent
Overrides:
getLayout in class AbstractLayoutComponent
Returns:
The layout definition for the container.

getValueRepresentationStrategy

public ListSelectControl.ValueRepresentationStrategy<Component> getValueRepresentationStrategy()
Specified by:
getValueRepresentationStrategy in interface ListSelectControl<Component>
Returns:
The strategy used to generate a component to represent each value in the model.

setValueRepresentationStrategy

public void setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<Component> newValueRepresentationStrategy)
Sets the strategy used to generate a component to represent each value in the model. This is a bound property

Specified by:
setValueRepresentationStrategy in interface ListSelectControl<Component>
Parameters:
newValueRepresentationStrategy - The new strategy to create components to represent this model's values.
Throws:
java.lang.NullPointerException - if the provided value representation strategy is null.
See Also:
SelectControl.VALUE_REPRESENTATION_STRATEGY_PROPERTY

getComponent

public Component getComponent(Component object)
Retrieves the component for the given object. This version returns the given component to fulfill the interface contract of ListSelectControl.

Specified by:
getComponent in interface ListSelectControl<Component>
Parameters:
object - The object for which a representation component should be returned.
Returns:
The child component representing the given object, or null if there is no component representing the given object.

firePropertyChange

protected <VV> void firePropertyChange(java.lang.String propertyName,
                                       VV oldValue,
                                       VV newValue)
Reports that a bound property has changed. This version first updates the valid status if the value is reported as being changed.

Overrides:
firePropertyChange in class com.globalmentor.beans.BoundPropertyObject
Parameters:
propertyName - The name of the property being changed.
oldValue - The old property value.
newValue - The new property value.
See Also:
BoundPropertyObject.firePropertyChange(PropertyChangeEvent), BoundPropertyObject.hasPropertyChangeListeners(String), GenericPropertyChangeEvent, GenericPropertyChangeListener

determineChildrenValid

protected boolean determineChildrenValid()
Checks the state of child components for validity. This version only checks the validity of the selected card.

Overrides:
determineChildrenValid in class AbstractCompositeComponent
Returns:
true if the relevant children pass all validity tests.

validateChildren

public boolean validateChildren()
Validates the user input of child components. This version only validates the selected card.

Overrides:
validateChildren in class AbstractCompositeComponent
Returns:
true if all child validations return true.

getDefaultValue

public Component getDefaultValue()
Specified by:
getDefaultValue in interface ValueModel<Component>
Returns:
The default value.

getValue

public Component getValue()
Specified by:
getValue in interface ValuedComponent<Component>
Specified by:
getValue in interface Valued<Component>
Specified by:
getValue in interface ValueModel<Component>
Returns:
The input value, or null if there is no input value.

setValue

public void setValue(Component newValue)
              throws java.beans.PropertyVetoException
Sets the value. This is a bound property that only fires a change event when the new value is different via the equals() 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 via Throwable.getCause().

Specified by:
setValue in interface ValuedComponent<Component>
Specified by:
setValue in interface Valued<Component>
Specified by:
setValue in interface ValueModel<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:
getValidator(), ValueModel.VALUE_PROPERTY

clearValue

public void clearValue()
Clears the value by setting the value to null, which may be invalid according to any installed validators. No validation occurs.

Specified by:
clearValue in interface ValueModel<Component>
See Also:
ValueModel.VALUE_PROPERTY

resetValue

public void resetValue()
Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.

Specified by:
resetValue in interface ValueModel<Component>
See Also:
ValueModel.VALUE_PROPERTY

getValidator

public Validator<Component> getValidator()
Specified by:
getValidator in interface ValueModel<Component>
Returns:
The validator for this model, or null if no validator is installed.

setValidator

public void setValidator(Validator<Component> newValidator)
Sets the validator. This is a bound property

Specified by:
setValidator in interface ValueModel<Component>
Parameters:
newValidator - The validator for this model, or null if no validator should be used.
See Also:
ValueModel.VALIDATOR_PROPERTY

isValidValue

public boolean isValidValue()
Determines whether the value of this model is valid.

Specified by:
isValidValue in interface ValueModel<Component>
Returns:
Whether the value of this model is valid.

validateValue

public void validateValue()
                   throws ValidationException
Validates the value of this model, throwing an exception if the model is not valid.

Specified by:
validateValue in interface ValueModel<Component>
Throws:
ValidationException - if the value of this model is not valid.

getValueClass

public java.lang.Class<Component> getValueClass()
Specified by:
getValueClass in interface ValuedComponent<Component>
Specified by:
getValueClass in interface ValueModel<Component>
Returns:
The class representing the type of value this model can hold.

replace

public boolean replace(Component oldValue,
                       Component newValue)
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 interface SelectModel<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()
Determines the selected value. If more than one value is selected, the lead selected value will be returned.

Specified by:
getSelectedValue in interface SelectModel<Component>
Returns:
The value currently selected, or null if no value is currently selected.

getSelectedValues

public Component[] getSelectedValues()
Determines the selected values.

Specified by:
getSelectedValues in interface SelectModel<Component>
Returns:
The values currently selected.

setSelectedValues

public void setSelectedValues(Component... values)
                       throws java.beans.PropertyVetoException
Sets the selected values. If a value occurs more than one time in the model, the first occurrence 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 via Throwable.getCause(). This method delegates to the selection strategy.

Specified by:
setSelectedValues in interface SelectModel<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 interface ListSelectModel<Component>
Returns:
The selection policy for this model.

getSelectedIndex

public int getSelectedIndex()
Determines the selected index. If more than one index is selected, the lead selected index will be returned.

Specified by:
getSelectedIndex in interface ListSelectModel<Component>
Returns:
The index currently selected, or -1 if no index is selected.
See Also:
getSelectedValue()

getSelectedIndexes

public int[] getSelectedIndexes()
Determines the selected indices.

Specified by:
getSelectedIndexes in interface ListSelectModel<Component>
Returns:
The indices currently selected.
See Also:
getSelectedValues()

setSelectedIndexes

public void setSelectedIndexes(int... indexes)
                        throws java.beans.PropertyVetoException
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 via Throwable.getCause().

Specified by:
setSelectedIndexes in interface ListSelectModel<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[]), #setSelectedValues(V[]), addSelectedIndexes(int...)

addSelectedIndexes

public void addSelectedIndexes(int... indexes)
                        throws java.beans.PropertyVetoException
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 via Throwable.getCause().

Specified by:
addSelectedIndexes in interface ListSelectModel<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[]), setSelectedIndexes(int[])

removeSelectedIndexes

public void removeSelectedIndexes(int... indexes)
                           throws java.beans.PropertyVetoException
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 via Throwable.getCause().

Specified by:
removeSelectedIndexes in interface ListSelectModel<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[]), setSelectedIndexes(int[])

isValueDisplayed

public boolean isValueDisplayed(Component value)
Determines the displayed status of the first occurrence of a given value.

Specified by:
isValueDisplayed in interface ListSelectModel<Component>
Parameters:
value - The value for which the displayed status is to be determined.
Returns:
true if the value is displayed, else false.
Throws:
java.lang.IndexOutOfBoundsException - if the given value does not occur in the model.

setValueDisplayed

public void setValueDisplayed(Component value,
                              boolean newDisplayed)
Sets the displayed status of the first occurrence of a given value. This is a bound value state property.

Specified by:
setValueDisplayed in interface ListSelectModel<Component>
Parameters:
value - The value to enable or disable.
newDisplayed - Whether the value should be displayed.
See Also:
Displayable.DISPLAYED_PROPERTY

isIndexDisplayed

public boolean isIndexDisplayed(int index)
Determines the displayed status of a given index.

Specified by:
isIndexDisplayed in interface ListSelectModel<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, else false.

setIndexDisplayed

public void setIndexDisplayed(int index,
                              boolean newDisplayed)
Sets the displayed status of a given index. This is a bound value state property.

Specified by:
setIndexDisplayed in interface ListSelectModel<Component>
Parameters:
index - The index of the value to enable or disable.
newDisplayed - Whether the value at the given index should be displayed.
Throws:
java.lang.IndexOutOfBoundsException - if the given index is not within the range of the list.
See Also:
Displayable.DISPLAYED_PROPERTY

isValueEnabled

public boolean isValueEnabled(Component value)
Determines the enabled status of the first occurrence of a given value.

Specified by:
isValueEnabled in interface ListSelectModel<Component>
Parameters:
value - The value for which the enabled status is to be determined.
Returns:
true if the value is enabled, else false.
Throws:
java.lang.IndexOutOfBoundsException - if the given value does not occur in the model.

setValueEnabled

public void setValueEnabled(Component value,
                            boolean newEnabled)
Sets the enabled status of the first occurrence of a given value. This is a bound value state property.

Specified by:
setValueEnabled in interface ListSelectModel<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)
Determines the enabled status of a given index.

Specified by:
isIndexEnabled in interface ListSelectModel<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, else false.

setIndexEnabled

public void setIndexEnabled(int index,
                            boolean newEnabled)
Sets the enabled status of a given index. This is a bound value state property.

Specified by:
setIndexEnabled in interface ListSelectModel<Component>
Parameters:
index - The index of the value to enable or disable.
newEnabled - Whether the value at the given index should be enabled.
Throws:
java.lang.IndexOutOfBoundsException - if the given index is not within the range of the list.
See Also:
Enableable.ENABLED_PROPERTY

addListListener

public void addListListener(ListListener<Component> listListener)
Adds a list listener.

Specified by:
addListListener in interface ListListenable<Component>
Specified by:
addListListener in interface ListSelectModel<Component>
Parameters:
listListener - The list listener to add.

removeListListener

public void removeListListener(ListListener<Component> listListener)
Removes a list listener.

Specified by:
removeListListener in interface ListListenable<Component>
Specified by:
removeListListener in interface ListSelectModel<Component>
Parameters:
listListener - The list listener to remove.

addListSelectionListener

public void addListSelectionListener(ListSelectionListener<Component> selectionListener)
Adds a list selection listener.

Specified by:
addListSelectionListener in interface ListSelectModel<Component>
Parameters:
selectionListener - The selection listener to add.

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener<Component> selectionListener)
Removes a list selection listener.

Specified by:
removeListSelectionListener in interface ListSelectModel<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 class AbstractCompositeComponent
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 class AbstractCompositeComponent
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, or null if no index was added or it is unknown whether or which indices were added.
removedIndex - The index that was removed from the list, or null 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()
Specified by:
toArray in interface java.util.Collection<Component>
Specified by:
toArray in interface java.util.List<Component>
Returns:
An array containing all of the values in this model.

toArray

public <T> T[] toArray(T[] array)
Returns an array containing all of the values in this model.

Specified by:
toArray in interface java.util.Collection<Component>
Specified by:
toArray in interface java.util.List<Component>
Parameters:
array - The array into which the value of this collection are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
An array containing the values of this model.
Throws:
java.lang.ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every value in this model.
java.lang.NullPointerException - if the specified array is null.

containsAll

public boolean containsAll(java.util.Collection<?> collection)
Determines if this model contains all of the values of the specified collection.

Specified by:
containsAll in interface java.util.Collection<Component>
Specified by:
containsAll in interface java.util.List<Component>
Parameters:
collection - The collection to be checked for containment in this model.
Returns:
true if this model contains all of the values of the specified collection.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
AbstractContainer.contains(Object)

addAll

public boolean addAll(java.util.Collection<? extends Component> collection)
Appends all of the values in the specified collection to the end of this model, in the order that they are returned by the specified collection's iterator.

Specified by:
addAll in interface java.util.Collection<Component>
Specified by:
addAll in interface java.util.List<Component>
Parameters:
collection - The collection the values of which are to be added to this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
Collection.add(Object)

addAll

public boolean addAll(int index,
                      java.util.Collection<? extends Component> collection)
Inserts all of the values in the specified collection into this model at the specified position.

Specified by:
addAll in interface java.util.List<Component>
Parameters:
index - The index at which to insert first value from the specified collection.
collection - The values to be inserted into this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).

removeAll

public boolean removeAll(java.util.Collection<?> collection)
Removes from this model all the values that are contained in the specified collection.

Specified by:
removeAll in interface java.util.Collection<Component>
Specified by:
removeAll in interface java.util.List<Component>
Parameters:
collection - The collection that defines which values will be removed from this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
AbstractContainer.remove(Object), AbstractContainer.contains(Object)

retainAll

public boolean retainAll(java.util.Collection<?> collection)
Retains only the values in this model that are contained in the specified collection.

Specified by:
retainAll in interface java.util.Collection<Component>
Specified by:
retainAll in interface java.util.List<Component>
Parameters:
collection - The collection that defines which values this model will retain.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
AbstractContainer.remove(Object), AbstractContainer.contains(Object)

set

public Component set(int index,
                     Component value)
Replaces the value at the specified position in this model with the specified value.

Specified by:
set in interface java.util.List<Component>
Parameters:
index - The index of the value to replace.
value - The value to be stored at the specified position.
Returns:
The value at the specified position.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

listIterator

public java.util.ListIterator<Component> listIterator()
Specified by:
listIterator in interface java.util.List<Component>
Returns:
A read-only list iterator of the values in this model (in proper sequence).

listIterator

public java.util.ListIterator<Component> listIterator(int index)
Returns a list iterator of the values in this model (in proper sequence), starting at the specified position in this model.

Specified by:
listIterator in interface java.util.List<Component>
Parameters:
index - The index of first value to be returned from the list iterator (by a call to the next() method).
Returns:
A list iterator of the values in this model (in proper sequence), starting at the specified position in this model.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).

subList

public java.util.List<Component> subList(int fromIndex,
                                         int toIndex)
Returns a read-only view of the portion of this model between the specified fromIndex, inclusive, and toIndex, exclusive.

Specified by:
subList in interface java.util.List<Component>
Parameters:
fromIndex - The low endpoint (inclusive) of the sub-list.
toIndex - The high endpoint (exclusive) of the sub-list.
Returns:
A view of the specified range within this model.
Throws:
java.lang.IndexOutOfBoundsException - for an illegal endpoint index value (fromIndex < 0 || toIndex > size() || fromIndex > toIndex).

isDisplayed

public boolean isDisplayed(Component component)
Convenience method to determine whether a card is displayed based upon its associated constraints.

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.

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)


Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.