Package org.pushingpixels.flamingo.api.ribbon

# Class AbstractRibbonBand<T extends AbstractBandControlPanel>

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
org.pushingpixels.flamingo.api.ribbon.AbstractRibbonBand<T>

Type Parameters:
  `T` - Class parameter that specifies the type of band control panel implementation.

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

Direct Known Subclasses:
  `JFlowRibbonBand`, `JRibbonBand`

public abstract class AbstractRibbonBand<T extends AbstractBandControlPanel> extends JComponent
Ribbon band. Is part of a logical `RibbonTask`. This is an abstract base class for two types of ribbon bands - flow in `JFlowRibbonBand` and general in `JRibbonBand`.

This class provides the following common functionality:

- Tracking the available and current resize policies.
- Tracking the collapsed state of the ribbon band - when there is not enough horizontal space to show this panel under the smallest resize setting (see `RibbonBandResizePolicy` and `CoreRibbonResizePolicies`) - the band content is replaced by one collapsed button. When that button is activated, the original ribbon band content is shown in a popup panel.
- Associating key tip and rich tooltip with the expand button of the ribbon band.
- Associating key tip with the collapsed button of the ribbon band.

See Also:
  - Serialized Form

## Nested Class Summary

## 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 T`
`controlPanel`
Band control panel.
`protected List<RibbonBandResizePolicy>`
`resizePolicies`
The list of available resize policies.
`static final String`
`uiClassID`
The UI class ID string.

### 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
`AbstractRibbonBand(String title, ResizableIcon icon, ActionListener expandActionListener, T controlPanel)`
Creates a new ribbon band.

## Method Summary

Modifier and Type
Method
Description
`abstract AbstractRibbonBand<T>`
`cloneBand()`
Returns a clone of this ribbon band.
`String`
`getCollapsedStateKeyTip()`
Returns the key tip for the collapsed button which is shown when there is not enough horizontal space to show the ribbon band content under the most restrictive resize policy.
`T`
`getControlPanel()`
Returns the control panel of `this` ribbon band.
`RibbonBandResizePolicy`
`getCurrentResizePolicy()`
Returns the current resize policy of this ribbon band.
`ActionListener`
`getExpandActionListener()`
Returns the expand action listener of `this` ribbon band.
`String`
`getExpandButtonKeyTip()`
Returns the key tip for the expand button of this ribbon band.
`RichTooltip`
`getExpandButtonRichTooltip()`
Returns the rich tooltip for the expand button of this ribbon band.
`ResizableIcon`
`getIcon()`
Returns the icon for the collapsed state.
`AbstractRibbonBand`
`getPopupRibbonBand()`
Returns the ribbon band shown in a popup panel when this ribbon band is in a collapsed state.
`List<RibbonBandResizePolicy>`
`getResizePolicies()`
Returns an unmodifiable list of available resize policies of this ribbon band.
`String`
`getTitle()`
Returns the title of `this` band.
`RibbonBandUI`
`getUI()`
Returns the UI object which implements the Linvalid input: '&F' for this component.
`String`
`getUIClassID()`
`void`
`setCollapsedStateKeyTip(String collapsedStateKeyTip)`
Changes the key tip for the collapsed button which is shown when there is not enough horizontal space to show the ribbon band content under the most restrictive resize policy.
`void`
`setControlPanel(T controlPanel)`
Sets the control panel of `this` ribbon band.
`void`
`setCurrentResizePolicy(RibbonBandResizePolicy resizePolicy)`
Sets the specified parameter to be the current resize policy of this ribbon band.
`void`
`setExpandActionListener(ActionListener expandActionListener)`
Sets the specified action listener to be activated when the user clicks the expand button on this ribbon band.
`void`
`setExpandButtonKeyTip(String expandButtonKeyTip)`
Changes the key tip for the expand button of this ribbon band.
`void`
`setExpandButtonRichTooltip(RichTooltip expandButtonRichTooltip)`
Changes the rich tooltip for the expand button of this ribbon band.
`void`
`setIcon(ResizableIcon icon)`
Changes the icon for the collapsed state of this ribbon band.
`void`
`setPopupRibbonBand(AbstractRibbonBand popupRibbonBand)`
Sets the specified parameter to be the ribbon band shown in a popup panel when this ribbon band is in a collapsed state.
`void`
`setResizePolicies(List<RibbonBandResizePolicy> resizePolicies)`
Sets the specified parameter as the available resize policies of this ribbon band.
`void`
`setTitle(String title)`
Changes the title of this ribbon band.
`void`
`setUI(RibbonBandUI ui)`
Sets the new UI delegate.
`void`
`updateUI()`

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

`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

### controlPanel

protected T extends AbstractBandControlPanel controlPanel
Band control panel. When there is not enough horizontal space to show this panel under the smallest resize setting, the control panel is hidden and a collapsed button is shown. When this collapsed button is activated, it shows the `popupRibbonBand` in a popup panel. The collapsed button itself is implemented as a part of the UI delegate in `BasicRibbonBandUI`.

See Also:
  - `popupRibbonBand`
  - `icon`

### resizePolicies

protected List<RibbonBandResizePolicy> resizePolicies
The list of available resize policies.

See Also:
  - `currResizePolicy`
  - `setResizePolicies(List)`
  - `getResizePolicies()`
  - `getCurrentResizePolicy()`

## Constructor Details

### AbstractRibbonBand

public AbstractRibbonBand(String title, ResizableIcon icon, ActionListener expandActionListener, T controlPanel)
Creates a new ribbon band.

Parameters:
  `title` - Band title.
  `icon` - Associated icon (for collapsed state).
  `expandActionListener` - Expand action listener (can be `null`).
  `controlPanel` - The control panel of this ribbon band.

## Method Details

### cloneBand

public abstract AbstractRibbonBand<T> cloneBand()
Returns a clone of this ribbon band.

Returns:
  A clone of this ribbon band.

### getUI

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

Overrides:
  `getUI` in class `JComponent`
Returns:
  a `RibbonBandUI` object
See Also:
  - `setUI(RibbonBandUI)`

### setUI

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

Parameters:
  `ui` - New UI delegate.

### updateUI

public void updateUI()

Overrides:
  `updateUI` in class `JComponent`

### getUIClassID

public String getUIClassID()

Overrides:
  `getUIClassID` in class `JComponent`

### getIcon

public ResizableIcon getIcon()
Returns the icon for the collapsed state.

Returns:
  The icon for the collapsed state.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`

### setIcon

public void setIcon(ResizableIcon icon)
Changes the icon for the collapsed state of this ribbon band. Fires a `icon` property change event.

Parameters:
  `icon` - The new icon for the collapsed state.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`
  - `getIcon()`

### getTitle

public String getTitle()
Returns the title of `this` band.

Returns:
  Title of `this` band.
See Also:
  - `setTitle(String)`

### setTitle

public void setTitle(String title)
Changes the title of this ribbon band. Fires a `title` property change event.

Parameters:
  `title` - The new title for this ribbon band.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`
  - `getTitle()`

### getExpandActionListener

public ActionListener getExpandActionListener()
Returns the expand action listener of `this` ribbon band. The result may be `null`.

Returns:
  Expand action listener of `this` ribbon band.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`
  - `setExpandActionListener(ActionListener)`

### setExpandActionListener

public void setExpandActionListener(ActionListener expandActionListener)
Sets the specified action listener to be activated when the user clicks the expand button on this ribbon band. Passing `null` will remove the expand button from this ribbon band.

Parameters:
  `expandActionListener` - Expand action listener for this ribbon band.
See Also:
  - `getExpandActionListener()`

### getControlPanel

public T getControlPanel()
Returns the control panel of `this` ribbon band. The result may be `null`.

Returns:
  Control panel of `this` ribbon band.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`
  - `setControlPanel(AbstractBandControlPanel)`

### setControlPanel

public void setControlPanel(T controlPanel)
Sets the control panel of `this` ribbon band. The parameter may be `null`. This method is for internal use only.

Parameters:
  `controlPanel` - The new control panel for `this` ribbon band. May be `null`.
See Also:
  - `AbstractRibbonBand(String, ResizableIcon, ActionListener, AbstractBandControlPanel)`
  - `getControlPanel()`

### getPopupRibbonBand

public AbstractRibbonBand getPopupRibbonBand()
Returns the ribbon band shown in a popup panel when this ribbon band is in a collapsed state. This method is for internal use only and should not be called by the application code.

Returns:
  The ribbon band shown in a popup panel when this ribbon band is in a collapsed state.
See Also:
  - `setPopupRibbonBand(AbstractRibbonBand)`

### setPopupRibbonBand

public void setPopupRibbonBand(AbstractRibbonBand popupRibbonBand)
Sets the specified parameter to be the ribbon band shown in a popup panel when this ribbon band is in a collapsed state. This method is for internal use only and should not be called by the application code.

Parameters:
  `popupRibbonBand` - The ribbon band to be shown in a popup panel when this ribbon band is in a collapsed state.

### getCurrentResizePolicy

public RibbonBandResizePolicy getCurrentResizePolicy()
Returns the current resize policy of this ribbon band.

Returns:
  The current resize policy of this ribbon band.

### setCurrentResizePolicy

public void setCurrentResizePolicy(RibbonBandResizePolicy resizePolicy)
Sets the specified parameter to be the current resize policy of this ribbon band. This method is for internal use only and should not be called by the application code.

Parameters:
  `resizePolicy` - The new resize policy for this ribbon band.
See Also:
  - `getCurrentResizePolicy()`
  - `getResizePolicies()`

### getResizePolicies

public List<RibbonBandResizePolicy> getResizePolicies()
Returns an unmodifiable list of available resize policies of this ribbon band.

Returns:
  An unmodifiable list of available resize policies of this ribbon band.

### setResizePolicies

public void setResizePolicies(List<RibbonBandResizePolicy> resizePolicies)
Sets the specified parameter as the available resize policies of this ribbon band. The order of the resize policies in this list is important. The first entry in the list must be the most permissive policies that returns the largest value from its `RibbonBandResizePolicy.getPreferredWidth(int, int)`. Each successive entry in the list must return the value smaller than its predecessors. If `IconRibbonBandResizePolicy` is in the list, it must be the last entry.

Parameters:
  `resizePolicies` - The new available resize policies of this ribbon band.

### getExpandButtonKeyTip

public String getExpandButtonKeyTip()
Returns the key tip for the expand button of this ribbon band.

Returns:
  The key tip for the expand button of this ribbon band.
See Also:
  - `setExpandButtonKeyTip(String)`

### setExpandButtonKeyTip

public void setExpandButtonKeyTip(String expandButtonKeyTip)
Changes the key tip for the expand button of this ribbon band. Fires an `expandButtonKeyTip` property change event.

Parameters:
  `expandButtonKeyTip` - The new key tip for the expand button of this ribbon band.
See Also:
  - `getExpandButtonKeyTip()`

### getExpandButtonRichTooltip

public RichTooltip getExpandButtonRichTooltip()
Returns the rich tooltip for the expand button of this ribbon band.

Returns:
  The rich tooltip for the expand button of this ribbon band.
See Also:
  - `setExpandButtonRichTooltip(RichTooltip)`

### setExpandButtonRichTooltip

public void setExpandButtonRichTooltip(RichTooltip expandButtonRichTooltip)
Changes the rich tooltip for the expand button of this ribbon band. Fires an `expandButtonRichTooltip` property change event.

Parameters:
  `expandButtonRichTooltip` - The new rich tooltip for the expand button of this ribbon band.
See Also:
  - `getExpandButtonRichTooltip()`

### getCollapsedStateKeyTip

public String getCollapsedStateKeyTip()
Returns the key tip for the collapsed button which is shown when there is not enough horizontal space to show the ribbon band content under the most restrictive resize policy.

Returns:
  The key tip for the collapsed button of this ribbon band.
See Also:
  - `setCollapsedStateKeyTip(String)`

### setCollapsedStateKeyTip

public void setCollapsedStateKeyTip(String collapsedStateKeyTip)
Changes the key tip for the collapsed button which is shown when there is not enough horizontal space to show the ribbon band content under the most restrictive resize policy. Fires a `collapsedStateKeyTip` property change event.

Parameters:
  `collapsedStateKeyTip` - The new key tip for the collapsed button of this ribbon band.
See Also:
  - `getCollapsedStateKeyTip()`