Package io.guise.framework.component
Class ImageActionControl
- 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.AbstractImageComponent
-
- io.guise.framework.component.ImageActionControl
-
- All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable
,com.globalmentor.beans.PropertyConstrainable
,ActionControl
,Component
,Control
,ImageComponent
,InputFocusableComponent
,ActionListenable
,ActionModel
,Displayable
,Enableable
,ImageModel
,InfoModel
,LabelModel
,Model
,PresentationModel
,DepictedObject
- Direct Known Subclasses:
PendingImageActionControl
public class ImageActionControl extends AbstractImageComponent implements ActionControl
An image component that is also an action control.- Author:
- Garret Wilson
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.guise.framework.component.AbstractImageComponent
AbstractImageComponent.DefaultTransferable
-
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 io.guise.framework.component.AbstractImageComponent
DEFAULT_EXPORT_STRATEGY
-
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.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.ImageModel
IMAGE_URI_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.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
-
-
Constructor Summary
Constructors Constructor Description ImageActionControl()
Default constructor.ImageActionControl(ImageModel imageModel)
Image model constructor.ImageActionControl(InfoModel infoModel, ImageModel imageModel, ActionModel actionModel, Enableable enableable)
Info model, image model, action model, and enableable object constructor.ImageActionControl(ActionPrototype actionPrototype)
Prototype constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addActionListener(ActionListener actionListener)
Adds an action listener.protected Control.Status
determineStatus()
Checks the user input status of the control.protected void
fireActionPerformed(int force, int option)
Fires an action event to all registered action listeners.protected void
fireActionPerformed(ActionEvent actionEvent)
Fires a given action event to all registered action listeners.java.lang.Iterable<ActionListener>
getActionListeners()
protected ActionModel
getActionModel()
protected Enableable
getEnableable()
Control.Status
getStatus()
boolean
isEnabled()
boolean
isRollover()
void
performAction()
Performs the action with default force and default option.void
performAction(int force, int option)
Performs the action with the given force and option.void
removeActionListener(ActionListener actionListener)
Removes an action listener.void
reset()
Resets the control to its default value.void
setEnabled(boolean newEnabled)
Sets whether the object is enabled and can receive user input.void
setNotification(Notification newNotification)
Sets the component notification.void
setRollover(boolean newRollover)
Sets whether the component is in a rollover state.protected void
setStatus(Control.Status newStatus)
Sets the status of the current user input.protected void
updateStatus()
Rechecks user input status of this component, and updates the status.protected void
updateValid()
Rechecks user input validity of this component and all child components, and updates the valid state.-
Methods inherited from class io.guise.framework.component.AbstractImageComponent
getImageModel, getImageURI, setImageURI
-
Methods inherited from class io.guise.framework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, depict, determineValid, 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, validate
-
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, 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.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, 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.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
-
ImageActionControl
public ImageActionControl()
Default constructor.
-
ImageActionControl
public ImageActionControl(ImageModel imageModel)
Image model constructor.- Parameters:
imageModel
- The component image model.
-
ImageActionControl
public ImageActionControl(InfoModel infoModel, ImageModel imageModel, ActionModel actionModel, Enableable enableable)
Info model, image model, action model, and enableable object constructor.- Parameters:
infoModel
- The component info model.imageModel
- The component image model.actionModel
- The component action model.enableable
- The enableable object in which to store enabled status.- Throws:
java.lang.NullPointerException
- if the given info model, image model, action model, and/or enableable object isnull
.
-
ImageActionControl
public ImageActionControl(ActionPrototype actionPrototype)
Prototype constructor.- Parameters:
actionPrototype
- The prototype on which this component should be based.- Throws:
java.lang.NullPointerException
- if the given prototype isnull
.
-
-
Method Detail
-
getActionModel
protected ActionModel getActionModel()
- Returns:
- The action model used by this component.
-
getEnableable
protected Enableable getEnableable()
- Returns:
- The enableable object decorated by this component.
-
isRollover
public boolean isRollover()
- Specified by:
isRollover
in interfaceActionControl
- Returns:
- Whether the component is in a rollover state.
-
setRollover
public void setRollover(boolean newRollover)
Description copied from interface:ActionControl
Sets whether the component is in a rollover state. This is a bound property of typeBoolean
.- Specified by:
setRollover
in interfaceActionControl
- Parameters:
newRollover
-true
if the component should be in a rollover state, elsefalse
.- See Also:
ActionControl.ROLLOVER_PROPERTY
-
getStatus
public Control.Status getStatus()
-
setStatus
protected void setStatus(Control.Status newStatus)
Sets the status of the current user input. This is a bound property.- Parameters:
newStatus
- The new status of the current user input, ornull
if there is no status to report.- See Also:
Control.STATUS_PROPERTY
-
updateStatus
protected void updateStatus()
Rechecks user input status of this component, and updates the status.- See Also:
setStatus(Control.Status)
-
determineStatus
protected Control.Status determineStatus()
Checks the user input status of the control. If the component has a notification ofNotification.Severity.WARN
, the status is determined to beControl.Status.WARNING
. If the component has a notification ofNotification.Severity.ERROR
, the status is determined to beControl.Status.ERROR
. Otherwise, this version returnsnull
. If the control is disablednull
is returned.- Returns:
- The current user input status of the control.
-
updateValid
protected void updateValid()
Rechecks user input validity of this component and all child components, and updates the valid state. This implementation only updates the valid property if the property is already initialized or there is at least one listener to theComponent.VALID_PROPERTY
.This version also updates the status.
- Overrides:
updateValid
in classAbstractComponent
- See Also:
updateStatus()
-
setNotification
public void setNotification(Notification newNotification)
Description copied from interface:Component
Sets the component notification. This is a bound property. The notification is also fired as aNotificationEvent
on this component if a new notification is given. Parents are expected to refire the notification event up the hierarchy.- Specified by:
setNotification
in interfaceComponent
- Overrides:
setNotification
in classAbstractComponent
- Parameters:
newNotification
- The notification for the component, ornull
if no notification is associated with this component.- See Also:
Component.NOTIFICATION_PROPERTY
-
reset
public void reset()
Resets the control to its default value.This version clears any notification.
- Specified by:
reset
in interfaceControl
- See Also:
setNotification(Notification)
-
addActionListener
public void addActionListener(ActionListener actionListener)
Description copied from interface:ActionListenable
Adds an action listener.- Specified by:
addActionListener
in interfaceActionListenable
- Parameters:
actionListener
- The action listener to add.
-
removeActionListener
public void removeActionListener(ActionListener actionListener)
Description copied from interface:ActionListenable
Removes an action listener.- Specified by:
removeActionListener
in interfaceActionListenable
- Parameters:
actionListener
- The action listener to remove.
-
getActionListeners
public java.lang.Iterable<ActionListener> getActionListeners()
- Specified by:
getActionListeners
in interfaceActionModel
- Returns:
- all registered action listeners.
-
performAction
public void performAction()
Description copied from interface:ActionModel
Performs the action with default force and default option. AnActionEvent
is fired to all registeredActionListener
s. This method delegates toActionModel.performAction(int, int)
.- Specified by:
performAction
in interfaceActionModel
-
performAction
public void performAction(int force, int option)
Description copied from interface:ActionModel
Performs the action with the given force and option. AnActionEvent
is fired to all registeredActionListener
s.- Specified by:
performAction
in interfaceActionModel
- Parameters:
force
- The zero-based force, such as 0 for no force or 1 for an action initiated by from a mouse single click.option
- The zero-based option, such as 0 for an event initiated by a mouse left button click or 1 for an event initiated by a mouse right button click.
-
fireActionPerformed
protected void fireActionPerformed(int force, int option)
Fires an action event to all registered action listeners. This method delegates tofireActionPerformed(ActionEvent)
.- Parameters:
force
- The zero-based force, such as 0 for no force or 1 for an action initiated by from a mouse single click.option
- The zero-based option, such as 0 for an event initiated by a mouse left button click or 1 for an event initiaged by a mouse right button click.- See Also:
ActionListener
,ActionEvent
-
fireActionPerformed
protected void fireActionPerformed(ActionEvent actionEvent)
Fires a given action event to all registered action listeners.- Parameters:
actionEvent
- The action event to fire.
-
isEnabled
public boolean isEnabled()
- Specified by:
isEnabled
in interfaceEnableable
- Returns:
- Whether the object is enabled and can receive user input.
-
setEnabled
public void setEnabled(boolean newEnabled)
Description copied from interface:Enableable
Sets whether the object is enabled and can receive user input. This is a bound property of typeBoolean
.- Specified by:
setEnabled
in interfaceEnableable
- Parameters:
newEnabled
-true
if the object should indicate and accept user input.- See Also:
Enableable.ENABLED_PROPERTY
-
-