com.guiseframework.component
Class SequenceCardPanel
java.lang.Object
com.globalmentor.beans.BoundPropertyObject
com.guiseframework.event.GuiseBoundPropertyObject
com.guiseframework.model.ui.AbstractPresentationModel
com.guiseframework.component.AbstractComponent
com.guiseframework.component.AbstractCompositeComponent
com.guiseframework.component.AbstractMultipleCompositeComponent
com.guiseframework.component.AbstractListCompositeComponent
com.guiseframework.component.AbstractLayoutComponent
com.guiseframework.component.AbstractContainer
com.guiseframework.component.AbstractContainerControl
com.guiseframework.component.AbstractListSelectContainerControl
com.guiseframework.component.AbstractCardPanel
com.guiseframework.component.SequenceCardPanel
- All Implemented Interfaces:
- com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, ArrangeContainer, Box, CardContainer, CardControl, Component, CompositeComponent, Container, ContainerControl, Control, InputFocusableComponent, LayoutComponent, ListSelectControl<Component>, Panel, SelectControl<Component>, ValueControl<Component>, ValuedComponent<Component>, GuiseEventListener, ListListenable<Component>, NavigationListener, Commitable, 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.EventListener, java.util.List<Component>
public class SequenceCardPanel
- extends AbstractCardPanel
- implements ArrangeContainer, Commitable
A card panel representing a sequence of cards.
If any card has constraints of TaskCardConstraints, this class will update the task state based upon visited and validated status.
- Author:
- Garret Wilson
- See Also:
CardLayout
|
Field Summary |
static java.lang.String |
STATE_PROPERTY
The bound property of the sequence state. |
static java.lang.String |
TRANSITION_ENABLED_PROPERTY
The bound property of whether the transitions are enabled. |
| Fields inherited from class com.globalmentor.beans.BoundPropertyObject |
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS |
| 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 |
| Methods inherited from class com.guiseframework.component.AbstractListSelectContainerControl |
addAll, addAll, addListListener, addListSelectionListener, addSelectedIndexes, clearValue, containsAll, determineChildrenValid, fireChildComponentAdded, fireChildComponentRemoved, firePropertyChange, fireSelectionChanged, getComponent, getDefaultValue, getSelectedIndex, getSelectedIndexes, getSelectedValue, getSelectedValues, getSelectionPolicy, getValidator, getValue, getValueClass, getValueRepresentationStrategy, isDisplayed, isEnabled, isIndexDisplayed, isIndexEnabled, isValidValue, isValueDisplayed, isValueEnabled, listIterator, listIterator, removeAll, removeListListener, removeListSelectionListener, removeSelectedIndexes, replace, resetValue, retainAll, set, setDisplayed, setEnabled, setIndexDisplayed, setIndexEnabled, setSelectedIndexes, setSelectedValues, setValidator, setValue, setValueDisplayed, setValueEnabled, setValueRepresentationStrategy, subList, toArray, toArray, validateChildren, validateValue |
| 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.AbstractCompositeComponent |
addCompositeComponentListener, determineValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, savePreferences, uninitializeChildComponent |
| 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.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.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.Component |
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, dispatchInputEvent, exportTransfer, fireInputEvent, getAncestor, getComponentOrientation, getConstraints, getDepictor, getFlyoverStrategy, getInputStrategy, getName, getNotification, getOrientation, getParent, getPreferenceProperties, getTheme, hasCommandListeners, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, loadPreferences, notify, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setInputStrategy, setName, setNotification, setOrientation, setParent, setThemeApplied, updateTheme |
| Methods inherited from interface 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.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 java.lang.Iterable |
iterator |
| Methods inherited from interface com.guiseframework.model.ListSelectModel |
addListListener, addListSelectionListener, addSelectedIndexes, getSelectedIndex, getSelectedIndexes, getSelectionPolicy, isIndexDisplayed, isIndexEnabled, isValueDisplayed, isValueEnabled, removeListListener, removeListSelectionListener, removeSelectedIndexes, setIndexDisplayed, setIndexEnabled, setSelectedIndexes, setValueDisplayed, setValueEnabled |
| Methods inherited from interface java.util.List |
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArray |
STATE_PROPERTY
public static final java.lang.String STATE_PROPERTY
- The bound property of the sequence state.
TRANSITION_ENABLED_PROPERTY
public static final java.lang.String TRANSITION_ENABLED_PROPERTY
- The bound property of whether the transitions are enabled.
SequenceCardPanel
public SequenceCardPanel()
- Default constructor.
SequenceCardPanel
protected SequenceCardPanel(CardLayout layout)
- Layout constructor.
- Parameters:
layout - The layout definition for the container.
- Throws:
java.lang.NullPointerException - if the given layout is null.
getState
public com.globalmentor.model.TaskState getState()
- Returns:
- The current state of the sequence, or
null if the sequence is not occurring.
setState
protected void setState(com.globalmentor.model.TaskState newState)
- Sets the current state of the sequence.
This is a bound property.
- Parameters:
newState - The current state of the sequence, or null if the sequence is not occurring.- See Also:
STATE_PROPERTY
getTransition
public SequenceTransition getTransition()
- Returns:
- The current transition in the sequence, or
null if no transition is occurring.
isTransitionEnabled
public boolean isTransitionEnabled()
- Returns:
- Whether transitions are enabled, so that changing selected cards will cause the appropriate validate/commit functionality.
setTransitionEnabled
public void setTransitionEnabled(boolean newTransitionEnabled)
- Sets whether transitions are enabled, so that changing selected cards will cause the appropriate validate/commit functionality.
This is a bound property of type
Boolean.
- Parameters:
newTransitionEnabled - true if transitions are enabled, so that changing selected cards will cause the appropriate validate/commit functionality.- See Also:
TRANSITION_ENABLED_PROPERTY
getPreviousActionPrototype
public ActionPrototype getPreviousActionPrototype()
- Returns:
- The prototype for the previous action.
getNextActionPrototype
public ActionPrototype getNextActionPrototype()
- Returns:
- The prototype for the next action.
getFinishActionPrototype
public ActionPrototype getFinishActionPrototype()
- Returns:
- The prototype for the action to finish the sequence.
getContinueActionPrototype
public ActionPrototype getContinueActionPrototype()
- Returns:
- The prototype for the next action, which delegates to
goNext() or goFinish(), depending on the state of hasNext()..
getCancelActionPrototype
public ActionPrototype getCancelActionPrototype()
- Returns:
- The prototype for the action to cancel the sequence.
addComponent
protected void addComponent(int index,
Component childComponent)
- Adds a child component at the specified index.
This version installs a listener for the component's displayed status.
Any class that overrides this method must call this version.
- Overrides:
addComponent in class AbstractLayoutComponent
- Parameters:
index - The index at which the component should be added.childComponent - The component to add to this component.
- Throws:
java.lang.IllegalArgumentException - if the component already has a parent or if the component is already a child of this composite component.
removeComponent
protected void removeComponent(Component childComponent)
- Removes a child component.
This version uninstalls a listener for the component's displayed status.
Any class that overrides this method must call this version.
- Overrides:
removeComponent in class AbstractLayoutComponent
- Parameters:
childComponent - The component to remove from this component.
- Throws:
java.lang.IllegalArgumentException - if the component does not recognize this composite component as its parent or the component is not a member of this composite component.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.
childComponentValidPropertyChanged
protected void childComponentValidPropertyChanged(Component childComponent,
boolean oldValid,
boolean newValid)
- Called when the
Component.VALID_PROPERTY of a child component changes.
This version updates the error status of the child component's contraints if those constraints implement TaskCardConstraints.
- Overrides:
childComponentValidPropertyChanged in class AbstractCompositeComponent
- Parameters:
childComponent - The child component the valid property of which changed.oldValid - The old valid property.newValid - The new valid property.
hasPrevious
public boolean hasPrevious()
- Determines if there is a previous step in the sequence.
This version returns
true if there is a selected card and there exists a card before the selected card.
- Returns:
true if there is a previous step in the sequence.
getPrevious
public Component getPrevious()
- Determines the previous component in the sequence.
Components that are not displayed or not enabled based upon their associated constraints are skipped.
- Returns:
- The previous component in the sequence, or
null if there is no previous component in the sequence.
getPrevious
protected Component getPrevious(Component component)
- Determines the previous component in the sequence relative to the given component.
Components that are not displayed or not enabled based upon their associated constraints are skipped.
- Parameters:
component - The component the previous component to which should be found.
- Returns:
- The previous component in the sequence, or
null if there is no previous component in the sequence.
- Throws:
java.lang.NullPointerException - if the given component is null.
hasNext
public boolean hasNext()
- Determines if there is a next step in the sequence.
This version returns
true if there is a selected card and there exists a card after the selected card.
- Returns:
true if there is a next step in the sequence.
getNext
public Component getNext()
- Determines the next component in the sequence.
Components that are not displayed or not enabled based upon their associated constraints are skipped.
- Returns:
- The next component in the sequence, or
null if there is no next component in the sequence.
goPrevious
public void goPrevious()
- Goes to the previous step in the sequence.
If there is no previous step, no action occurs.
This method calls
hasPrevious().
goNext
public void goNext()
- Advances to the next step in the sequence.
If the current card passes validation, the next card is enabled before advancing.
If there is no next step, no action occurs.
This method calls
getNext().
goFinish
public void goFinish()
- Finishes the sequence.
This method validates and commits the current card, and then calls
finish().
If no card is selected, no action occurs.
The state is set to TaskState.COMPLETE.
goCancel
public void goCancel()
- Cancels the sequence.
This method calls
cancel().
The state is set to TaskState.CANCELED.
resetSequence
public void resetSequence()
- Resets the sequence by navigating to the first card and disabling all subsequent cards.
The state is set to
TaskState.INCOMPLETE.
validate
public boolean validate()
- Validates the user input of this component and all child components.
The component will be updated with error information.
If the component doesn't validate and there is a selected card the constraints of which implement
TaskCardConstraints, the task status of those constraints will be
set to TaskState.ERROR.
The user is also notified of any error, using this component's notification, the first notification in the selected card hierarchy, or a default message.
- Specified by:
validate in interface Component- Overrides:
validate in class AbstractCompositeComponent
- Returns:
- The current state of
AbstractComponent.isValid() as a convenience.
commit
public void commit()
throws java.io.IOException
- Commits the data.
This version commits the selected card if there is a selected card and it implements
Commitable.
Subclass versions should call this version.
- Specified by:
commit in interface Commitable
- Throws:
java.io.IOException - if there is an error committing data.
finish
public void finish()
- Finishes the sequence.
This version does nothing.
cancel
public void cancel()
- Cancels the sequence.
This version does nothing.
getComponent
protected Component getComponent(Bookmark bookmark)
- Determines the component for navigation based upon the given bookmark.
This version finds the first previous enabled and displayed card, searching backwards from the requested card, if the requested card is not enabled and displayed.
This version chooses the first card if no card is requested.
- Overrides:
getComponent in class AbstractCardPanel
- Parameters:
bookmark - The bookmark for which a component should be returned, or null if no bookmark is available.
- Returns:
- The child component indicated by the given bookmark parameter value, or
null if the given bookmark represents the null component value.
Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.