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<java.lang.Boolean>
-
- io.guise.framework.component.AbstractBooleanSelectActionControl
-
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,com.globalmentor.model.MutableValued<java.lang.Boolean>
,com.globalmentor.model.Valued<java.lang.Boolean>
,ActionControl
,ActionValueControl<java.lang.Boolean>
,Component
,Control
,InputFocusableComponent
,LabelDisplayableComponent
,SelectActionControl
,ValueControl<java.lang.Boolean>
,ValuedComponent<java.lang.Boolean>
,ActionListenable
,ActionModel
,Displayable
,Enableable
,InfoModel
,LabelModel
,Model
,Selectable
,PresentationModel
,ValueModel<java.lang.Boolean>
,DepictedObject
- Direct Known Subclasses:
BooleanSelectButton
,BooleanSelectLink
,BooleanSelectToolButton
,ImageBooleanSelectActionControl
public abstract class AbstractBooleanSelectActionControl extends AbstractActionValueControl<java.lang.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 bothValueModel.VALUE_PROPERTY
and forSelectable.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
andTheme.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
Constructors Constructor Description AbstractBooleanSelectActionControl(InfoModel infoModel, ActionModel actionModel, ValueModel<java.lang.Boolean> valueModel, Enableable enableable)
Info model, action model, value model, and enableable object constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.net.URI
getSelectedGlyphURI()
java.net.URI
getUnselectedGlyphURI()
boolean
isAutoSelect()
boolean
isSelected()
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(java.net.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(java.net.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
-
-
-
-
Constructor Detail
-
AbstractBooleanSelectActionControl
public AbstractBooleanSelectActionControl(InfoModel infoModel, ActionModel actionModel, ValueModel<java.lang.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:
java.lang.NullPointerException
- if the given info model, action model, and/or enableable object isnull
.
-
-
Method Detail
-
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:
SelectActionControl.AUTO_SELECT_PROPERTY
-
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:
Selectable.SELECTED_PROPERTY
-
getSelectedGlyphURI
public java.net.URI 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
public void setSelectedGlyphURI(java.net.URI newSelectedIcon)
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:
SelectActionControl.SELECTED_GLYPH_URI_PROPERTY
-
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:
SelectActionControl.TOGGLE_PROPERTY
-
getUnselectedGlyphURI
public java.net.URI 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
public void setUnselectedGlyphURI(java.net.URI newUnselectedIcon)
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:
SelectActionControl.UNSELECTED_GLYPH_URI_PROPERTY
-
-