Extension SDK 10.1.3.36.73

oracle.ide.controls
Class MenuToolButton

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.AbstractButton
                  extended byjavax.swing.JToggleButton
                      extended byoracle.ide.controls.BaseToggleToolButton
                          extended byoracle.ide.controls.MenuToolButton
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.swing.SwingConstants, ToolbarGroup, ToolbarItem

public class MenuToolButton
extends oracle.ide.controls.BaseToggleToolButton
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.ButtonPopupMenuListener
           
protected static class MenuToolButton.MenuToolButtonModel
           
 
Nested classes inherited from class javax.swing.JToggleButton
javax.swing.JToggleButton.AccessibleJToggleButton, javax.swing.JToggleButton.ToggleButtonModel
 
Nested classes inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  ToggleAction[] _actions
           
protected  java.util.ArrayList _hiddenItems
           
protected  javax.swing.JPopupMenu _popup
           
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
 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.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.
 
Methods inherited from class javax.swing.JToggleButton
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, 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, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

_actions

protected ToggleAction[] _actions

_hiddenItems

protected java.util.ArrayList _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

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)

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()
Description copied from class: oracle.ide.controls.BaseToggleToolButton
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()

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.


paintComponent

protected void paintComponent(java.awt.Graphics g)

createPopupMenu

protected javax.swing.JPopupMenu createPopupMenu()

createMenuItemActionPropertyChangeListener

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

getMinimumSize

public java.awt.Dimension getMinimumSize()

getMaximumSize

public java.awt.Dimension getMaximumSize()

configurePropertiesFromAction

protected void configurePropertiesFromAction(javax.swing.Action a)

createActionPropertyChangeListener

protected java.beans.PropertyChangeListener createActionPropertyChangeListener(javax.swing.Action a)

Extension SDK 10.1.3.36.73

 

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