de.javasoft.plaf.synthetica.painter
Class RootPanePainter

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

public class RootPanePainter
extends java.lang.Object

Painter for window root pane. The client property "Synthetica.logoRenderer" can be used to install a renderer for logo painting which appears within the titled panel and menubar area of the window. In case that a renderer is installed the window title won't get painted any longer. You can enforce title painting by setting the client property "Synthetica.paintTitle" to Boolean.TRUE. If the client property "Synthetica.logoRenderer.respectButtons" is set to TRUE the width used for rendering will be reduced by button sizes.

UI-properties:

  • Synthetica.rootPane.border[.selected] - String, border image path (selected means active window).
  • Synthetica.rootPane.border.insets - Insets, image insets.
  • Synthetica.rootPane.titlePane.background[.selected] - String, title pane background image path (selected means active window).
  • Synthetica.rootPane.titlePane.background.insets - Insets, image insets.
  • Synthetica.rootPane.titlePane.background.horizontalTiled - Boolean, tile/stretch background image horizontally, default is false.
  • Synthetica.rootPane.titlePane.background.verticalTiled - Boolean, tile/stretch background image vertically, default is false.
  • Synthetica.rootPane.borderText - String, text which appears at the bottom of a window, default is null and means not visible.
  • Synthetica.rootPane.borderText.foreground - Color, text foreground color.
  • Synthetica.rootPane.borderText.background - Color, text background color.
  • Version:
    1.26, 12.05.2013
    See Also:
    SyntheticaLogoRenderer

    Nested Class Summary
    static class Cacheable.ScaleType
               
     
    Field Summary
    protected static java.util.HashMap<java.lang.String,de.javasoft.plaf.synthetica.painter.SyntheticaComponentPainter> instances
               
    static java.lang.String UI_KEY
               
     
    Constructor Summary
    protected RootPanePainter()
              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 RootPanePainter getInstance()
              Returns painter instance.
    static RootPanePainter 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".
    protected  java.awt.Window getWindow(javax.swing.JRootPane root)
               
    protected  boolean isMaximized(java.awt.Window window)
               
     void paintButtonAreaBackground(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
              Paint button area background.
     void paintContentBackground(javax.swing.JRootPane root, SyntheticaState state, java.awt.Graphics g, int x, int y, int w, int h)
              Paint root pane content background.
     void paintResizeBackground(javax.swing.JRootPane rootPane, javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
               
     void paintRootPaneBorder(javax.swing.JRootPane root, SyntheticaState state, java.awt.Graphics g, int x, int y, int w, int h)
              Paint rootPane border.
     void paintRootPaneBorder(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
              Paint border.
     void paintTitlePaneBackground(javax.swing.JRootPane root, SyntheticaState state, java.awt.Graphics g, int x, int y, int w, int h)
              Paint title pane background.
     void paintTitlePaneBackground(javax.swing.plaf.synth.SynthContext sc, java.awt.Graphics g, int x, int y, int w, int h)
              Paint title pane background.
    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 renderLogo(javax.swing.JRootPane root, boolean windowIsActive, boolean windowIsMaximized, boolean respectBorderSize, java.awt.Graphics g, int w, int h)
              Expects installed client property "Synthetica.logoRenderer".
    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

    instances

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

    RootPanePainter

    protected RootPanePainter()
    Constructor.

    Method Detail

    getInstance

    public static RootPanePainter getInstance()
    Returns painter instance.


    getInstance

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

    Since:
    V2.7.0

    paintRootPaneBorder

    public void paintRootPaneBorder(javax.swing.JRootPane root,
                                    SyntheticaState state,
                                    java.awt.Graphics g,
                                    int x,
                                    int y,
                                    int w,
                                    int h)
    Paint rootPane border. The method is intended to be used by third parties.

    Parameters:
    root - The relevant rootPane
    state - Current component state
    g - Graphics used for rendering
    x - The x position
    y - The y position
    w - The width
    h - The height
    Since:
    V2.7.0

    paintRootPaneBorder

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


    paintContentBackground

    public void paintContentBackground(javax.swing.JRootPane root,
                                       SyntheticaState state,
                                       java.awt.Graphics g,
                                       int x,
                                       int y,
                                       int w,
                                       int h)
    Paint root pane content background. This is the area which is normally used for menus and tool bars. The painter does not paint title pane and border area. The method is intended to be used by third parties.

    Parameters:
    root - The relevant rootPane
    state - Current component state
    g - Graphics used for rendering
    x - The x position
    y - The y position
    w - The width
    h - The height
    Since:
    V2.7.0

    renderLogo

    protected void renderLogo(javax.swing.JRootPane root,
                              boolean windowIsActive,
                              boolean windowIsMaximized,
                              boolean respectBorderSize,
                              java.awt.Graphics g,
                              int w,
                              int h)
    Expects installed client property "Synthetica.logoRenderer". A renderer which implements the SyntheticaLogoRenderer interface.

    Parameters:
    root - The relevant rootPane
    windowIsActive - True means window is active
    windowIsMaximized - True if window is maximized
    respectBorderSize - True if window border has to be respected
    g - Graphics used for rendering
    w - The window width
    h - The window height
    Since:
    V2.7.0
    See Also:
    SyntheticaLogoRenderer

    paintTitlePaneBackground

    public void paintTitlePaneBackground(javax.swing.JRootPane root,
                                         SyntheticaState state,
                                         java.awt.Graphics g,
                                         int x,
                                         int y,
                                         int w,
                                         int h)
    Paint title pane background. The method is intended to be used by third parties.

    Parameters:
    root - The relevant rootPane
    state - Current component state
    g - Graphics used for rendering
    x - The x position
    y - The y position
    w - The width
    h - The height
    Since:
    V2.7.0

    paintTitlePaneBackground

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


    isMaximized

    protected boolean isMaximized(java.awt.Window window)

    paintButtonAreaBackground

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


    paintResizeBackground

    public void paintResizeBackground(javax.swing.JRootPane rootPane,
                                      javax.swing.plaf.synth.SynthContext sc,
                                      java.awt.Graphics g,
                                      int x,
                                      int y,
                                      int w,
                                      int h)

    getWindow

    protected java.awt.Window getWindow(javax.swing.JRootPane root)

    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

    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[])

    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

    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.