Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1)

E13403-04

oracle.ide.controls
Class MenuToolButton

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JToggleButton
                      extended by oracle.ide.controls.MenuToolButton
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants, ToolbarGroup, ToolbarItem
Direct Known Subclasses:
ConnectionPickerButton

public class MenuToolButton
extends javax.swing.JToggleButton
implements ToolbarGroup

An implementation of a toolbar toggle button that displays a drop-down menu of choices when the button is selected. A small down arrow is shown on the right side of the button to indicate that a drop-down menu is available.

Currently, the button menu is configured as a radio group, so the menu actions may consist only of a mutually exclusive set of options. The button icon changes based on the icon of the radio menu item that is selected.

NOTE: This class should be modified to support an arbitrary set of actions not necessarily corresponding to a radio group.

NOTE: (Louis) It has now been so modified, sort of. By not supplying the list of actions to the constructor, and simply adding menu items either immediately or from a popup menu listener, the radio group code is avoided. I'm ashamed of myself, but John promised to clean up after me :-)

See Also:
Serialized Form

Nested Class Summary
protected static class MenuToolButton.ButtonItemListener
           
protected static class MenuToolButton.ButtonKeyListener
           
protected static class MenuToolButton.ButtonPopupMenuListener
           
protected static class MenuToolButton.MenuToolButtonModel
           
 
Nested classes/interfaces inherited from class javax.swing.JToggleButton
javax.swing.JToggleButton.AccessibleJToggleButton, javax.swing.JToggleButton.ToggleButtonModel
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  ToggleAction[] _actions
           
protected  java.util.List<javax.swing.JMenuItem> _hiddenItems
           
protected  javax.swing.JPopupMenu _popup
           
protected  ToggleAction _visibleActions
           
protected static javax.swing.Icon POPUP_ICON
           
protected static javax.swing.event.PopupMenuListener POPUP_MENU_LISTENER
           
protected static int POPUP_WIDTH
           
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MenuToolButton(ToggleAction buttonAction)
          Creates a menu button where the menu is a drop down menu with ordinary menu items.
MenuToolButton(ToggleAction[] actions)
          Creates a menu button where the menu is a drop down menu with radio buttons and the button displays the icon of the currently selected button.
MenuToolButton(ToggleAction[] radioActions, ToggleAction defaultAction)
          Creates a menu button where the menu is a drop down menu with radio buttons and the button displays the icon of the currently selected button.
 
Method Summary
 java.awt.Component add(java.awt.Component comp)
           
 java.awt.Component add(java.awt.Component comp, int index)
           
 void add(java.awt.Component comp, java.lang.Object constraints)
           
 void add(java.awt.Component comp, java.lang.Object constraints, int index)
           
 java.awt.Component add(java.lang.String name, java.awt.Component comp)
           
 javax.swing.JMenuItem addPopupItem(ToggleAction action)
           
 void addPopupMenuListener(javax.swing.event.PopupMenuListener listener)
           
protected  void configurePropertiesFromAction(javax.swing.Action a)
           
protected  java.beans.PropertyChangeListener createActionPropertyChangeListener(javax.swing.Action a)
           
protected  java.awt.event.ItemListener createButtonItemListener()
           
protected  java.awt.event.KeyListener createButtonKeyListener()
           
protected  java.beans.PropertyChangeListener createMenuItemActionPropertyChangeListener(javax.swing.JMenuItem menuItem, javax.swing.Action action)
           
protected  javax.swing.ButtonModel createModel()
          Creates the data model for the button, which by default is a ToggleButton#ToggleButtonModel.
protected  javax.swing.JPopupMenu createPopupMenu()
           
 javax.swing.JMenuItem findPopupItem(ToggleAction action)
           
 javax.swing.Action[] getActions()
          Return the Actions associated with this toolbar group.
 java.awt.Dimension getMaximumSize()
           
 java.awt.Dimension getMinimumSize()
           
 javax.swing.JPopupMenu getPopupMenu()
           
 java.awt.Dimension getPreferredSize()
           
protected  void paintComponent(java.awt.Graphics g)
           
 void removeAllPopupItems()
           
 void removePopupItem(ToggleAction action)
           
 void removePopupMenuListener(javax.swing.event.PopupMenuListener listener)
           
 void setAction(javax.swing.Action action)
          Calls the super and sets all of the internal menu item's actions to null if the action is set to null.
 void setPaintPopUpIndicator(boolean paintPopUpIndicator)
           
 
Methods inherited from class javax.swing.JToggleButton
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.AbstractButton
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
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, getNextFocusableComponent, getPopupLocation, 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, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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
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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.ide.controls.ToolbarItem
getAction
 

Field Detail

POPUP_MENU_LISTENER

protected static final javax.swing.event.PopupMenuListener POPUP_MENU_LISTENER

POPUP_ICON

protected static final javax.swing.Icon POPUP_ICON

POPUP_WIDTH

protected static final int POPUP_WIDTH

_visibleActions

protected ToggleAction _visibleActions

_actions

protected ToggleAction[] _actions

_hiddenItems

protected java.util.List<javax.swing.JMenuItem> _hiddenItems

_popup

protected javax.swing.JPopupMenu _popup
Constructor Detail

MenuToolButton

public MenuToolButton(ToggleAction[] actions)
Creates a menu button where the menu is a drop down menu with radio buttons and the button displays the icon of the currently selected button. Each action must be a radio action (see ToggleAction.isRadio()).

Parameters:
actions - The radio actions for the radio group.

MenuToolButton

public MenuToolButton(ToggleAction buttonAction)
Creates a menu button where the menu is a drop down menu with ordinary menu items. The actions that define the menu items can be supplied by calling addPopupItem(oracle.ide.controls.ToggleAction) or directly to the popup menu (see getPopupMenu()).

Parameters:
buttonAction - The action that defines the attributes (such as icon and tool tip) of the button.

MenuToolButton

public MenuToolButton(ToggleAction[] radioActions,
                      ToggleAction defaultAction)
Creates a menu button where the menu is a drop down menu with radio buttons and the button displays the icon of the currently selected button. Each action must be a radio action (see ToggleAction.isRadio()).

Parameters:
radioActions - The radio actions for the radio group.
defaultAction - The initial default action in actions.
Method Detail

setPaintPopUpIndicator

public void setPaintPopUpIndicator(boolean paintPopUpIndicator)

getPopupMenu

public javax.swing.JPopupMenu getPopupMenu()

addPopupMenuListener

public void addPopupMenuListener(javax.swing.event.PopupMenuListener listener)

removePopupMenuListener

public void removePopupMenuListener(javax.swing.event.PopupMenuListener listener)

addPopupItem

public javax.swing.JMenuItem addPopupItem(ToggleAction action)

add

public java.awt.Component add(java.awt.Component comp)
Overrides:
add in class java.awt.Container

add

public void add(java.awt.Component comp,
                java.lang.Object constraints)
Overrides:
add in class java.awt.Container

add

public void add(java.awt.Component comp,
                java.lang.Object constraints,
                int index)
Overrides:
add in class java.awt.Container

add

public java.awt.Component add(java.awt.Component comp,
                              int index)
Overrides:
add in class java.awt.Container

add

public java.awt.Component add(java.lang.String name,
                              java.awt.Component comp)
Overrides:
add in class java.awt.Container

removePopupItem

public void removePopupItem(ToggleAction action)

removeAllPopupItems

public void removeAllPopupItems()

findPopupItem

public javax.swing.JMenuItem findPopupItem(ToggleAction action)

getActions

public javax.swing.Action[] getActions()
Description copied from interface: ToolbarGroup
Return the Actions associated with this toolbar group.

Specified by:
getActions in interface ToolbarGroup

createModel

protected javax.swing.ButtonModel createModel()
Creates the data model for the button, which by default is a ToggleButton#ToggleButtonModel. Subclasses may override to provide their own custom model.

This method is called during instance construction.

Returns:
the data model used to track the state of the button.

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

setAction

public void setAction(javax.swing.Action action)
Calls the super and sets all of the internal menu item's actions to null if the action is set to null.

Overrides:
setAction in class javax.swing.AbstractButton

paintComponent

protected void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

createPopupMenu

protected javax.swing.JPopupMenu createPopupMenu()

createMenuItemActionPropertyChangeListener

protected java.beans.PropertyChangeListener createMenuItemActionPropertyChangeListener(javax.swing.JMenuItem menuItem,
                                                                                       javax.swing.Action action)

createButtonItemListener

protected java.awt.event.ItemListener createButtonItemListener()

createButtonKeyListener

protected java.awt.event.KeyListener createButtonKeyListener()

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class javax.swing.JComponent

getMaximumSize

public java.awt.Dimension getMaximumSize()
Overrides:
getMaximumSize in class javax.swing.JComponent

configurePropertiesFromAction

protected void configurePropertiesFromAction(javax.swing.Action a)
Overrides:
configurePropertiesFromAction in class javax.swing.AbstractButton

createActionPropertyChangeListener

protected java.beans.PropertyChangeListener createActionPropertyChangeListener(javax.swing.Action a)
Overrides:
createActionPropertyChangeListener in class javax.swing.AbstractButton

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1)

E13403-04

Copyright © 1997, 2010, Oracle. All rights reserved.