com.guiseframework.component
Class AbstractMenu
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.AbstractMenu
- All Implemented Interfaces:
- com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, ActionControl, Component, CompositeComponent, Container, ContainerControl, Control, InputFocusableComponent, LabelDisplayableComponent, LayoutComponent, Menu, ActionListenable, ActionModel, Displayable, Enableable, InfoModel, LabelModel, Model, PresentationModel, DepictedObject, java.lang.Iterable<Component>
- Direct Known Subclasses:
- AccordionMenu, DropMenu
public abstract class AbstractMenu
- extends AbstractContainerControl
- implements Menu
An abstract menu component.
This implementation initially closes any child menu added to this menu.
- Author:
- Garret Wilson
| 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.AbstractContainer |
add, add, add, add, add, add, add, add, clear, contains, get, getChildComponents, indexOf, isEmpty, iterator, lastIndexOf, remove, remove, setChildren, setLayout, size |
| 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, 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, 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.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, validate |
| 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 |
AbstractMenu
public AbstractMenu(InfoModel infoModel,
ActionModel actionModel,
Enableable enableable,
MenuLayout layout)
- Info model, action model, enableable, and menu layout constructor.
- Parameters:
infoModel - The component info model.actionModel - The component action model.enableable - The enableable object in which to store enabled status.layout - The layout definition for the container.
- Throws:
java.lang.NullPointerException - if the given info model, action model, enableable, and/or layout is null.
getLayout
public MenuLayout getLayout()
- Specified by:
getLayout in interface LayoutComponent- Specified by:
getLayout in interface Menu- Overrides:
getLayout in class AbstractLayoutComponent
- Returns:
- The layout definition for the menu.
getActionModel
protected ActionModel getActionModel()
- Returns:
- The action model used by this component.
isIconDisplayed
public boolean isIconDisplayed()
- Specified by:
isIconDisplayed in interface LabelDisplayableComponent
- Returns:
- Whether the icon is displayed.
setIconDisplayed
public void setIconDisplayed(boolean newIconDisplayed)
- Sets whether the icon is displayed.
This is a bound property of type
Boolean.
- Specified by:
setIconDisplayed in interface LabelDisplayableComponent
- Parameters:
newIconDisplayed - true if the icon should be displayed, else false if the icon should not be displayed and take up no space.- See Also:
LabelDisplayableComponent.ICON_DISPLAYED_PROPERTY
isLabelDisplayed
public boolean isLabelDisplayed()
- Specified by:
isLabelDisplayed in interface LabelDisplayableComponent
- Returns:
- Whether the label is displayed.
setLabelDisplayed
public void setLabelDisplayed(boolean newLabelDisplayed)
- Sets whether the label is displayed.
This is a bound property of type
Boolean.
- Specified by:
setLabelDisplayed in interface LabelDisplayableComponent
- Parameters:
newLabelDisplayed - true if the label should be displayed, else false if the label should not be displayed and take up no space.- See Also:
LabelDisplayableComponent.LABEL_DISPLAYED_PROPERTY
isOpen
public boolean isOpen()
- Specified by:
isOpen in interface Menu
- Returns:
- Whether the menu is open.
setOpen
public void setOpen(boolean newOpen)
- Sets whether the menu is open.
This is a bound property of type
Boolean.
- Specified by:
setOpen in interface Menu
- Parameters:
newOpen - true if the menu should be open.- See Also:
Menu.OPEN_PROPERTY
isRollover
public boolean isRollover()
- Specified by:
isRollover in interface ActionControl
- Returns:
- Whether the component is in a rollover state.
setRollover
public void setRollover(boolean newRollover)
- Sets whether the component is in a rollover state.
This is a bound property of type
Boolean.
- Specified by:
setRollover in interface ActionControl
- Parameters:
newRollover - true if the component should be in a rollover state, else false.- See Also:
ActionControl.ROLLOVER_PROPERTY
isRolloverOpenEnabled
public boolean isRolloverOpenEnabled()
- Specified by:
isRolloverOpenEnabled in interface Menu
- Returns:
- Whether the menu children will be shown during rollover.
setRolloverOpenEnabled
public void setRolloverOpenEnabled(boolean newRolloverOpenEnabled)
- Sets whether the menu children will be shown during rollover.
If rollover open is enabled, the open state will not actually be changed during rollover.
This is a bound property of type
Boolean.
- Specified by:
setRolloverOpenEnabled in interface Menu
- Parameters:
newRolloverOpenEnabled - true if the component should allow display during rollover, else false.- See Also:
Menu.ROLLOVER_OPEN_ENABLED_PROPERTY
addActionListener
public void addActionListener(ActionListener actionListener)
- Adds an action listener.
- Specified by:
addActionListener in interface ActionListenable
- Parameters:
actionListener - The action listener to add.
removeActionListener
public void removeActionListener(ActionListener actionListener)
- Removes an action listener.
- Specified by:
removeActionListener in interface ActionListenable
- Parameters:
actionListener - The action listener to remove.
getActionListeners
public java.lang.Iterable<ActionListener> getActionListeners()
- Specified by:
getActionListeners in interface ActionModel
- Returns:
- all registered action listeners.
performAction
public void performAction()
- Performs the action with default force and default option.
An
ActionEvent is fired to all registered ActionListeners.
This method delegates to performAction(int, int).
- Specified by:
performAction in interface ActionModel
performAction
public void performAction(int force,
int option)
- Performs the action with the given force and option.
An
ActionEvent is fired to all registered ActionListeners.
- Specified by:
performAction in interface ActionModel
- 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.
fireActionPerformed
protected void fireActionPerformed(int force,
int option)
- Fires an action event to all registered action listeners.
This method delegates to
fireActionPerformed(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.
addComponent
protected void addComponent(int index,
Component childComponent)
- Adds a child component at the specified index.
If this component is itself a menu, this version closes that menu.
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.
java.lang.IndexOutOfBoundsException - if the index is less than zero or greater than the number of child components.
createComponent
public Component createComponent(Prototype prototype)
- Creates a component appropriate for the context of this component from the given prototype.
This implementation creates the following components, in order of priority:
ActionPrototype Link
- Overrides:
createComponent in class AbstractContainer
- 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
Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.