com.guiseframework.component
Class AbstractContainer

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
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, Component, CompositeComponent, Container, LayoutComponent, Displayable, InfoModel, LabelModel, Model, PresentationModel, DepictedObject, java.lang.Iterable<Component>
Direct Known Subclasses:
AbstractBox, AbstractContainerControl, AbstractPanel, GroupPanel, SpinnerControl, TextBox

public abstract class AbstractContainer
extends AbstractLayoutComponent
implements Container

Abstract implementation of a container component. Iterating over child components is thread safe.

Author:
Garret Wilson

Nested Class Summary
 
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.Component
Component.FlyoverStrategy<S extends Component>
 
Field Summary
 
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
 
Fields inherited from interface com.guiseframework.component.LayoutComponent
LAYOUT_PROPERTY, LAYOUT_THEME_APPLIED_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
 
Constructor Summary
AbstractContainer(InfoModel infoModel, Layout<? extends Constraints> layout)
          Info model and layout constructor.
AbstractContainer(Layout<? extends Constraints> layout)
          Layout constructor with a default info model.
 
Method Summary
 boolean add(Component component)
          Adds a component with default constraints to the container.
 boolean add(Component component, Constraints constraints)
          Adds a component along with constraints to the container.
 void add(int index, Component component)
          Adds a child component with default constraints to the container at the specified index.
 void add(int index, Component component, Constraints constraints)
          Adds a component along with constraints to the container at the specified index.
 Component add(int index, Prototype prototype)
          Adds a component based upon the given prototype to the container with default constraints at the specified index.
 Component add(int index, Prototype prototype, Constraints constraints)
          Adds a component based upon the given prototype to the container along with constraints at the specified index.
 Component add(Prototype prototype)
          Adds a component based upon the given prototype to the container with default constraints.
 Component add(Prototype prototype, Constraints constraints)
          Adds a component based upon the given prototype to the container along with constraints.
 void clear()
          Removes all of the components from this container.
 boolean contains(java.lang.Object component)
          Determines whether this container contains the given component.
 Component createComponent(Prototype prototype)
          Creates a component appropriate for the context of this component from the given prototype.
 Component get(int index)
          Returns the component at the specified index in the container.
 java.util.List<Component> getChildComponents()
          Returns a list of children.
 int indexOf(java.lang.Object component)
          Returns the index in the container of the first occurrence of the specified component.
 boolean isEmpty()
           
 java.util.Iterator<Component> iterator()
           
 int lastIndexOf(java.lang.Object component)
          Returns the index in this container of the last occurrence of the specified component.
 Component remove(int index)
          Removes the child component at the specified position in this container.
 boolean remove(java.lang.Object componentObject)
          Removes a component from the container.
 void setChildren(java.util.List<Component> children)
          Sets the children in this container.
<T extends Constraints>
void
setLayout(Layout<T> newLayout)
          Sets the layout definition for the component.
 int size()
           
 
Methods inherited from class com.guiseframework.component.AbstractLayoutComponent
addComponent, applyTheme, applyTheme, getLayout, 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, determineChildrenValid, determineValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentAdded, fireChildComponentRemoved, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, savePreferences, uninitializeChildComponent, validate, validateChildren
 
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, setNotification, setOrientation, setParent, setThemeApplied, setValid, toString, update, updateValid
 
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, 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 com.guiseframework.component.LayoutComponent
getLayout, isLayoutThemeApplied, setLayoutThemeApplied
 
Methods inherited from interface com.guiseframework.component.CompositeComponent
addCompositeComponentListener, hasChildComponents, removeCompositeComponentListener
 
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
 

Constructor Detail

AbstractContainer

public AbstractContainer(Layout<? extends Constraints> layout)
Layout constructor with a default info model.

Parameters:
layout - The layout definition for the container.
Throws:
java.lang.NullPointerException - if the given layout is null.

AbstractContainer

public AbstractContainer(InfoModel infoModel,
                         Layout<? extends Constraints> layout)
Info model and layout constructor.

Parameters:
infoModel - The component info model.
layout - The layout definition for the container.
Throws:
java.lang.NullPointerException - if the given info model and/or layout is null.
Method Detail

size

public int size()
Specified by:
size in interface Container
Overrides:
size in class AbstractListCompositeComponent
Returns:
The number of child components in this container.

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Container
Overrides:
isEmpty in class AbstractListCompositeComponent
Returns:
Whether this container contains no child components.

contains

public boolean contains(java.lang.Object component)
Determines whether this container contains the given component.

Specified by:
contains in interface Container
Overrides:
contains in class AbstractListCompositeComponent
Parameters:
component - The component to check.
Returns:
true if this container contains the given component.

indexOf

public int indexOf(java.lang.Object component)
Returns the index in the container of the first occurrence of the specified component.

Specified by:
indexOf in interface Container
Overrides:
indexOf in class AbstractListCompositeComponent
Parameters:
component - The component the index of which should be returned.
Returns:
The index in this container of the first occurrence of the specified component, or -1 if this container does not contain the given component.

lastIndexOf

public int lastIndexOf(java.lang.Object component)
Returns the index in this container of the last occurrence of the specified component.

Specified by:
lastIndexOf in interface Container
Overrides:
lastIndexOf in class AbstractListCompositeComponent
Parameters:
component - The component the last index of which should be returned.
Returns:
The index in this container of the last occurrence of the specified component, or -1 if this container does not contain the given component.

get

public Component get(int index)
Returns the component at the specified index in the container.

Specified by:
get in interface Container
Overrides:
get in class AbstractListCompositeComponent
Parameters:
index - The index of the component to return.
Returns:
The component at the specified position in this container.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range.

add

public void add(int index,
                Component component)
Adds a child component with default constraints to the container at the specified index.

Parameters:
index - The index at which the component should be added.
component - The component to add to this container.
Throws:
java.lang.IllegalArgumentException - if the component already has a parent.
java.lang.IllegalStateException - if the installed layout does not support default constraints.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.

add

public boolean add(Component component)
Adds a component with default constraints to the container.

Specified by:
add in interface Container
Parameters:
component - The component to add to this container.
Returns:
true if this container changed as a result of the operation.
Throws:
java.lang.IllegalArgumentException - if the component already has a parent.
java.lang.IllegalStateException - if the installed layout does not support default constraints.

add

public void add(int index,
                Component component,
                Constraints constraints)
Adds a component along with constraints to the container at the specified index. This is a convenience method that first sets the constraints of the component.

Specified by:
add in interface Container
Parameters:
index - The index at which the component should be added.
component - The component to add to this container.
constraints - The constraints for the layout, or null if default constraints should be used.
Throws:
java.lang.IllegalArgumentException - if the component already has a parent.
java.lang.ClassCastException - if the provided constraints are not appropriate for the installed layout.
java.lang.IllegalStateException - if no constraints were provided and the installed layout does not support default constraints.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.

add

public boolean add(Component component,
                   Constraints constraints)
Adds a component along with constraints to the container. This is a convenience method that first sets the constraints of the component.

Specified by:
add in interface Container
Parameters:
component - The component to add to this container.
constraints - The constraints for the layout, or null if default constraints should be used.
Returns:
true if this container changed as a result of the operation.
Throws:
java.lang.IllegalArgumentException - if the component already has a parent.
java.lang.ClassCastException - if the provided constraints are not appropriate for the installed layout.
java.lang.IllegalStateException - if no constraints were provided and the installed layout does not support default constraints.

add

public Component add(int index,
                     Prototype prototype)
Adds a component based upon the given prototype to the container with default constraints at the specified index. This implementation delegates to add(int, Component).

Specified by:
add in interface Container
Parameters:
index - The index at which the component should be added.
prototype - The prototype of the component to add.
Returns:
The component created to represent the given prototype.
Throws:
java.lang.IllegalArgumentException - if no component can be created from the given prototype
java.lang.IllegalStateException - if the installed layout does not support default constraints.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.
See Also:
createComponent(Prototype)

add

public Component add(Prototype prototype)
Adds a component based upon the given prototype to the container with default constraints. This implementation delegates to add(Component).

Specified by:
add in interface Container
Parameters:
prototype - The prototype of the component to add.
Returns:
The component created to represent the given prototype.
Throws:
java.lang.IllegalArgumentException - if no component can be created from the given prototype
java.lang.IllegalStateException - if the installed layout does not support default constraints.
See Also:
createComponent(Prototype)

add

public Component add(int index,
                     Prototype prototype,
                     Constraints constraints)
Adds a component based upon the given prototype to the container along with constraints at the specified index. This implementation delegates to add(int, Component, Constraints).

Specified by:
add in interface Container
Parameters:
index - The index at which the component should be added.
prototype - The prototype of the component to add.
constraints - The constraints for the layout, or null if default constraints should be used.
Returns:
The component created to represent the given prototype.
Throws:
java.lang.IllegalArgumentException - if no component can be created from the given prototype
java.lang.ClassCastException - if the provided constraints are not appropriate for the installed layout.
java.lang.IllegalStateException - if no constraints were provided and the installed layout does not support default constraints.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.
See Also:
createComponent(Prototype)

add

public Component add(Prototype prototype,
                     Constraints constraints)
Adds a component based upon the given prototype to the container along with constraints. This implementation delegates to add(Component, Constraints).

Specified by:
add in interface Container
Parameters:
prototype - The prototype of the component to add.
constraints - The constraints for the layout, or null if default constraints should be used.
Returns:
The component created to represent the given prototype.
Throws:
java.lang.IllegalArgumentException - if no component can be created from the given prototype
java.lang.ClassCastException - if the provided constraints are not appropriate for the installed layout.
java.lang.IllegalStateException - if no constraints were provided and the installed layout does not support default constraints.
See Also:
createComponent(Prototype)

createComponent

public Component createComponent(Prototype prototype)
Creates a component appropriate for the context of this component from the given prototype. This version creates the following components, in order of priority:
ActionPrototype
Button
LabelPrototype
Label
MenuPrototype
DropMenu
TogglePrototype
BooleanSelectButton
ValuePrototype<Boolean>
CheckControl
ValuePrototype<Number> with installed RangeValidator
SliderControl
ValuePrototype<?>
TextControl

Parameters:
prototype - The prototype of the component to create.
Returns:
A new component based upon the given prototype.
Throws:
java.lang.IllegalArgumentException - if no component can be created from the given prototype

remove

public boolean remove(java.lang.Object componentObject)
Removes a component from the container.

Specified by:
remove in interface Container
Parameters:
componentObject - The component to remove.
Returns:
true if this collection changed as a result of the operation.
Throws:
java.lang.ClassCastException - if given element is not a component.
java.lang.IllegalArgumentException - if the component is not a member of the container.

remove

public Component remove(int index)
Removes the child component at the specified position in this container.

Specified by:
remove in interface Container
Parameters:
index - The index of the component to removed.
Returns:
The value previously at the specified position.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

clear

public void clear()
Removes all of the components from this container.

Specified by:
clear in interface Container

iterator

public java.util.Iterator<Component> iterator()
Specified by:
iterator in interface java.lang.Iterable<Component>
Returns:
An iterator to child components.

getChildComponents

public java.util.List<Component> getChildComponents()
Returns a list of children. This method along with #setChildren() provides a children property for alternate children access.

Specified by:
getChildComponents in interface CompositeComponent
Overrides:
getChildComponents in class AbstractListCompositeComponent
Returns:
A list of container children in order.
See Also:
iterator()

setChildren

public void setChildren(java.util.List<Component> children)
Sets the children in this container. This method along with getChildComponents() provides a children property for alternate children access.

Parameters:
children - The new children for this container in order.
See Also:
clear(), add(Component)

setLayout

public <T extends Constraints> void setLayout(Layout<T> newLayout)
Sets the layout definition for the component. This is a bound property. The layout is specified as not yet having a theme applied, as the specific theme rules applied to the layout may depend on the layout's owner.

Specified by:
setLayout in interface Container
Overrides:
setLayout in class AbstractLayoutComponent
Parameters:
newLayout - The new layout definition for the container.
Throws:
java.lang.NullPointerException - if the given layout is null.
See Also:
LayoutComponent.LAYOUT_PROPERTY, #setPropertiesInitialized(boolean)


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