org.jvnet.substance.api.painter.border
Class DelegateFractionBasedBorderPainter

java.lang.Object
  extended by org.jvnet.substance.api.painter.border.DelegateFractionBasedBorderPainter
All Implemented Interfaces:
SubstanceTrait, SubstanceBorderPainter

public class DelegateFractionBasedBorderPainter
extends java.lang.Object
implements SubstanceBorderPainter

Delegate border painter that allows tweaking the visual appearance of borders.

Author:
Kirill Grouchnikov

Field Summary
protected  FractionBasedBorderPainter delegate
          The delegate border painter.
protected  java.lang.String displayName
          Display name of this border painter.
protected  int[] masks
          8-digit hexadecimal masks applied on the colors painted by delegate.
protected  ColorSchemeTransform transform
          Transformation to be applied on the color schemes prior to compute the colors to be used for border painting.
protected static LazyResettableHashMap<SubstanceColorScheme> transformMap
          Map of transformed color schemes (to speed up the subsequent lookups).
 
Constructor Summary
DelegateFractionBasedBorderPainter(java.lang.String displayName, FractionBasedBorderPainter delegate, int[] masks, ColorSchemeTransform transform)
          Creates a new delegate border painter
 
Method Summary
 java.lang.String getDisplayName()
          Returns the display name of this trait.
 boolean isPaintingInnerContour()
          Returns boolean indication whether this border painter is painting the inner contours.
 void paintBorder(java.awt.Graphics g, java.awt.Component c, int width, int height, java.awt.Shape contour, java.awt.Shape innerContour, SubstanceColorScheme colorScheme1, SubstanceColorScheme colorScheme2, float cyclePos, boolean useCyclePosAsInterpolation)
          Paints the control border.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

displayName

protected java.lang.String displayName
Display name of this border painter.


delegate

protected FractionBasedBorderPainter delegate
The delegate border painter.


masks

protected int[] masks
8-digit hexadecimal masks applied on the colors painted by delegate. Can be used to apply custom translucency. For example, value 0x80FFFFFF will result in 50% translucency of the original border color.


transform

protected ColorSchemeTransform transform
Transformation to be applied on the color schemes prior to compute the colors to be used for border painting.


transformMap

protected static final LazyResettableHashMap<SubstanceColorScheme> transformMap
Map of transformed color schemes (to speed up the subsequent lookups).

Constructor Detail

DelegateFractionBasedBorderPainter

public DelegateFractionBasedBorderPainter(java.lang.String displayName,
                                          FractionBasedBorderPainter delegate,
                                          int[] masks,
                                          ColorSchemeTransform transform)
Creates a new delegate border painter

Parameters:
displayName - Display name of this border painter.
delegate - The delegate border painter.
masks - Array of 8-digit hexadecimal masks applied on the relevant colors painted by the delegate.
transform - Transformation to be applied on the color schemes prior to compute the colors to be used for border painting.
Method Detail

isPaintingInnerContour

public boolean isPaintingInnerContour()
Description copied from interface: SubstanceBorderPainter
Returns boolean indication whether this border painter is painting the inner contours.

Specified by:
isPaintingInnerContour in interface SubstanceBorderPainter
Returns:
true if this border painter is painting the inner contours, false otherwise.

paintBorder

public void paintBorder(java.awt.Graphics g,
                        java.awt.Component c,
                        int width,
                        int height,
                        java.awt.Shape contour,
                        java.awt.Shape innerContour,
                        SubstanceColorScheme colorScheme1,
                        SubstanceColorScheme colorScheme2,
                        float cyclePos,
                        boolean useCyclePosAsInterpolation)
Description copied from interface: SubstanceBorderPainter
Paints the control border.

Specified by:
paintBorder in interface SubstanceBorderPainter
Parameters:
g - Graphics.
c - Component.
width - Width of a UI component.
height - Height of a UI component.
contour - Contour of a UI component.
innerContour - Inner contour of a UI component. May be ignored if the specific implementation paints only the outside border.
colorScheme1 - The first color scheme.
colorScheme2 - The second color scheme.
cyclePos - Cycle position. Is used for rollover and pulsation effects. Must be in 0..1 range.
useCyclePosAsInterpolation - Indicates the algorithm to use for computing various colors. If true, the cyclePos is used to interpolate colors between different color components of both color schemes. If false, the cyclePos is used to interpolate colors between different color components of the first color scheme.

getDisplayName

public java.lang.String getDisplayName()
Description copied from interface: SubstanceTrait
Returns the display name of this trait. This method is part of officially supported API.

Specified by:
getDisplayName in interface SubstanceTrait
Returns:
The display name of this trait.