Package org.pushingpixels.flamingo.internal.ui.common

# Class BasicCommandButtonPanelUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.PanelUI
org.pushingpixels.flamingo.internal.ui.common.CommandButtonPanelUI
org.pushingpixels.flamingo.internal.ui.common.BasicCommandButtonPanelUI

public class BasicCommandButtonPanelUI extends CommandButtonPanelUI
Basic UI for command button panel `JCommandButtonPanel`.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`BasicCommandButtonPanelUI.ColumnFillLayout`
Column-fill layout for the button panel.
`protected class`
`BasicCommandButtonPanelUI.RowFillLayout`
Row-fill layout for the button panel.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected JCommandButtonPanel`
`buttonPanel`
The associated command button panel.
`protected ChangeListener`
`changeListener`
Change listener on `buttonPanel`.
`protected static final Insets`
`GROUP_INSETS`
Default insets of button panel groups.
`protected JLabel[]`
`groupLabels`
Labels of the button panel groups.
`protected Rectangle[]`
`groupRects`
Bounds of button panel groups.
`protected PropertyChangeListener`
`propertyChangeListener`
Property change listener on `buttonPanel`.

## Constructor Summary

Constructors
Constructor
Description
`BasicCommandButtonPanelUI()`

## Method Summary

Modifier and Type
Method
Description
`protected LayoutManager`
`createLayoutManager()`
Returns the layout manager for the associated button panel.
`static ComponentUI`
`createUI(JComponent c)`
`protected Insets`
`getGroupInsets()`
Returns the insets of button panel groups.
`protected int`
`getGroupTitleHeight(int groupIndex)`
Returns the height of the group title strip.
`protected int`
`getLayoutGap()`
Returns the layout gap for button panel components.
`int`
`getPreferredHeight(int buttonVisibleRows, int titleVisibleRows)`
Returns the preferred size of the associated button panel for the specified parameters.
`protected void`
`installComponents()`
Installs sub-components on the associated button panel.
`protected void`
`installDefaults()`
Installs defaults on the associated button panel.
`protected void`
`installListeners()`
Installs listeners on the associated button panel.
`void`
`installUI(JComponent c)`
`void`
`paint(Graphics g, JComponent c)`
`protected void`
`paintGroupBackground(Graphics g, int groupIndex, int x, int y, int width, int height)`
Paints the background of the specified button panel group.
`protected void`
`paintGroupTitleBackground(Graphics g, int groupIndex, int x, int y, int width, int height)`
Paints the background of the title of specified button panel group.
`protected void`
`recomputeGroupHeaders()`
Recomputes the components for button group headers.
`protected void`
`uninstallComponents()`
Uninstalls sub-components from the associated button panel.
`protected void`
`uninstallDefaults()`
Uninstalls defaults from the associated button panel.
`protected void`
`uninstallListeners()`
Uninstalls listeners from the associated button panel.
`void`
`uninstallUI(JComponent c)`

### Methods inherited from class javax.swing.plaf.ComponentUI

`contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, update`

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

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

## Field Details

### buttonPanel

protected JCommandButtonPanel buttonPanel
The associated command button panel.

### groupLabels

protected JLabel[] groupLabels
Labels of the button panel groups.

### groupRects

protected Rectangle[] groupRects
Bounds of button panel groups.

### propertyChangeListener

protected PropertyChangeListener propertyChangeListener
Property change listener on `buttonPanel`.

### changeListener

protected ChangeListener changeListener
Change listener on `buttonPanel`.

### GROUP_INSETS

protected static final Insets GROUP_INSETS
Default insets of button panel groups.

## Constructor Details

### BasicCommandButtonPanelUI

public BasicCommandButtonPanelUI()

## Method Details

### createUI

public static ComponentUI createUI(JComponent c)

### installUI

public void installUI(JComponent c)

Overrides:
  `installUI` in class `ComponentUI`

### installDefaults

protected void installDefaults()
Installs defaults on the associated button panel.

### installComponents

protected void installComponents()
Installs sub-components on the associated button panel.

### installListeners

protected void installListeners()
Installs listeners on the associated button panel.

### uninstallUI

public void uninstallUI(JComponent c)

Overrides:
  `uninstallUI` in class `ComponentUI`

### uninstallDefaults

protected void uninstallDefaults()
Uninstalls defaults from the associated button panel.

### uninstallComponents

protected void uninstallComponents()
Uninstalls sub-components from the associated button panel.

### uninstallListeners

protected void uninstallListeners()
Uninstalls listeners from the associated button panel.

### createLayoutManager

protected LayoutManager createLayoutManager()
Returns the layout manager for the associated button panel.

Returns:
  The layout manager for the associated button panel.

### paint

public void paint(Graphics g, JComponent c)

Overrides:
  `paint` in class `ComponentUI`

### paintGroupBackground

protected void paintGroupBackground(Graphics g, int groupIndex, int x, int y, int width, int height)
Paints the background of the specified button panel group.

Parameters:
  `g` - Graphics context.
  `groupIndex` - Group index.
  `x` - X coordinate of the button group bounds.
  `y` - Y coordinate of the button group bounds.
  `width` - Width of the button group bounds.
  `height` - Height of the button group bounds.

### paintGroupTitleBackground

protected void paintGroupTitleBackground(Graphics g, int groupIndex, int x, int y, int width, int height)
Paints the background of the title of specified button panel group.

Parameters:
  `g` - Graphics context.
  `groupIndex` - Group index.
  `x` - X coordinate of the button group title bounds.
  `y` - Y coordinate of the button group title bounds.
  `width` - Width of the button group title bounds.
  `height` - Height of the button group title bounds.

### getGroupTitleHeight

protected int getGroupTitleHeight(int groupIndex)
Returns the height of the group title strip.

Parameters:
  `groupIndex` - Group index.
Returns:
  The height of the title strip of the specified group.

### getGroupInsets

protected Insets getGroupInsets()
Returns the insets of button panel groups.

Returns:
  The insets of button panel groups.

### getLayoutGap

protected int getLayoutGap()
Returns the layout gap for button panel components.

Returns:
  The layout gap for button panel components.

### recomputeGroupHeaders

protected void recomputeGroupHeaders()
Recomputes the components for button group headers.

### getPreferredHeight

public int getPreferredHeight(int buttonVisibleRows, int titleVisibleRows)
Returns the preferred size of the associated button panel for the specified parameters.

Parameters:
  `buttonVisibleRows` - Target number of visible button rows.
  `titleVisibleRows` - Target number of visible group title rows.
Returns:
  The preferred size of the associated button panel for the specified parameters.