Class JCommandPopupMenu
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.pushingpixels.flamingo.api.common.popup.JPopupPanel
-
- org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
JColorSelectorPopupMenu
public class JCommandPopupMenu extends JPopupPanel
Popup menu. Can host any number of command menu buttons added withaddMenuButton(JCommandMenuButton)
separated with optionaladdMenuSeparator()
. TheJCommandPopupMenu(JCommandButtonPanel, int, int)
constructor allows placing a scrollable command button panel in the top part of the popup menu.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.pushingpixels.flamingo.api.common.popup.JPopupPanel
JPopupPanel.PopupPanelCustomizer
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected JCommandButtonPanel
mainButtonPanel
The main button panel.protected int
maxButtonColumns
Maximum number of button columns visible in themainButtonPanel
.protected int
maxVisibleButtonRows
Maximum number of button rows visible in themainButtonPanel
.protected int
maxVisibleMenuButtons
Maximum number of menu items visible in this menu.protected List<Component>
menuComponents
Menu components.static String
uiClassID
-
Fields inherited from class org.pushingpixels.flamingo.api.common.popup.JPopupPanel
customizer
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description JCommandPopupMenu()
Creates an empty popup menu with no button panel.JCommandPopupMenu(JCommandButtonPanel buttonPanel, int maxButtonColumns, int maxVisibleButtonRows)
Creates a popup menu hosting the specified button panel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChangeListener(ChangeListener l)
Adds the specified change listener to track changes to this popup menu.void
addMenuButton(JCommandMenuButton menuButton)
Adds the specified menu button to this menu.void
addMenuButton(JCommandToggleMenuButton menuButton)
Adds the specified toggle menu button to this menu.protected void
addMenuPanel(JPanel menuPanel)
Adds a menu panel to this menu.void
addMenuSeparator()
Adds a menu separator to this menu.protected void
fireStateChanged()
Notifies all registered listener that the state of this popup menu has changed.JCommandButtonPanel
getMainButtonPanel()
Returns the command button panel of this menu.int
getMaxButtonColumns()
Returns the maximum number of button columns visible in the command button panel of this menu.int
getMaxVisibleButtonRows()
Returns the maximum number of button rows visible in the command button panel of this menu.int
getMaxVisibleMenuButtons()
Returns the maximum number of menu items visible in this menu.List<Component>
getMenuComponents()
Returns an unmodifiable list of all the menu components.String
getUIClassID()
boolean
hasCommandButtonPanel()
Returns indication whether this menu has a command button panel.boolean
isToDismissOnChildClick()
void
removeChangeListener(ChangeListener l)
Removes the specified change listener from tracking changes to this popup menu.void
setMaxVisibleMenuButtons(int maxVisibleMenuButtons)
Sets the maximum number of menu items visible in this menu.void
setToDismissOnChildClick(boolean toDismissOnChildClick)
void
updateUI()
-
Methods inherited from class org.pushingpixels.flamingo.api.common.popup.JPopupPanel
getCustomizer, getUI, setCustomizer, setUI
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, paramString, setUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
uiClassID
public static final String uiClassID
- See Also:
getUIClassID()
, Constant Field Values
-
mainButtonPanel
protected JCommandButtonPanel mainButtonPanel
The main button panel. Can benull
if this command popup menu was created with theJCommandPopupMenu()
constructor.
-
menuComponents
protected List<Component> menuComponents
Menu components. This list holds:JCommandMenuButton
s added withaddMenuButton(JCommandMenuButton)
JCommandToggleMenuButton
s added withaddMenuButton(JCommandToggleMenuButton)
JPopupMenu.Separator
s added withaddMenuSeparator()
JPanel
s added by the subclasses withaddMenuPanel(JPanel)
-
maxButtonColumns
protected int maxButtonColumns
Maximum number of button columns visible in themainButtonPanel
.
-
maxVisibleButtonRows
protected int maxVisibleButtonRows
Maximum number of button rows visible in themainButtonPanel
.
-
maxVisibleMenuButtons
protected int maxVisibleMenuButtons
Maximum number of menu items visible in this menu. If more buttons are added with theaddMenuButton(JCommandMenuButton)
andaddMenuButton(JCommandToggleMenuButton)
APIs, the menu part will show scroller buttons above the first and below the last menu button. If the value is negative, there is no limitation on how many menu buttons are shown, and the entire popup menu can overflow the monitor edges.
-
-
Constructor Detail
-
JCommandPopupMenu
public JCommandPopupMenu()
Creates an empty popup menu with no button panel.
-
JCommandPopupMenu
public JCommandPopupMenu(JCommandButtonPanel buttonPanel, int maxButtonColumns, int maxVisibleButtonRows)
Creates a popup menu hosting the specified button panel.- Parameters:
buttonPanel
- Fully constructed button panel.maxButtonColumns
- Maximum number of button columns visible inbuttonPanel
.maxVisibleButtonRows
- Maximum number of button rows visible inbuttonPanel
.
-
-
Method Detail
-
addMenuButton
public void addMenuButton(JCommandMenuButton menuButton)
Adds the specified menu button to this menu.- Parameters:
menuButton
- Menu button to add.
-
addMenuButton
public void addMenuButton(JCommandToggleMenuButton menuButton)
Adds the specified toggle menu button to this menu.- Parameters:
menuButton
- Menu button to add.
-
addMenuSeparator
public void addMenuSeparator()
Adds a menu separator to this menu.
-
addMenuPanel
protected void addMenuPanel(JPanel menuPanel)
Adds a menu panel to this menu.- Parameters:
menuPanel
- Menu panel to add.
-
hasCommandButtonPanel
public boolean hasCommandButtonPanel()
Returns indication whether this menu has a command button panel.- Returns:
true
if this menu has a command button panel,false
otherwise.- See Also:
getMainButtonPanel()
-
getMainButtonPanel
public JCommandButtonPanel getMainButtonPanel()
Returns the command button panel of this menu. Can returnnull
.- Returns:
- The command button panel of this menu.
- See Also:
hasCommandButtonPanel()
-
getMenuComponents
public List<Component> getMenuComponents()
Returns an unmodifiable list of all the menu components. Can returnnull
.- Returns:
- An unmodifiable list of all the menu components
-
getMaxButtonColumns
public int getMaxButtonColumns()
Returns the maximum number of button columns visible in the command button panel of this menu. If this menu has been created with theJCommandPopupMenu()
constructor, zero is returned.- Returns:
- The maximum number of button columns visible in the command button panel of this menu.
- See Also:
JCommandPopupMenu(JCommandButtonPanel, int, int)
,getMaxVisibleButtonRows()
-
getMaxVisibleButtonRows
public int getMaxVisibleButtonRows()
Returns the maximum number of button rows visible in the command button panel of this menu. If this menu has been created with theJCommandPopupMenu()
constructor, zero is returned.- Returns:
- The maximum number of button rows visible in the command button panel of this menu.
- See Also:
JCommandPopupMenu(JCommandButtonPanel, int, int)
,getMaxButtonColumns()
-
getMaxVisibleMenuButtons
public int getMaxVisibleMenuButtons()
Returns the maximum number of menu items visible in this menu.- Returns:
- The maximum number of menu items visible in this menu. If the value is negative, there is no limitation on how many menu buttons are shown, and the entire popup menu can overflow the monitor edges.
-
setMaxVisibleMenuButtons
public void setMaxVisibleMenuButtons(int maxVisibleMenuButtons)
Sets the maximum number of menu items visible in this menu. If the value is negative, there is no limitation on how many menu buttons are shown, and the entire popup menu can overflow the monitor edges.- Parameters:
maxVisibleMenuButtons
- The new value for the maximum number of menu items visible in this menu.
-
getUIClassID
public String getUIClassID()
- Overrides:
getUIClassID
in classJPopupPanel
-
updateUI
public void updateUI()
- Overrides:
updateUI
in classJPopupPanel
-
addChangeListener
public void addChangeListener(ChangeListener l)
Adds the specified change listener to track changes to this popup menu.- Parameters:
l
- Change listener to add.- See Also:
removeChangeListener(ChangeListener)
-
removeChangeListener
public void removeChangeListener(ChangeListener l)
Removes the specified change listener from tracking changes to this popup menu.- Parameters:
l
- Change listener to remove.- See Also:
addChangeListener(ChangeListener)
-
fireStateChanged
protected void fireStateChanged()
Notifies all registered listener that the state of this popup menu has changed.
-
isToDismissOnChildClick
public boolean isToDismissOnChildClick()
-
setToDismissOnChildClick
public void setToDismissOnChildClick(boolean toDismissOnChildClick)
-
-