    001/* ===========================================================
    002 * JFreeChart : a free chart library for the Java(tm) platform
    003 * ===========================================================
    004 *
    005 * (C) Copyright 2000-2011, by Object Refinery Limited and Contributors.
    006 *
    007 * Project Info:  http://www.jfree.org/jfreechart/index.html
    008 *
    009 * This library is free software; you can redistribute it and/or modify it
    010 * under the terms of the GNU Lesser General Public License as published by
    011 * the Free Software Foundation; either version 2.1 of the License, or
    012 * (at your option) any later version.
    013 *
    014 * This library is distributed in the hope that it will be useful, but
    015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
    017 * License for more details.
    018 *
    019 * You should have received a copy of the GNU Lesser General Public
    020 * License along with this library; if not, write to the Free Software
    021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
    022 * USA.
    023 *
    024 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
    025 * Other names may be trademarks of their respective owners.]
    026 *
    027 * ---------------
    028 * ChartColor.java
    029 * ---------------
    030 * (C) Copyright 2003-2011, by Cameron Riley and Contributors.
    031 *
    032 * Original Author:  Cameron Riley;
    033 * Contributor(s):   David Gilbert (for Object Refinery Limited);
    034 *
    035 * Changes
    036 * -------
    037 * 23-Jan-2003 : Version 1, contributed by Cameron Riley (DG);
    038 * 25-Nov-2004 : Changed first 7 colors to softer shades (DG);
    039 * 03-Nov-2005 : Removed orange color, too close to yellow - see bug
    040 *               report 1328408 (DG);
    041 * ------------- JFREECHART 1.0.x ---------------------------------------------
    042 * 02-Feb-2007 : Removed author tags all over JFreeChart sources (DG);
    043 *
    044 */
    045
    046package org.jfree.chart;
    047
    048import java.awt.Color;
    049import java.awt.Paint;
    050
    051/**
    052 * Class to extend the number of Colors available to the charts. This
    053 * extends the java.awt.Color object and extends the number of final
    054 * Colors publically accessible.
    055 */
    056public class ChartColor extends Color {
    057
    058    /** A very dark red color. */
    059    public static final Color VERY_DARK_RED = new Color(0x80, 0x00, 0x00);
    060
    061    /** A dark red color. */
    062    public static final Color DARK_RED = new Color(0xc0, 0x00, 0x00);
    063
    064    /** A light red color. */
    065    public static final Color LIGHT_RED = new Color(0xFF, 0x40, 0x40);
    066
    067    /** A very light red color. */
    068    public static final Color VERY_LIGHT_RED = new Color(0xFF, 0x80, 0x80);
    069
    070    /** A very dark yellow color. */
    071    public static final Color VERY_DARK_YELLOW = new Color(0x80, 0x80, 0x00);
    072
    073    /** A dark yellow color. */
    074    public static final Color DARK_YELLOW = new Color(0xC0, 0xC0, 0x00);
    075
    076    /** A light yellow color. */
    077    public static final Color LIGHT_YELLOW = new Color(0xFF, 0xFF, 0x40);
    078
    079    /** A very light yellow color. */
    080    public static final Color VERY_LIGHT_YELLOW = new Color(0xFF, 0xFF, 0x80);
    081
    082    /** A very dark green color. */
    083    public static final Color VERY_DARK_GREEN = new Color(0x00, 0x80, 0x00);
    084
    085    /** A dark green color. */
    086    public static final Color DARK_GREEN = new Color(0x00, 0xC0, 0x00);
    087
    088    /** A light green color. */
    089    public static final Color LIGHT_GREEN = new Color(0x40, 0xFF, 0x40);
    090
    091    /** A very light green color. */
    092    public static final Color VERY_LIGHT_GREEN = new Color(0x80, 0xFF, 0x80);
    093
    094    /** A very dark cyan color. */
    095    public static final Color VERY_DARK_CYAN = new Color(0x00, 0x80, 0x80);
    096
    097    /** A dark cyan color. */
    098    public static final Color DARK_CYAN = new Color(0x00, 0xC0, 0xC0);
    099
    100    /** A light cyan color. */
    101    public static final Color LIGHT_CYAN = new Color(0x40, 0xFF, 0xFF);
    102
    103    /** Aa very light cyan color. */
    104    public static final Color VERY_LIGHT_CYAN = new Color(0x80, 0xFF, 0xFF);
    105
    106    /** A very dark blue color. */
    107    public static final Color VERY_DARK_BLUE = new Color(0x00, 0x00, 0x80);
    108
    109    /** A dark blue color. */
    110    public static final Color DARK_BLUE = new Color(0x00, 0x00, 0xC0);
    111
    112    /** A light blue color. */
    113    public static final Color LIGHT_BLUE = new Color(0x40, 0x40, 0xFF);
    114
    115    /** A very light blue color. */
    116    public static final Color VERY_LIGHT_BLUE = new Color(0x80, 0x80, 0xFF);
    117
    118    /** A very dark magenta/purple color. */
    119    public static final Color VERY_DARK_MAGENTA = new Color(0x80, 0x00, 0x80);
    120
    121    /** A dark magenta color. */
    122    public static final Color DARK_MAGENTA = new Color(0xC0, 0x00, 0xC0);
    123
    124    /** A light magenta color. */
    125    public static final Color LIGHT_MAGENTA = new Color(0xFF, 0x40, 0xFF);
    126
    127    /** A very light magenta color. */
    128    public static final Color VERY_LIGHT_MAGENTA = new Color(0xFF, 0x80, 0xFF);
    129
    130    /**
    131     * Creates a Color with an opaque sRGB with red, green and blue values in
    132     * range 0-255.
    133     *
    134     * @param r  the red component in range 0x00-0xFF.
    135     * @param g  the green component in range 0x00-0xFF.
    136     * @param b  the blue component in range 0x00-0xFF.
    137     */
    138    public ChartColor(int r, int g, int b) {
    139        super(r, g, b);
    140    }
    141
    142    /**
    143     * Convenience method to return an array of <code>Paint</code> objects that
    144     * represent the pre-defined colors in the <code>Color</code> and
    145     * <code>ChartColor</code> objects.
    146     *
    147     * @return An array of objects with the <code>Paint</code> interface.
    148     */
    149    public static Paint[] createDefaultPaintArray() {
    150
    151        return new Paint[] {
    152            new Color(0xFF, 0x55, 0x55),
    153            new Color(0x55, 0x55, 0xFF),
    154            new Color(0x55, 0xFF, 0x55),
    155            new Color(0xFF, 0xFF, 0x55),
    156            new Color(0xFF, 0x55, 0xFF),
    157            new Color(0x55, 0xFF, 0xFF),
    158            Color.pink,
    159            Color.gray,
    160            ChartColor.DARK_RED,
    161            ChartColor.DARK_BLUE,
    162            ChartColor.DARK_GREEN,
    163            ChartColor.DARK_YELLOW,
    164            ChartColor.DARK_MAGENTA,
    165            ChartColor.DARK_CYAN,
    166            Color.darkGray,
    167            ChartColor.LIGHT_RED,
    168            ChartColor.LIGHT_BLUE,
    169            ChartColor.LIGHT_GREEN,
    170            ChartColor.LIGHT_YELLOW,
    171            ChartColor.LIGHT_MAGENTA,
    172            ChartColor.LIGHT_CYAN,
    173            Color.lightGray,
    174            ChartColor.VERY_DARK_RED,
    175            ChartColor.VERY_DARK_BLUE,
    176            ChartColor.VERY_DARK_GREEN,
    177            ChartColor.VERY_DARK_YELLOW,
    178            ChartColor.VERY_DARK_MAGENTA,
    179            ChartColor.VERY_DARK_CYAN,
    180            ChartColor.VERY_LIGHT_RED,
    181            ChartColor.VERY_LIGHT_BLUE,
    182            ChartColor.VERY_LIGHT_GREEN,
    183            ChartColor.VERY_LIGHT_YELLOW,
    184            ChartColor.VERY_LIGHT_MAGENTA,
    185            ChartColor.VERY_LIGHT_CYAN
    186        };
    187    }
    188
    189}