Package org.pushingpixels.substance.internal.utils.icon

# Class TransitionAwareIcon

java.lang.Object
org.pushingpixels.substance.internal.utils.icon.TransitionAwareIcon

All Implemented Interfaces:
  `Icon`

public class TransitionAwareIcon extends Object implements Icon
Icon with transition-aware capabilities. Has a delegate that does the actual painting based on the transition color schemes. This class is used heavily on Substance-provided icons, such as title pane button icons, arrow icons on scroll bars and combos etc.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`TransitionAwareIcon.ColorSchemeAssociationKindDelegate`
`static interface`
`TransitionAwareIcon.Delegate`
The delegate needs to implement the method in this interface based on the provided color scheme.
`static interface`
`TransitionAwareIcon.TransitionAwareUIDelegate`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected TransitionAwareIcon.ColorSchemeAssociationKindDelegate`
`colorSchemeAssociationKindDelegate`
`protected TransitionAwareIcon.Delegate`
`delegate`
Delegate to compute the actual icons.
`protected String`
`uniqueIconTypeId`

## Constructor Summary

Constructors
Constructor
Description
`TransitionAwareIcon(AbstractButton button, TransitionAwareIcon.Delegate delegate, String uniqueIconTypeId)`
`TransitionAwareIcon(JComponent comp, TransitionAwareIcon.TransitionAwareUIDelegate transitionAwareUIDelegate, TransitionAwareIcon.Delegate delegate, TransitionAwareIcon.ColorSchemeAssociationKindDelegate colorSchemeAssociationKindDelegate, String uniqueIconTypeId)`
Creates a new transition-aware icon.

## Method Summary

Modifier and Type
Method
Description
`int`
`getIconHeight()`
`int`
`getIconWidth()`
`void`
`paintIcon(Component c, Graphics g, int x, int y)`

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

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

## Field Details

### delegate

protected TransitionAwareIcon.Delegate delegate
Delegate to compute the actual icons.

### colorSchemeAssociationKindDelegate

protected TransitionAwareIcon.ColorSchemeAssociationKindDelegate colorSchemeAssociationKindDelegate

### uniqueIconTypeId

protected String uniqueIconTypeId

## Constructor Details

### TransitionAwareIcon

public TransitionAwareIcon(AbstractButton button, TransitionAwareIcon.Delegate delegate, String uniqueIconTypeId)

### TransitionAwareIcon

public TransitionAwareIcon(JComponent comp, TransitionAwareIcon.TransitionAwareUIDelegate transitionAwareUIDelegate, TransitionAwareIcon.Delegate delegate, TransitionAwareIcon.ColorSchemeAssociationKindDelegate colorSchemeAssociationKindDelegate, String uniqueIconTypeId)
Creates a new transition-aware icon.

Parameters:
  `comp` - Associated component.
  `delegate` - Delegate to compute the actual icons.

## Method Details

### getIconHeight

public int getIconHeight()

Specified by:
  `getIconHeight` in interface `Icon`

### getIconWidth

public int getIconWidth()

Specified by:
  `getIconWidth` in interface `Icon`

### paintIcon

public void paintIcon(Component c, Graphics g, int x, int y)

Specified by:
  `paintIcon` in interface `Icon`