Package io.guise.framework.component
Class AbstractBooleanSelectActionControl
java.lang.Object
com.globalmentor.beans.BoundPropertyObject
io.guise.framework.event.GuiseBoundPropertyObject
io.guise.framework.model.ui.AbstractPresentationModel
io.guise.framework.component.AbstractComponent
io.guise.framework.component.AbstractControl
io.guise.framework.component.AbstractActionControl
io.guise.framework.component.AbstractActionValueControl<Boolean>
io.guise.framework.component.AbstractBooleanSelectActionControl
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.model.MutableValued<Boolean>
,com.globalmentor.model.Valued<Boolean>
,ActionControl
,ActionValueControl<Boolean>
,Component
,Control
,InputFocusableComponent
,LabelDisplayableComponent
,SelectActionControl
,ValueControl<Boolean>
,ValuedComponent<Boolean>
,ActionListenable
,ActionModel
,Displayable
,Enableable
,InfoModel
,LabelModel
,Model
,Selectable
,PresentationModel
,ValueModel<Boolean>
,DepictedObject
- Direct Known Subclasses:
BooleanSelectButton
,BooleanSelectLink
,BooleanSelectToolButton
,ImageBooleanSelectActionControl
public abstract class AbstractBooleanSelectActionControl
extends AbstractActionValueControl<Boolean>
implements SelectActionControl
Selectable action control that stores a Boolean value in its model representing the selected state. The selected property and the Boolean value will be kept
synchronized. When the value and/or changes, separate property change events for both
ValueModel.VALUE_PROPERTY
and for
Selectable.SELECTED_PROPERTY
will be fired. A validator requiring a non-null
value is automatically installed.
The selected and unselected icons are set by default to Theme.GLYPH_SELECTED
and Theme.GLYPH_UNSELECTED
, respectively.
- Author:
- Garret Wilson
-
Nested Class Summary
Nested classes/interfaces inherited from class io.guise.framework.component.AbstractComponent
AbstractComponent.AbstractFlyoverFrameStrategy<S extends Component>, AbstractComponent.AbstractFlyoverStrategy<S extends Component>, AbstractComponent.DefaultFlyoverStrategy<S extends Component>
Nested classes/interfaces inherited from interface io.guise.framework.component.Component
Component.FlyoverStrategy<S extends Component>
Nested classes/interfaces inherited from interface io.guise.framework.component.Control
Control.Status
-
Field Summary
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
Fields inherited from interface io.guise.framework.component.ActionControl
ROLLOVER_PROPERTY
Fields inherited from interface io.guise.framework.component.ActionValueControl
VALUE_GLYPH_URI_PROPERTY
Fields inherited from interface io.guise.framework.component.Component
BOOKMARK_ENABLED_PROPERTY, CONSTRAINTS_PROPERTY, DRAG_ENABLED_PROPERTY, DROP_ENABLED_PROPERTY, FLYOVER_ENABLED_PROPERTY, FLYOVER_STRATEGY_PROPERTY, INPUT_STRATEGY_PROPERTY, NAME_PROPERTY, NOTIFICATION_PROPERTY, ORIENTATION_PROPERTY, THEME_APPLIED_PROPERTY, VALID_PROPERTY
Fields inherited from interface io.guise.framework.component.Control
STATUS_PROPERTY
Fields inherited from interface io.guise.framework.model.Displayable
DISPLAYED_PROPERTY
Fields inherited from interface io.guise.framework.model.Enableable
ENABLED_PROPERTY
Fields inherited from interface io.guise.framework.model.InfoModel
DESCRIPTION_CONTENT_TYPE_PROPERTY, DESCRIPTION_PROPERTY, INFO_CONTENT_TYPE_PROPERTY, INFO_PROPERTY
Fields inherited from interface io.guise.framework.component.LabelDisplayableComponent
ICON_DISPLAYED_PROPERTY, LABEL_DISPLAYED_PROPERTY
Fields inherited from interface io.guise.framework.model.LabelModel
GLYPH_URI_PROPERTY, LABEL_CONTENT_TYPE_PROPERTY, LABEL_PROPERTY
Fields inherited from interface io.guise.framework.model.ui.PresentationModel
BACKGROUND_COLOR_PROPERTY, BORDER_LINE_FAR_COLOR_PROPERTY, BORDER_LINE_FAR_EXTENT_PROPERTY, BORDER_LINE_FAR_STYLE_PROPERTY, BORDER_LINE_NEAR_COLOR_PROPERTY, BORDER_LINE_NEAR_EXTENT_PROPERTY, BORDER_LINE_NEAR_STYLE_PROPERTY, BORDER_PAGE_FAR_COLOR_PROPERTY, BORDER_PAGE_FAR_EXTENT_PROPERTY, BORDER_PAGE_FAR_STYLE_PROPERTY, BORDER_PAGE_NEAR_COLOR_PROPERTY, BORDER_PAGE_NEAR_EXTENT_PROPERTY, BORDER_PAGE_NEAR_STYLE_PROPERTY, CORNER_LINE_FAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_FAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CURSOR_PROPERTY, FONT_FAMILIES_PROPERTY, FONT_SIZE_PROPERTY, FONT_STYLE_PROPERTY, FONT_WEIGHT_BOLD, FONT_WEIGHT_NORMAL, FONT_WEIGHT_PROPERTY, LABEL_FONT_FAMILIES_PROPERTY, LABEL_FONT_SIZE_PROPERTY, LABEL_FONT_STYLE_PROPERTY, LABEL_FONT_WEIGHT_PROPERTY, LABEL_TEXT_COLOR_PROPERTY, LINE_EXTENT_PROPERTY, MARGIN_LINE_FAR_EXTENT_PROPERTY, MARGIN_LINE_NEAR_EXTENT_PROPERTY, MARGIN_PAGE_FAR_EXTENT_PROPERTY, MARGIN_PAGE_NEAR_EXTENT_PROPERTY, OPACITY_PROPERTY, PADDING_LINE_FAR_EXTENT_PROPERTY, PADDING_LINE_NEAR_EXTENT_PROPERTY, PADDING_PAGE_FAR_EXTENT_PROPERTY, PADDING_PAGE_NEAR_EXTENT_PROPERTY, PAGE_EXTENT_PROPERTY, ROUNDED_CORNER_ARC_SIZE, STYLE_ID_PROPERTY, TEXT_COLOR_PROPERTY, TOOLTIP_ENABLED_PROPERTY, VISIBLE_PROPERTY
Fields inherited from interface io.guise.framework.model.Selectable
SELECTED_PROPERTY
Fields inherited from interface io.guise.framework.component.SelectActionControl
AUTO_SELECT_PROPERTY, SELECTED_GLYPH_URI_PROPERTY, TOGGLE_PROPERTY, UNSELECTED_GLYPH_URI_PROPERTY
Fields inherited from interface io.guise.framework.component.ValueControl
CONVERTER_PROPERTY
Fields inherited from interface io.guise.framework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
-
Constructor Summary
ConstructorDescriptionAbstractBooleanSelectActionControl
(InfoModel infoModel, ActionModel actionModel, ValueModel<Boolean> valueModel, Enableable enableable) Info model, action model, value model, and enableable object constructor. -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
boolean
isToggle()
void
setAutoSelect
(boolean newAutoSelect) Sets whether this control automatically sets or toggles the selection state when the action occurs.void
setSelected
(boolean newSelected) Sets whether the object is selected.void
setSelectedGlyphURI
(URI newSelectedIcon) Sets the URI of the selected icon.void
setToggle
(boolean newToggle) Sets whether this control acts as a toggle, switching its value betweentrue
andfalse
, or whether the action always sets the value totrue
.void
setUnselectedGlyphURI
(URI newUnselectedIcon) Sets the URI of the unselected icon.Methods inherited from class io.guise.framework.component.AbstractActionValueControl
clearValue, determineValid, firePropertyChange, getDefaultValue, getValidator, getValue, getValueClass, getValueGlyphURI, getValueModel, isValidValue, reset, resetValue, setValidator, setValue, setValueGlyphURI, validate, validateValue
Methods inherited from class io.guise.framework.component.AbstractActionControl
addActionListener, fireActionPerformed, fireActionPerformed, getActionListeners, getActionModel, isIconDisplayed, isLabelDisplayed, isRollover, performAction, performAction, removeActionListener, setIconDisplayed, setLabelDisplayed, setRollover
Methods inherited from class io.guise.framework.component.AbstractControl
determineStatus, getEnableable, getStatus, isEnabled, setEnabled, setNotification, setStatus, updateStatus, updateValid
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, depict, dispatchInputEvent, 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, loadPreferences, notify, processEvent, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDepicted, setDescription, setDescriptionContentType, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setGlyphURI, setInfo, setInfoContentType, setInputStrategy, setLabel, setLabelContentType, setName, setOrientation, setParent, setThemeApplied, setValid, toString, update, updateTheme
Methods inherited from class io.guise.framework.model.ui.AbstractPresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
Methods inherited from class io.guise.framework.event.GuiseBoundPropertyObject
getSession
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.guise.framework.component.ActionControl
isRollover, setRollover
Methods inherited from interface io.guise.framework.event.ActionListenable
addActionListener, removeActionListener
Methods inherited from interface io.guise.framework.model.ActionModel
getActionListeners, performAction, performAction
Methods inherited from interface io.guise.framework.component.Component
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, dispatchInputEvent, exportTransfer, fireInputEvent, getAncestor, getComponentOrientation, getConstraints, getDepictor, getFlyoverStrategy, getInputStrategy, getName, getNotification, getOrientation, getParent, getPreferenceProperties, getTheme, hasCommandListeners, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, loadPreferences, notify, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setInputStrategy, setName, setNotification, setOrientation, setParent, setThemeApplied, updateTheme, validate
Methods inherited from interface io.guise.framework.platform.DepictedObject
depict, getDepictID, getSession, processEvent
Methods inherited from interface io.guise.framework.model.Enableable
isEnabled, setEnabled
Methods inherited from interface io.guise.framework.model.InfoModel
getDescription, getDescriptionContentType, getInfo, getInfoContentType, setDescription, setDescriptionContentType, setInfo, setInfoContentType
Methods inherited from interface io.guise.framework.model.LabelModel
getGlyphURI, getLabel, getLabelContentType, setGlyphURI, setLabel, setLabelContentType
Methods inherited from interface io.guise.framework.model.ui.PresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getSession, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
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 Details
-
AbstractBooleanSelectActionControl
public AbstractBooleanSelectActionControl(InfoModel infoModel, ActionModel actionModel, ValueModel<Boolean> valueModel, Enableable enableable) Info model, action model, value model, and enableable object constructor.- Parameters:
infoModel
- The component info model.actionModel
- The component action model.valueModel
- The component value model.enableable
- The enableable object in which to store enabled status.- Throws:
NullPointerException
- if the given info model, action model, and/or enableable object isnull
.
-
-
Method Details
-
isAutoSelect
public boolean isAutoSelect()- Specified by:
isAutoSelect
in interfaceSelectActionControl
- Returns:
- Whether this control automatically sets or toggles the selection state when the action occurs.
-
setAutoSelect
public void setAutoSelect(boolean newAutoSelect) Description copied from interface:SelectActionControl
Sets whether this control automatically sets or toggles the selection state when the action occurs. This is a bound property of typeBoolean
.- Specified by:
setAutoSelect
in interfaceSelectActionControl
- Parameters:
newAutoSelect
-true
if the control should automatically set or toggle the selection state when an action occurs.- See Also:
-
isSelected
public boolean isSelected()This implementation returns the value of the value model.
- Specified by:
isSelected
in interfaceSelectable
- Returns:
- Whether the object is selected.
-
setSelected
public void setSelected(boolean newSelected) Sets whether the object is selected. This is a bound property of typeBoolean
.This implementation delegates to he value model.
- Specified by:
setSelected
in interfaceSelectable
- Parameters:
newSelected
-true
if the object should be selected, elsefalse
.- See Also:
-
getSelectedGlyphURI
- Specified by:
getSelectedGlyphURI
in interfaceSelectActionControl
- Returns:
- The selected icon URI, which may be a resource URI, or
null
if there is no selected icon URI.
-
setSelectedGlyphURI
Description copied from interface:SelectActionControl
Sets the URI of the selected icon. This is a bound property of typeURI
.- Specified by:
setSelectedGlyphURI
in interfaceSelectActionControl
- Parameters:
newSelectedIcon
- The new URI of the selected icon, which may be a resource URI.- See Also:
-
isToggle
public boolean isToggle()- Specified by:
isToggle
in interfaceSelectActionControl
- Returns:
- Whether this control acts as a toggle, switching its value between
true
andfalse
, or whether the action always sets the value totrue
.
-
setToggle
public void setToggle(boolean newToggle) Description copied from interface:SelectActionControl
Sets whether this control acts as a toggle, switching its value betweentrue
andfalse
, or whether the action always sets the value totrue
. This is a bound property of typeBoolean
.- Specified by:
setToggle
in interfaceSelectActionControl
- Parameters:
newToggle
-true
if the component should act as a toggle, elsefalse
if the action should unconditionally set the value totrue
.- See Also:
-
getUnselectedGlyphURI
- Specified by:
getUnselectedGlyphURI
in interfaceSelectActionControl
- Returns:
- The unselected icon URI, which may be a resource URI, or
null
if there is no unselected icon URI.
-
setUnselectedGlyphURI
Description copied from interface:SelectActionControl
Sets the URI of the unselected icon. This is a bound property of typeURI
.- Specified by:
setUnselectedGlyphURI
in interfaceSelectActionControl
- Parameters:
newUnselectedIcon
- The new URI of the unselected icon, which may be a resource URI.- See Also:
-