public class MenuToolButton extends javax.swing.JToggleButton implements ToolbarGroup
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 :-)
Modifier and Type | Class and Description |
---|---|
protected static class |
MenuToolButton.ButtonItemListener
Deprecated.
since 12.1.3.0.0. use
MenuToolButton.ButtonMouseListener instead.
Change in MenuToolButton semantics. See bug#15883928 for details. |
protected static class |
MenuToolButton.ButtonKeyListener |
protected static class |
MenuToolButton.ButtonMouseListener |
protected static class |
MenuToolButton.ButtonPopupMenuListener |
protected static class |
MenuToolButton.MenuToolButtonModel |
static interface |
MenuToolButton.UpdatableMenuAction
Actions on the menu that implement UpdatableMenuAction will have their updateAction
method called when the tool button menu is about to be made visible
|
javax.swing.JToggleButton.AccessibleJToggleButton, javax.swing.JToggleButton.ToggleButtonModel
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
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 |
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
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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) |
void |
addNotify() |
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()
Deprecated.
since 12.1.3.0.0. use
createButtonMouseListener() instead.
Change in MenuToolButton semantics. See bug#15883928 for details. |
protected java.awt.event.KeyListener |
createButtonKeyListener() |
protected java.awt.event.MouseListener |
createButtonMouseListener() |
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
Action s associated with this toolbar group. |
java.awt.Dimension |
getMaximumSize() |
java.awt.Dimension |
getMinimumSize() |
javax.swing.JPopupMenu |
getPopupMenu() |
java.awt.Dimension |
getPreferredSize() |
protected boolean |
isPopupVisible() |
protected void |
paintComponent(java.awt.Graphics g) |
void |
remove(java.awt.Component comp) |
void |
removeAllPopupItems() |
void |
removeNotify() |
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) |
getAccessibleContext, getUIClassID, paramString, updateUI
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, 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
addAncestorListener, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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
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, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
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, 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, transferFocusBackward, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAction
protected static final javax.swing.event.PopupMenuListener POPUP_MENU_LISTENER
protected static final javax.swing.Icon POPUP_ICON
protected static final int POPUP_WIDTH
protected ToggleAction _visibleActions
protected ToggleAction[] _actions
protected java.util.List<javax.swing.JMenuItem> _hiddenItems
protected javax.swing.JPopupMenu _popup
public MenuToolButton(ToggleAction[] actions)
ToggleAction.isRadio()
).actions
- The radio actions for the radio group.public MenuToolButton(ToggleAction buttonAction)
addPopupItem(oracle.ide.controls.ToggleAction)
or directly to the popup menu (see getPopupMenu()
).buttonAction
- The action that defines the attributes (such as icon
and tool tip) of the button.public MenuToolButton(ToggleAction[] radioActions, ToggleAction defaultAction)
ToggleAction.isRadio()
).radioActions
- The radio actions for the radio group.defaultAction
- The initial default action in actions
.public void setPaintPopUpIndicator(boolean paintPopUpIndicator)
public javax.swing.JPopupMenu getPopupMenu()
public void addPopupMenuListener(javax.swing.event.PopupMenuListener listener)
public void removePopupMenuListener(javax.swing.event.PopupMenuListener listener)
public javax.swing.JMenuItem addPopupItem(ToggleAction action)
public java.awt.Component add(java.awt.Component comp)
add
in class java.awt.Container
public void add(java.awt.Component comp, java.lang.Object constraints)
add
in class java.awt.Container
public void add(java.awt.Component comp, java.lang.Object constraints, int index)
add
in class java.awt.Container
public java.awt.Component add(java.awt.Component comp, int index)
add
in class java.awt.Container
public java.awt.Component add(java.lang.String name, java.awt.Component comp)
add
in class java.awt.Container
public void removePopupItem(ToggleAction action)
public void removeAllPopupItems()
public void remove(java.awt.Component comp)
remove
in class java.awt.Container
public javax.swing.JMenuItem findPopupItem(ToggleAction action)
public javax.swing.Action[] getActions()
ToolbarGroup
Action
s associated with this toolbar group.getActions
in interface ToolbarGroup
protected javax.swing.ButtonModel createModel()
ToggleButton#ToggleButtonModel
. Subclasses may override to provide
their own custom model.This method is called during instance construction.
public java.awt.Dimension getPreferredSize()
getPreferredSize
in class javax.swing.JComponent
public void setAction(javax.swing.Action action)
setAction
in class javax.swing.AbstractButton
protected void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
protected javax.swing.JPopupMenu createPopupMenu()
protected boolean isPopupVisible()
public void removeNotify()
removeNotify
in class javax.swing.AbstractButton
public void addNotify()
addNotify
in class javax.swing.JComponent
protected java.beans.PropertyChangeListener createMenuItemActionPropertyChangeListener(javax.swing.JMenuItem menuItem, javax.swing.Action action)
@Deprecated protected java.awt.event.ItemListener createButtonItemListener()
createButtonMouseListener()
instead.
Change in MenuToolButton
semantics. See bug#15883928 for details.protected java.awt.event.MouseListener createButtonMouseListener()
protected java.awt.event.KeyListener createButtonKeyListener()
public java.awt.Dimension getMinimumSize()
getMinimumSize
in class javax.swing.JComponent
public java.awt.Dimension getMaximumSize()
getMaximumSize
in class javax.swing.JComponent
protected void configurePropertiesFromAction(javax.swing.Action a)
configurePropertiesFromAction
in class javax.swing.AbstractButton
protected java.beans.PropertyChangeListener createActionPropertyChangeListener(javax.swing.Action a)
createActionPropertyChangeListener
in class javax.swing.AbstractButton