Package org.richfaces.renderkit.html

Source Code of org.richfaces.renderkit.html.Base2WayGradient

package org.richfaces.renderkit.html;

import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;

import org.richfaces.ui.images.BaseGradient;
import org.richfaces.ui.images.GradientType;
import org.richfaces.ui.images.GradientType.BiColor;

public class Base2WayGradient extends BaseGradient {


    public Base2WayGradient(boolean horizontal) {
        super(horizontal);
    }

    public Base2WayGradient(int width, int height, boolean horizontal) {
        super(width, height, horizontal);
    }

    public Base2WayGradient(int width, int height, int gradientHeight,
                            boolean horizontal) {
        super(width, height, gradientHeight, horizontal);
    }

    public Base2WayGradient(int width, int height, int gradientHeight,
                            String baseColor, String gradientColor, boolean horizontal) {
        super(width, height, gradientHeight, baseColor, gradientColor, horizontal);
    }

    public Base2WayGradient(int width, int height, int gradientHeight,
                            String baseColor, String gradientColor) {
        super(width, height, gradientHeight, baseColor, gradientColor);
    }

    public Base2WayGradient(int width, int height, int gradientHeight) {
        super(width, height, gradientHeight);
    }

    public Base2WayGradient(int width, int height, String baseColor,
                            String gradientColor, boolean horizontal) {
        super(width, height, baseColor, gradientColor, horizontal);
    }

    public Base2WayGradient(int width, int height, String baseColor,
                            String gradientColor) {
        super(width, height, baseColor, gradientColor);
    }

    public Base2WayGradient(int width, int height) {
        super(width, height);
    }

    public Base2WayGradient(String baseColor, String gradientColor,
                            boolean horizontal) {
        super(baseColor, gradientColor, horizontal);
    }

    public Base2WayGradient(String baseColor, String gradientColor) {
        super(baseColor, gradientColor);
    }


    protected void drawBackGradient(Graphics2D g2d, Rectangle2D rectangle, BiColor colors, int height) {
        if (colors != null) {
            GradientPaint gragient = new GradientPaint(0, (float) (rectangle.getHeight() - height), colors.getBottomColor(), 0, (float) rectangle.getHeight(), colors.getTopColor());
            g2d.setPaint(gragient);
            g2d.fill(rectangle);
        }
    }


    @Override
    protected void paintGradient(Graphics2D g2d, Dimension dim) {
        if (headerBackgroundColor != null && headerGradientColor != null) {
            BiColor biColor = new GradientType.BiColor(headerBackgroundColor, headerGradientColor);
            BiColor firstLayer = gradientType.getFirstLayerColors(biColor);
            BiColor secondLayer = gradientType.getSecondLayerColors(biColor);

            if (isHorizontal()) {
                //x -> y, y -> x
                g2d.transform(new AffineTransform(0, 1, 1, 0, 0, 0));
                dim.setSize(dim.height, dim.width);
            }

            int localGradientHeight = getGradientHeight();
            if (localGradientHeight < 0) {
                localGradientHeight = dim.height / 2;
            }

            Rectangle2D rect = new Rectangle2D.Float(
                    0,
                    0,
                    dim.width,
                    localGradientHeight);

            drawGradient(g2d, rect, firstLayer, localGradientHeight);

            rect = new Rectangle2D.Float(
                    0,
                    localGradientHeight,
                    dim.width,
                    dim.height);

            drawBackGradient(g2d, rect, firstLayer, localGradientHeight);

            int smallGradientHeight = localGradientHeight / 2;

            rect = new Rectangle2D.Float(
                    0,
                    0,
                    dim.width,
                    smallGradientHeight);

            drawGradient(g2d, rect, secondLayer, smallGradientHeight);

            rect = new Rectangle2D.Float(
                    0,
                    dim.height - smallGradientHeight,
                    dim.width,
                    dim.height);

            drawBackGradient(g2d, rect, secondLayer, smallGradientHeight);
        }
    }


}
TOP

Related Classes of org.richfaces.renderkit.html.Base2WayGradient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.