org.pushingpixels.flamingo.api.common
Class JCommandButton

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.pushingpixels.flamingo.api.common.RichToolTipManager.JTrackableComponent
                  extended by org.pushingpixels.flamingo.api.common.AbstractCommandButton
                      extended by 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
static class JCommandButton.CommandButtonKind
          Enumerates the available command button kinds.
static class 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
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 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
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JCommandButton(ResizableIcon icon)
          Creates a new command button with empty text
JCommandButton(String title)
          Creates a new command button without an icon.
JCommandButton(String title, ResizableIcon icon)
          Creates a new command button.
 
Method Summary
 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, getAccessibleContext, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

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 Detail

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 Detail

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.