Package org.pushingpixels.flamingo.api.common

# Class JCommandButtonStrip

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.pushingpixels.flamingo.api.common.JCommandButtonStrip

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

Direct Known Subclasses:
  `BasicRibbonGalleryUI.JButtonStripUIResource`

public class JCommandButtonStrip extends JComponent
Button strip component. Provides visual appearance of a strip. The buttons in the strip are either drawn horizontally with no horizontal space between them or drawn vertically with no vertical space between them.

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`JCommandButtonStrip.StripOrientation`
Button strip orientation.

## 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 CommandButtonDisplayState`
`displayState`
Element state for the buttons in this button strip.
`protected double`
`hgapScaleFactor`
Scale factor for horizontal gaps.
`static final String`
`uiClassID`
The UI class ID string.
`protected double`
`vgapScaleFactor`
Scale factor for vertical gaps.

### 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
`JCommandButtonStrip()`
Creates an empty horizontally-oriented strip.
`JCommandButtonStrip(JCommandButtonStrip.StripOrientation orientation)`
Creates an empty strip.

## Method Summary

Modifier and Type
Method
Description
`Component`
`add(Component comp)`
`Component`
`add(Component comp, int index)`
`void`
`add(Component comp, Object constraints)`
`void`
`add(Component comp, Object constraints, int index)`
`Component`
`add(String name, Component comp)`
`void`
`addChangeListener(ChangeListener l)`
Adds the specified change listener to track changes to this command button strip.
`protected void`
`fireStateChanged()`
Notifies all registered listener that the state of this command button strip has changed.
`AbstractCommandButton`
`getButton(int index)`
Returns the specified button component of `this` strip.
`int`
`getButtonCount()`
Returns the number of buttons in `this` strip.
`JCommandButtonStrip.StripOrientation`
`getOrientation()`
Returns the orientation of `this` strip.
`CommandButtonStripUI`
`getUI()`
Returns the UI object which implements the Linvalid input: '&F' for this component.
`String`
`getUIClassID()`
Returns the name of the UI class that implements the Linvalid input: '&F' for this component.
`boolean`
`isFirst(AbstractCommandButton button)`
Checks whether the specified button is the first button in `this` strip.
`boolean`
`isLast(AbstractCommandButton button)`
Checks whether the specified button is the last button in `this` strip.
`void`
`removeChangeListener(ChangeListener l)`
Removes the specified change listener from tracking changes to this command button strip.
`void`
`setDisplayState(CommandButtonDisplayState elementState)`
Sets the display state for the buttons in this button strip.
`void`
`setHGapScaleFactor(double hgapScaleFactor)`
Sets the horizontal gap scale factor for the buttons in this button strip.
`void`
`setUI(CommandButtonStripUI ui)`
Sets the new UI delegate.
`void`
`setVGapScaleFactor(double vgapScaleFactor)`
Sets the vertical gap scale factor for the buttons in this button strip.
`void`
`updateUI()`
Resets the UI property to a value from the current look and feel.

### 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, setEnabled, 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, 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

### displayState

protected CommandButtonDisplayState displayState
Element state for the buttons in this button strip. Default state is `CommandButtonDisplayState.SMALL`.

### hgapScaleFactor

protected double hgapScaleFactor
Scale factor for horizontal gaps.

See Also:
  - `setVGapScaleFactor(double)`

### vgapScaleFactor

protected double vgapScaleFactor
Scale factor for vertical gaps.

See Also:
  - `setVGapScaleFactor(double)`

## Constructor Details

### JCommandButtonStrip

public JCommandButtonStrip()
Creates an empty horizontally-oriented strip.

### JCommandButtonStrip

public JCommandButtonStrip(JCommandButtonStrip.StripOrientation orientation)
Creates an empty strip.

Parameters:
  `orientation` - Orientation for this strip.

## Method Details

### setDisplayState

public void setDisplayState(CommandButtonDisplayState elementState)
Sets the display state for the buttons in this button strip. This method must be called before adding the first command button. The default state is `CommandButtonDisplayState.SMALL`.

Parameters:
  `elementState` - New element state for the buttons in this button strip.

### setHGapScaleFactor

public void setHGapScaleFactor(double hgapScaleFactor)
Sets the horizontal gap scale factor for the buttons in this button strip. This method must be called before adding the first command button.

The default horizontal gap scale factor for horizontally oriented strips is 0.75. The default horizontal gap scale factor for vertically oriented strips is 1.0.

Parameters:
  `hgapScaleFactor` - New horizontal gap scale factor for the buttons in this button strip.
See Also:
  - `setVGapScaleFactor(double)`

### setVGapScaleFactor

public void setVGapScaleFactor(double vgapScaleFactor)
Sets the vertical gap scale factor for the buttons in this button strip. This method must be called before adding the first command button.

The default vertical gap scale factor for vertically oriented strips is 0.75. The default vertical gap scale factor for horizontally oriented strips is 1.0.

Parameters:
  `vgapScaleFactor` - New vertical gap scale factor for the buttons in this button strip.
See Also:
  - `setHGapScaleFactor(double)`

### add

public void add(Component comp, Object constraints, int index)

Overrides:
  `add` in class `Container`

### add

public void add(Component comp, Object constraints)

Overrides:
  `add` in class `Container`

### add

public Component add(Component comp, int index)

Overrides:
  `add` in class `Container`

### add

public Component add(Component comp)

Overrides:
  `add` in class `Container`

### add

public Component add(String name, Component comp)

Overrides:
  `add` in class `Container`

### setUI

public void setUI(CommandButtonStripUI ui)
Sets the new UI delegate.

Parameters:
  `ui` - New UI delegate.

### updateUI

public void updateUI()
Resets the UI property to a value from the current look and feel.

Overrides:
  `updateUI` in class `JComponent`
See Also:
  - `JComponent.updateUI()`

### getUI

public CommandButtonStripUI getUI()
Returns the UI object which implements the Linvalid input: '&F' for this component.

Overrides:
  `getUI` in class `JComponent`
Returns:
  a `ButtonStripUI` object
See Also:
  - `setUI(org.pushingpixels.flamingo.internal.ui.common.CommandButtonStripUI)`

### getUIClassID

public String getUIClassID()
Returns the name of the UI class that implements the Linvalid input: '&F' for this component.

Overrides:
  `getUIClassID` in class `JComponent`
Returns:
  the string "ButtonStripUI"
See Also:
  - `JComponent.getUIClassID()`
  - `UIDefaults.getUI(javax.swing.JComponent)`

### getButtonCount

public int getButtonCount()
Returns the number of buttons in `this` strip.

Returns:
  Number of buttons in `this` strip.
See Also:
  - `getButton(int)`

### getButton

public AbstractCommandButton getButton(int index)
Returns the specified button component of `this` strip.

Parameters:
  `index` - Button index.
Returns:
  The matching button.
See Also:
  - `getButtonCount()`

### isFirst

public boolean isFirst(AbstractCommandButton button)
Checks whether the specified button is the first button in `this` strip.

Parameters:
  `button` - Button to check.
Returns:
  `true` if the specified button is the first button in `this` strip, `false` otherwise.
See Also:
  - `isLast(AbstractCommandButton)`

### isLast

public boolean isLast(AbstractCommandButton button)
Checks whether the specified button is the last button in `this` strip.

Parameters:
  `button` - Button to check.
Returns:
  `true` if the specified button is the last button in `this` strip, `false` otherwise.
See Also:
  - `isFirst(AbstractCommandButton)`

### getOrientation

public JCommandButtonStrip.StripOrientation getOrientation()
Returns the orientation of `this` strip.

Returns:
  Orientation of `this` strip.

### addChangeListener

public void addChangeListener(ChangeListener l)
Adds the specified change listener to track changes to this command button strip.

Parameters:
  `l` - Change listener to add.
See Also:
  - `removeChangeListener(ChangeListener)`

### removeChangeListener

public void removeChangeListener(ChangeListener l)
Removes the specified change listener from tracking changes to this command button strip.

Parameters:
  `l` - Change listener to remove.
See Also:
  - `addChangeListener(ChangeListener)`

### fireStateChanged

protected void fireStateChanged()
Notifies all registered listener that the state of this command button strip has changed.