org.jvnet.flamingo.common.popup
Class JCommandPopupMenu

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.jvnet.flamingo.common.popup.JPopupPanel
                      extended by org.jvnet.flamingo.common.popup.JCommandPopupMenu
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class JCommandPopupMenu
extends JPopupPanel

Popup menu. Can host any number of command menu buttons added with addMenuButton(JCommandMenuButton) separated with optional addMenuSeparator(). The JCommandPopupMenu(JCommandButtonPanel, int, int) constructor allows placing a scrollable command button panel in the top part of the popup menu.

Author:
Kirill Grouchnikov
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jvnet.flamingo.common.popup.JPopupPanel
JPopupPanel.PopupPanelCustomizer
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
static java.lang.String uiClassID
           
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
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
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
 void addChangeListener(javax.swing.event.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 addMenuSeparator()
          Adds a menu separator to this menu.
 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.
 java.util.List<java.awt.Component> getMenuComponents()
          Returns an unmodifiable list of all the menu components.
 java.lang.String getUIClassID()
           
 boolean hasCommandButtonPanel()
          Returns indication whether this menu has a command button panel.
 void removeChangeListener(javax.swing.event.ChangeListener l)
          Removes the specified change listener from tracking changes to this popup menu.
 void updateUI()
           
 
Methods inherited from class org.jvnet.flamingo.common.popup.JPopupPanel
getCustomizer, getUI, setCustomizer
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uiClassID

public static final java.lang.String uiClassID
See Also:
getUIClassID(), Constant Field Values
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 in buttonPanel.
maxVisibleButtonRows - Maximum number of button rows visible in buttonPanel.
Method Detail

addMenuButton

public void addMenuButton(JCommandMenuButton menuButton)
Adds the specified menu button to this menu.

Parameters:
menuButton - Menu button to add.
See Also:
addMenuSeparator()

addMenuSeparator

public void addMenuSeparator()
Adds a menu separator to this menu.

See Also:
addMenuButton(JCommandMenuButton)

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 return null.

Returns:
The command button panel of this menu.
See Also:
hasCommandButtonPanel()

getMenuComponents

public java.util.List<java.awt.Component> getMenuComponents()
Returns an unmodifiable list of all the menu components. Can return null. If the result is not null, it is guaranteed to only hold JCommandMenuButtons added with addMenuButton(JCommandMenuButton) and JPopupMenu.Separators added with addMenuSeparator().

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 the JCommandPopupMenu() 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 the JCommandPopupMenu() 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()

getUIClassID

public java.lang.String getUIClassID()
Overrides:
getUIClassID in class JPopupPanel

updateUI

public void updateUI()
Overrides:
updateUI in class JPopupPanel

addChangeListener

public void addChangeListener(javax.swing.event.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(javax.swing.event.ChangeListener l)
Removes the specified change listener from tracking changes to this popup menu.

Parameters:
l - Change listener to remove.
See Also:
addChangeListener(ChangeListener)