de.javasoft.plaf.synthetica.painter
Class ButtonPainter

java.lang.Object
  extended by de.javasoft.plaf.synthetica.painter.ButtonPainter

public class ButtonPainter
extends java.lang.Object

Painter for buttons.

UI-properties:

  • Synthetica.button[.12x12].border[.hover | .pressed | .disabled][.focused] - String, button border/background image path.
  • Synthetica.button.border.insets - Insets, button image insets.
  • Synthetica.toolBar.buttons.paintBorder - Boolean, paint border for tool bar buttons, default is false.
  • Synthetica.toolBar.button[.12x12].border[.hover | .pressed | .disabled][.focused] - String, button border/background image path for toolbar child buttons.
  • Version:
    2.54, 23.02.2012

    Nested Class Summary
    static class Cacheable.ScaleType
               
     
    Field Summary
    protected static java.util.WeakHashMap<javax.swing.AbstractButton,java.lang.Object> buttons
               
    protected static java.util.HashMap<java.lang.String,de.javasoft.plaf.synthetica.painter.SyntheticaComponentPainter> instances
               
    static java.lang.String UI_KEY
               
     
    Constructor Summary
    protected ButtonPainter()
              Constructor.
     
    Method Summary
    protected  float calcRelativeArc(java.awt.Graphics2D g2, float arc, float offset)
              Helper method to calculate an arc relative to the given offset.
    protected  float calcRelativeGradientPos(java.awt.Graphics2D g2, float pos, float offset)
              Helper method to calculate a relative gradient position in respect to the given offset.
    protected static float calcRelativeLength(java.awt.Graphics2D g2, float length, float offset)
              Helper method to calculate a length in respect to the given offset.
    protected  float calcRelativePos(java.awt.Graphics2D g2, float pos, float offset)
              Helper method to calculate a relative position in respect to the given offset.
    protected  java.awt.Color createAlphaColor(java.awt.Color color, java.lang.Float alpha)
              Helper method to create a alpha color from a solid color.
    protected  java.awt.Paint createLinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, java.awt.Color[] colors)
              Convenient method to create a LinearGradientPaint for Java 1.5 and Java 6.
    protected  java.awt.BasicStroke createStroke(javax.swing.plaf.synth.SynthContext sc)
              Creates the stroke used for Java2D painting.
     int getCacheHash(javax.swing.plaf.synth.SynthContext sc, int w, int h, int meta, java.lang.String id)
              Returns a cache hash value which is used by SyntheticaSoftCache.
     java.awt.Insets getCacheScaleInsets(javax.swing.plaf.synth.SynthContext sc, java.lang.String id)
              Returns the insets in case of 9 square scaling is used.
     Cacheable.ScaleType getCacheScaleType(java.lang.String id)
              Returns the scaling type which will be used for scaling.
    static ButtonPainter getInstance()
              Returns painter instance.
    static ButtonPainter getInstance(javax.swing.plaf.synth.SynthContext sc)
              Returns painter instance.
    protected static de.javasoft.plaf.synthetica.painter.SyntheticaComponentPainter getInstance(javax.swing.plaf.synth.SynthContext sc, java.lang.Class<?> syntheticaPainter, java.lang.String customPainterUIKey)
              Returns a painter instance.
    protected static java.lang.String getPainterClassName(javax.swing.plaf.synth.SynthContext sc, java.lang.Class<?> syntheticaPainter, java.lang.String customPainterUIKey)
               
    protected  float getScale()
              Returns the current scale factor.
    protected  java.awt.Color getSyntheticaBackgroundColor(javax.swing.JComponent c)
              Helper method to create the Synthetica background color with alpha value provided by component background property or client properties "Synthetica.background" and "Synthetica.background.alpha".
     void paintButtonBackground(javax.swing.JComponent c, SyntheticaState state, java.lang.String segmentPosition, java.awt.Graphics g, int x, int y, int w, int h)
              Paint button background.
     void paintButtonBackground(javax.swing.JComponent c, SyntheticaState state, java.lang.String segmentPosition, int angle, java.awt.Graphics g, int x, int y, int w, int h)
              Paint button background.
     void paintButtonBackground(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
              Paint button background.
     void paintButtonBorder(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
              Paint button border.
    protected  boolean paintCheck(javax.swing.JComponent c, SyntheticaState state)
               
    protected  boolean paintCheck(javax.swing.plaf.synth.SynthContext sc)
              Checks paint conditions and returns true as signal to continue painting.
    protected  java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, boolean antiAlias)
              Prepare graphics for Java2D painting.
    protected  java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, boolean antiAlias, boolean translateXY)
              Prepare graphics for Java2D painting.
    protected  java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, boolean antiAlias, boolean translateXY, java.awt.BasicStroke stroke)
              Prepares/configures graphics object for 2D painting.
    protected  java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h, java.awt.BasicStroke stroke)
              Deprecated.  
    protected  java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h, boolean respectStrokeWidth)
              Deprecated.  
    protected  void restoreGraphics2D(java.awt.Graphics2D g2)
              Restore the already prepared graphics object.
    protected  float scaleArc(float arc)
              Returns a scaled arc.
    protected static java.awt.Shape subtractStroke(java.awt.Graphics2D g2, java.awt.Shape s)
              Helper method to subtract the stroke from the given shape.
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Field Detail

    UI_KEY

    public static final java.lang.String UI_KEY
    See Also:
    Constant Field Values

    buttons

    protected static java.util.WeakHashMap<javax.swing.AbstractButton,java.lang.Object> buttons

    instances

    protected static java.util.HashMap<java.lang.String,de.javasoft.plaf.synthetica.painter.SyntheticaComponentPainter> instances
    Constructor Detail

    ButtonPainter

    protected ButtonPainter()
    Constructor.

    Method Detail

    getInstance

    public static ButtonPainter getInstance()
    Returns painter instance.


    getInstance

    public static ButtonPainter getInstance(javax.swing.plaf.synth.SynthContext sc)
    Returns painter instance.

    Since:
    V2.7.0

    paintButtonBorder

    public void paintButtonBorder(javax.swing.plaf.synth.SynthContext sc,
                                  java.awt.Graphics g,
                                  int x,
                                  int y,
                                  int w,
                                  int h)
    Paint button border.


    paintButtonBackground

    public void paintButtonBackground(javax.swing.plaf.synth.SynthContext sc,
                                      java.awt.Graphics g,
                                      int x,
                                      int y,
                                      int w,
                                      int h)
    Paint button background.


    paintButtonBackground

    public void paintButtonBackground(javax.swing.JComponent c,
                                      SyntheticaState state,
                                      java.lang.String segmentPosition,
                                      java.awt.Graphics g,
                                      int x,
                                      int y,
                                      int w,
                                      int h)
    Paint button background. The method is intended to be used by third parties.

    Parameters:
    c - The relevant component
    state - Current component state
    segmentPosition - The segment position as string. Valid values are ("", "first", "middle", "last", "only") see http://developer.apple.com/technotes/tn2007/tn2196.html#SEGMENTED_BUTTONS
    g - Graphics
    x - The x-position
    y - The y-position
    w - The width
    h - The height
    See Also:
    paintButtonBackground(JComponent, SyntheticaState, String, int, Graphics, int, int, int, int)

    paintButtonBackground

    public void paintButtonBackground(javax.swing.JComponent c,
                                      SyntheticaState state,
                                      java.lang.String segmentPosition,
                                      int angle,
                                      java.awt.Graphics g,
                                      int x,
                                      int y,
                                      int w,
                                      int h)
    Paint button background. The method is intended to be used by third parties.

    Parameters:
    c - The relevant component
    state - Current component state
    segmentPosition - The segment position as string. Valid values are ("", "first", "middle", "last", "only") see http://developer.apple.com/technotes/tn2007/tn2196.html#SEGMENTED_BUTTONS
    angle - Angle in degrees (supported values: 0, 90, -90)
    g - Graphics
    x - The x-position
    y - The y-position
    w - The width
    h - The height

    paintCheck

    protected boolean paintCheck(javax.swing.plaf.synth.SynthContext sc)
    Checks paint conditions and returns true as signal to continue painting.

    Parameters:
    sc - SynthContext
    Returns:
    true - paint, false - abort paint

    paintCheck

    protected boolean paintCheck(javax.swing.JComponent c,
                                 SyntheticaState state)

    getCacheHash

    public int getCacheHash(javax.swing.plaf.synth.SynthContext sc,
                            int w,
                            int h,
                            int meta,
                            java.lang.String id)
    Returns a cache hash value which is used by SyntheticaSoftCache. The hash value has to represent every single paint attribute which is used by the painter class which implements the Cacheable interface.

    Parameters:
    sc - The synth context
    w - The paint width
    h - The paint height
    meta - A context related meta value
    id - Usually the relevant painter method name
    Returns:
    The hash value or -1 for non-cacheable

    getInstance

    protected static de.javasoft.plaf.synthetica.painter.SyntheticaComponentPainter getInstance(javax.swing.plaf.synth.SynthContext sc,
                                                                                                java.lang.Class<?> syntheticaPainter,
                                                                                                java.lang.String customPainterUIKey)
    Returns a painter instance.


    getPainterClassName

    protected static java.lang.String getPainterClassName(javax.swing.plaf.synth.SynthContext sc,
                                                          java.lang.Class<?> syntheticaPainter,
                                                          java.lang.String customPainterUIKey)

    prepareGraphics2D

    protected java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc,
                                                    java.awt.Graphics g,
                                                    int x,
                                                    int y,
                                                    boolean antiAlias,
                                                    boolean translateXY,
                                                    java.awt.BasicStroke stroke)
    Prepares/configures graphics object for 2D painting.

    Parameters:
    sc - Synth context, can be null.
    g - Graphics object.
    x - Original X-position, if translateXY is true the point of origin is X,Y which means the paint method doesn't have to respect the X-position.
    y - Original Y-position, if translateXY is true the point of origin is X,Y which means the paint method doesn't have to respect the Y-position.
    antiAlias - True means anti-alias rendering hint will be set - it's recommended to enable anti-aliasing for borders (#draw(Shape s)) and for background fills (#fill(Shape s)) in case that the border is translucent.
    translateXY - True, translate graphics to specified X,Y coordinates and respect stroke width - point of origin for painting is X,Y.
    stroke - Stroke used for painting - can be null in this case (createStroke(SynthContext) will be used).
    Returns:
    Configured Graphics2D object.

    prepareGraphics2D

    protected java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc,
                                                    java.awt.Graphics g,
                                                    int x,
                                                    int y,
                                                    boolean antiAlias)
    Prepare graphics for Java2D painting. Graphics will be translated to the specified X,Y coordinates - point of origin for painting is X,Y. Painter methods doesn't have to respect the X,Y-position.

    See Also:
    prepareGraphics2D(SynthContext, Graphics, int, int, boolean, boolean, BasicStroke), createStroke(SynthContext)

    prepareGraphics2D

    protected java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc,
                                                    java.awt.Graphics g,
                                                    int x,
                                                    int y,
                                                    boolean antiAlias,
                                                    boolean translateXY)
    Prepare graphics for Java2D painting.

    See Also:
    prepareGraphics2D(SynthContext, Graphics, int, int, boolean, boolean, BasicStroke), createStroke(SynthContext)

    prepareGraphics2D

    protected java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc,
                                                    java.awt.Graphics g,
                                                    int x,
                                                    int y,
                                                    int w,
                                                    int h,
                                                    java.awt.BasicStroke stroke)
    Deprecated. 

    Prepare graphics for Java2D painting.

    See Also:
    prepareGraphics2D(SynthContext, Graphics, int, int, boolean, boolean, BasicStroke)

    prepareGraphics2D

    protected java.awt.Graphics2D prepareGraphics2D(javax.swing.plaf.synth.SynthContext sc,
                                                    java.awt.Graphics g,
                                                    int x,
                                                    int y,
                                                    int w,
                                                    int h,
                                                    boolean respectStrokeWidth)
    Deprecated. 

    Prepare graphics for Java2D painting.

    See Also:
    prepareGraphics2D(SynthContext, Graphics, int, int, boolean, boolean, BasicStroke)

    restoreGraphics2D

    protected void restoreGraphics2D(java.awt.Graphics2D g2)
    Restore the already prepared graphics object.


    getScale

    protected float getScale()
    Returns the current scale factor.


    createStroke

    protected java.awt.BasicStroke createStroke(javax.swing.plaf.synth.SynthContext sc)
    Creates the stroke used for Java2D painting.


    scaleArc

    protected float scaleArc(float arc)
    Returns a scaled arc.

    Parameters:
    arc - The unscaled arc.
    Returns:
    The scaled arc.

    calcRelativeArc

    protected float calcRelativeArc(java.awt.Graphics2D g2,
                                    float arc,
                                    float offset)
    Helper method to calculate an arc relative to the given offset. Note: Stroke width has to be equal to the scale factor

    Parameters:
    g2 - 2D graphics object.
    arc - The base arc.
    offset - The offset in pixel.
    Returns:
    The calculated arc.

    calcRelativePos

    protected float calcRelativePos(java.awt.Graphics2D g2,
                                    float pos,
                                    float offset)
    Helper method to calculate a relative position in respect to the given offset. Note: Stroke width has to be equal to the scale factor

    Parameters:
    g2 - 2D graphics object.
    pos - X/Y-position.
    offset - The offset in pixel.
    Returns:
    The calculated position.

    calcRelativeGradientPos

    protected float calcRelativeGradientPos(java.awt.Graphics2D g2,
                                            float pos,
                                            float offset)
    Helper method to calculate a relative gradient position in respect to the given offset. Note: Stroke width has to be equal to the scale factor

    Parameters:
    g2 - 2D graphics object.
    pos - X/Y-position.
    offset - The offset in pixel.
    Returns:
    The calculated position.

    calcRelativeLength

    protected static float calcRelativeLength(java.awt.Graphics2D g2,
                                              float length,
                                              float offset)
    Helper method to calculate a length in respect to the given offset. Note: Stroke width has to be equal to the scale factor

    Parameters:
    g2 - 2D graphics object.
    length - The length.
    offset - The offset in pixel.
    Returns:
    The calculated length.

    subtractStroke

    protected static java.awt.Shape subtractStroke(java.awt.Graphics2D g2,
                                                   java.awt.Shape s)
    Helper method to subtract the stroke from the given shape.

    Parameters:
    g2 - Graphics.
    s - The shape.
    Returns:
    The shape without stroke.

    getSyntheticaBackgroundColor

    protected java.awt.Color getSyntheticaBackgroundColor(javax.swing.JComponent c)
    Helper method to create the Synthetica background color with alpha value provided by component background property or client properties "Synthetica.background" and "Synthetica.background.alpha". If no background color is set null will be returned.

    Parameters:
    c - The relevant JComponent.
    Returns:
    The background color including alpha value or null

    createAlphaColor

    protected java.awt.Color createAlphaColor(java.awt.Color color,
                                              java.lang.Float alpha)
    Helper method to create a alpha color from a solid color. If color is null, null will be returned. If alpha value is null 0.1f will be used.

    Parameters:
    color - The color.
    alpha - The alpha value - null means 0.1f
    Returns:
    The color including alpha value or null

    createLinearGradientPaint

    protected java.awt.Paint createLinearGradientPaint(float startX,
                                                       float startY,
                                                       float endX,
                                                       float endY,
                                                       float[] fractions,
                                                       java.awt.Color[] colors)
    Convenient method to create a LinearGradientPaint for Java 1.5 and Java 6.

    See Also:
    SyntheticaLookAndFeel.createLinearGradientPaint(float, float, float, float, float[], Color[])

    getCacheScaleType

    public Cacheable.ScaleType getCacheScaleType(java.lang.String id)
    Returns the scaling type which will be used for scaling.

    Parameters:
    id - Usually the relevant painter method name
    Returns:
    The scaling type

    getCacheScaleInsets

    public java.awt.Insets getCacheScaleInsets(javax.swing.plaf.synth.SynthContext sc,
                                               java.lang.String id)
    Returns the insets in case of 9 square scaling is used.

    Parameters:
    sc - The synth context
    id - Usually the relevant painter method name
    Returns:
    The image insets used for 9 square scaling


    Copyright © 2004-2011 Jyloo Software. All Rights Reserved.