Package org.pushingpixels.flamingo.api.common

# Class JCommandButton

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.pushingpixels.flamingo.api.common.RichToolTipManager.JTrackableComponent
org.pushingpixels.flamingo.api.common.AbstractCommandButton
org.pushingpixels.flamingo.api.common.JCommandButton

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`

Direct Known Subclasses:
  `BasicRibbonGalleryUI.ExpandCommandButton`, `JCommandMenuButton`, `JRibbonApplicationMenuButton`

public class JCommandButton extends AbstractCommandButton
Command button.

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`JCommandButton.CommandButtonKind`
Enumerates the available command button kinds.
`static enum`
`JCommandButton.CommandButtonPopupOrientationKind`
Orientation kind for the popup.

## Nested classes/interfaces inherited from class org.pushingpixels.flamingo.api.common.AbstractCommandButton

`AbstractCommandButton.CommandButtonLocationOrderKind`

## 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 int`
`autoRepeatInitialInterval`
The initial interval for invoking the registered action listeners in the auto-repeat action mode.
`protected int`
`autoRepeatSubsequentInterval`
The subsequent interval for invoking the registered action listeners in the auto-repeat action mode.
`protected JCommandButton.CommandButtonKind`
`commandButtonKind`
The command button kind of this button.
`protected boolean`
`isAutoRepeatAction`
Indicates the auto-repeat action mode.
`protected boolean`
`isFireActionOnRollover`
Indicates that rollover should result in firing the action.
`protected PopupPanelCallback`
`popupCallback`
Associated popup callback.
`protected org.pushingpixels.flamingo.api.common.JCommandButton.PopupHandler`
`popupHandler`
Default popup handler for this button.
`protected String`
`popupKeyTip`
Key tip for the popup area of this button.
`protected PopupButtonModel`
`popupModel`
Popup model of this button.
`protected JCommandButton.CommandButtonPopupOrientationKind`
`popupOrientationKind`
The popup orientation kind of this button.
`static final String`
`uiClassID`
The UI class ID string.

### Fields inherited from class org.pushingpixels.flamingo.api.common.AbstractCommandButton

`actionHandler, actionKeyTip, actionModel, customDimension, disabledIcon, displayState, extraText, icon, isFlat`

### 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
`JCommandButton(String title)`
Creates a new command button without an icon.
`JCommandButton(String title, ResizableIcon icon)`
Creates a new command button.
`JCommandButton(ResizableIcon icon)`
Creates a new command button with empty text

## Method Summary

Modifier and Type
Method
Description
`void`
`doPopupClick()`
Programmatically perform a "click" on the popup area.
`protected void`
`firePopupActionPerformed(ActionEvent event)`
Notifies all listeners that have registered interest for notification on this event type.
`int`
`getAutoRepeatInitialInterval()`
Returns the initial interval for invoking the registered action listeners in the auto-repeat action mode.
`int`
`getAutoRepeatSubsequentInterval()`
Returns the subsequent interval for invoking the registered action listeners in the auto-repeat action mode.
`JCommandButton.CommandButtonKind`
`getCommandButtonKind()`
Returns the command button kind of this button.
`PopupPanelCallback`
`getPopupCallback()`
Returns the associated popup callback.
`String`
`getPopupKeyTip()`
Returns the key tip for the popup area of this button.
`PopupButtonModel`
`getPopupModel()`
Returns the popup model of this button.
`JCommandButton.CommandButtonPopupOrientationKind`
`getPopupOrientationKind()`
Returns the popup orientation kind of this button.
`RichTooltip`
`getRichTooltip(MouseEvent event)`
`String`
`getUIClassID()`
`boolean`
`isAutoRepeatAction()`
Returns indication whether the button is in auto-repeat action mode.
`boolean`
`isFireActionOnRollover()`
Returns indication whether this button is in action-on-rollover mode.
`void`
`setActionKeyTip(String actionKeyTip)`
Sets the key tip for the action area of this button.
`void`
`setAutoRepeatAction(boolean isAutoRepeatAction)`
Sets the auto-repeat action indication.
`void`
`setAutoRepeatActionIntervals(int initial, int subsequent)`
Sets the intervals for the auto-repeat action mode.
`void`
`setCommandButtonKind(JCommandButton.CommandButtonKind commandButtonKind)`
Sets the kind for this button.
`void`
`setEnabled(boolean b)`
`void`
`setFireActionOnRollover(boolean isFireActionOnRollover)`
Sets action-on-rollover mode.
`void`
`setPopupCallback(PopupPanelCallback popupCallback)`
Sets new popup callback for `this` button.
`void`
`setPopupKeyTip(String popupKeyTip)`
Sets the key tip for the popup area of this button.
`void`
`setPopupModel(PopupButtonModel newModel)`
Sets the new popup model for this button.
`void`
`setPopupOrientationKind(JCommandButton.CommandButtonPopupOrientationKind popupOrientationKind)`
Sets the popup orientation for this button.
`void`
`setPopupRichTooltip(RichTooltip richTooltip)`
Sets the rich tooltip for the popup area of this button.
`void`
`updateUI()`

### Methods inherited from class org.pushingpixels.flamingo.api.common.AbstractCommandButton

`addActionListener, addChangeListener, doActionClick, fireActionPerformed, fireStateChanged, getActionKeyTip, getActionModel, getCustomDimension, getDisabledIcon, getDisplayState, getExtraText, getHGapScaleFactor, getHorizontalAlignment, getIcon, getLocationOrderKind, getText, getUI, getVGapScaleFactor, isFlat, removeActionListener, removeChangeListener, setActionModel, setActionRichTooltip, setDisabledIcon, setDisplayState, setExtraText, setFlat, setGapScaleFactor, setHGapScaleFactor, setHorizontalAlignment, setIcon, setLocationOrderKind, setText, setToolTipText, setUI, setVGapScaleFactor, updateCustomDimension`

### 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, paramString, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, 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, getAccessibleContext, 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### uiClassID

public static final String uiClassID
The UI class ID string.

See Also:
  - Constant Field Values

### popupCallback

protected PopupPanelCallback popupCallback
Associated popup callback. May be `null`.

See Also:
  - `setPopupCallback(PopupPanelCallback)`
  - `getPopupCallback()`

### commandButtonKind

protected JCommandButton.CommandButtonKind commandButtonKind
The command button kind of this button.

See Also:
  - `setCommandButtonKind(CommandButtonKind)`
  - `getCommandButtonKind()`

### popupOrientationKind

protected JCommandButton.CommandButtonPopupOrientationKind popupOrientationKind
The popup orientation kind of this button.

See Also:
  - `setPopupOrientationKind(CommandButtonPopupOrientationKind)`
  - `getPopupOrientationKind()`

### isAutoRepeatAction

protected boolean isAutoRepeatAction
Indicates the auto-repeat action mode. When the button is not in the auto-repeat action mode, the registered action listeners are activated when the mouse is released (just as with the base `AbstractButton` ). When the button is in auto-repeat mode, the registered action listeners are activated when the mouse is pressed. In addition, if the mouse is still pressed after `getAutoRepeatInitialInterval()`, the action listeners will be activated every `getAutoRepeatSubsequentInterval()` until the button is disabled or the mouse is released.

See Also:
  - `autoRepeatInitialInterval`
  - `autoRepeatSubsequentInterval`
  - `setAutoRepeatAction(boolean)`
  - `isAutoRepeatAction()`

### autoRepeatInitialInterval

protected int autoRepeatInitialInterval
The initial interval for invoking the registered action listeners in the auto-repeat action mode.

See Also:
  - `isAutoRepeatAction`
  - `autoRepeatSubsequentInterval`
  - `getAutoRepeatInitialInterval()`
  - `setAutoRepeatActionIntervals(int, int)`

### autoRepeatSubsequentInterval

protected int autoRepeatSubsequentInterval
The subsequent interval for invoking the registered action listeners in the auto-repeat action mode.

See Also:
  - `isAutoRepeatAction`
  - `autoRepeatInitialInterval`
  - `getAutoRepeatSubsequentInterval()`
  - `setAutoRepeatActionIntervals(int, int)`

### isFireActionOnRollover

protected boolean isFireActionOnRollover
Indicates that rollover should result in firing the action. Used in conjunction with the `isAutoRepeatAction` can model quick pan buttons such as breadcrumb bar scrollers.

See Also:
  - `setFireActionOnRollover(boolean)`
  - `isFireActionOnRollover()`

### popupModel

protected PopupButtonModel popupModel
Popup model of this button.

See Also:
  - `setPopupModel(PopupButtonModel)`
  - `getPopupModel()`

### popupHandler

protected org.pushingpixels.flamingo.api.common.JCommandButton.PopupHandler popupHandler
Default popup handler for this button.

### popupKeyTip

protected String popupKeyTip
Key tip for the popup area of this button.

See Also:
  - `setPopupKeyTip(String)`
  - `getPopupKeyTip()`

## Constructor Details

### JCommandButton

public JCommandButton(ResizableIcon icon)
Creates a new command button with empty text

Parameters:
  `icon` - Button icon.

### JCommandButton

public JCommandButton(String title)
Creates a new command button without an icon.

Parameters:
  `title` - Button title. May contain any number of words.

### JCommandButton

public JCommandButton(String title, ResizableIcon icon)
Creates a new command button.

Parameters:
  `title` - Button title. May contain any number of words.
  `icon` - Button icon.

## Method Details

### getCommandButtonKind

public JCommandButton.CommandButtonKind getCommandButtonKind()
Returns the command button kind of this button.

Returns:
  Command button kind of this button.
See Also:
  - `setCommandButtonKind(CommandButtonKind)`

### setCommandButtonKind

public void setCommandButtonKind(JCommandButton.CommandButtonKind commandButtonKind)
Sets the kind for this button. Fires a `commandButtonKind` property change event.

Parameters:
  `commandButtonKind` - The new button kind.
See Also:
  - `getCommandButtonKind()`

### getPopupOrientationKind

public JCommandButton.CommandButtonPopupOrientationKind getPopupOrientationKind()
Returns the popup orientation kind of this button.

Returns:
  Popup orientation kind of this button.
See Also:
  - `setPopupOrientationKind(CommandButtonPopupOrientationKind)`

### setPopupOrientationKind

public void setPopupOrientationKind(JCommandButton.CommandButtonPopupOrientationKind popupOrientationKind)
Sets the popup orientation for this button. Fires a `popupOrientationKind` property change event.

Parameters:
  `popupOrientationKind` - The new popup orientation kind.
See Also:
  - `getPopupOrientationKind()`

### updateUI

public void updateUI()

Overrides:
  `updateUI` in class `JComponent`

### getUIClassID

public String getUIClassID()

Overrides:
  `getUIClassID` in class `JComponent`

### getPopupCallback

public PopupPanelCallback getPopupCallback()
Returns the associated popup callback.

Returns:
  The associated popup callback.
See Also:
  - `setPopupCallback(PopupPanelCallback)`

### setPopupCallback

public void setPopupCallback(PopupPanelCallback popupCallback)
Sets new popup callback for `this` button.

Parameters:
  `popupCallback` - New popup callback for `this` button.
See Also:
  - `getPopupCallback()`

### setAutoRepeatAction

public void setAutoRepeatAction(boolean isAutoRepeatAction)
Sets the auto-repeat action indication.

Parameters:
  `isAutoRepeatAction` - If `true`, pressing the button will activate auto-repeat action mode. When the button is not in the auto-repeat action mode, the registered action listeners are activated when the mouse is released (just as with the base `AbstractButton`). When the button is in auto-repeat mode, the registered action listeners are activated when the mouse is pressed. In addition, is the mouse is still pressed after `getAutoRepeatInitialInterval()`, the action listeners will be activated every `getAutoRepeatSubsequentInterval()` until the button is disabled or the mouse is released.
See Also:
  - `setAutoRepeatActionIntervals(int, int)`
  - `isAutoRepeatAction()`

### setAutoRepeatActionIntervals

public void setAutoRepeatActionIntervals(int initial, int subsequent)
Sets the intervals for the auto-repeat action mode.

Parameters:
  `initial` - The initial interval for invoking the registered action listeners in the auto-repeat action mode.
  `subsequent` - The subsequent interval for invoking the registered action listeners in the auto-repeat action mode.
See Also:
  - `setAutoRepeatAction(boolean)`
  - `isAutoRepeatAction()`
  - `getAutoRepeatInitialInterval()`
  - `getAutoRepeatSubsequentInterval()`

### isAutoRepeatAction

public boolean isAutoRepeatAction()
Returns indication whether the button is in auto-repeat action mode.

Returns:
  `true` if the button is in auto-repeat action mode, `false` otherwise.
See Also:
  - `setAutoRepeatAction(boolean)`
  - `setAutoRepeatActionIntervals(int, int)`
  - `getAutoRepeatInitialInterval()`
  - `getAutoRepeatSubsequentInterval()`

### getAutoRepeatInitialInterval

public int getAutoRepeatInitialInterval()
Returns the initial interval for invoking the registered action listeners in the auto-repeat action mode.

Returns:
  The initial interval for invoking the registered action listeners in the auto-repeat action mode.
See Also:
  - `setAutoRepeatActionIntervals(int, int)`
  - `setAutoRepeatAction(boolean)`
  - `isAutoRepeatAction()`
  - `getAutoRepeatSubsequentInterval()`

### getAutoRepeatSubsequentInterval

public int getAutoRepeatSubsequentInterval()
Returns the subsequent interval for invoking the registered action listeners in the auto-repeat action mode.

Returns:
  The subsequent interval for invoking the registered action listeners in the auto-repeat action mode.
See Also:
  - `setAutoRepeatActionIntervals(int, int)`
  - `setAutoRepeatAction(boolean)`
  - `isAutoRepeatAction()`
  - `getAutoRepeatInitialInterval()`

### setFireActionOnRollover

public void setFireActionOnRollover(boolean isFireActionOnRollover)
Sets action-on-rollover mode. When this mode is on, button will fire action events when it gets rollover (instead of press). Combine with `setAutoRepeatAction(boolean)` passing `true` to get auto-repeat action fired on rollover (useful for quicker manipulation of scroller buttons, for example).

Parameters:
  `isFireActionOnRollover` - If `true`, the button is moved into the action-on-rollover mode.
See Also:
  - `isFireActionOnRollover()`

### isFireActionOnRollover

public boolean isFireActionOnRollover()
Returns indication whether this button is in action-on-rollover mode.

Returns:
  `true` if this button is in action-on-rollover mode, `false` otherwise.
See Also:
  - `setFireActionOnRollover(boolean)`

### getPopupModel

public PopupButtonModel getPopupModel()
Returns the popup model of this button.

Returns:
  The popup model of this button.
See Also:
  - `setPopupModel(PopupButtonModel)`

### setPopupModel

public void setPopupModel(PopupButtonModel newModel)
Sets the new popup model for this button. Fires a `popupModel` property change event.

Parameters:
  `newModel` - The new popup model for this button.
See Also:
  - `getPopupModel()`

### setEnabled

public void setEnabled(boolean b)

Overrides:
  `setEnabled` in class `AbstractCommandButton`

### firePopupActionPerformed

protected void firePopupActionPerformed(ActionEvent event)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the `event` parameter.

Parameters:
  `event` - the `ActionEvent` object
See Also:
  - `EventListenerList`

### setPopupRichTooltip

public void setPopupRichTooltip(RichTooltip richTooltip)
Sets the rich tooltip for the popup area of this button.

Parameters:
  `richTooltip` - Rich tooltip for the popup area of this button.
See Also:
  - `getRichTooltip(MouseEvent)`
  - `AbstractCommandButton.setActionRichTooltip(RichTooltip)`

### getRichTooltip

public RichTooltip getRichTooltip(MouseEvent event)

Overrides:
  `getRichTooltip` in class `AbstractCommandButton`

### getPopupKeyTip

public String getPopupKeyTip()
Returns the key tip for the popup area of this button.

Returns:
  The key tip for the popup area of this button.
See Also:
  - `setPopupKeyTip(String)`
  - `AbstractCommandButton.getActionKeyTip()`

### setPopupKeyTip

public void setPopupKeyTip(String popupKeyTip)
Sets the key tip for the popup area of this button. Fires a `popupKeyTip` property change event.

Parameters:
  `popupKeyTip` - The key tip for the popup area of this button.
See Also:
  - `getPopupKeyTip()`
  - `setActionKeyTip(String)`

### setActionKeyTip

public void setActionKeyTip(String actionKeyTip)
Description copied from class: `AbstractCommandButton`
Sets the key tip for the action area of this button. Fires an `actionKeyTip` property change event.

Overrides:
  `setActionKeyTip` in class `AbstractCommandButton`
Parameters:
  `actionKeyTip` - The key tip for the action area of this button.
See Also:
  - `AbstractCommandButton.getActionKeyTip()`

### doPopupClick

public void doPopupClick()
Programmatically perform a "click" on the popup area. This does the same thing as if the user had pressed and released the popup area of the button.