    001    /* ===========================================================
    002     * JFreeChart : a free chart library for the Java(tm) platform
    003     * ===========================================================
    004     *
    005     * (C) Copyright 2000-2005, 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     * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
    025     * in the United States and other countries.]
    026     *
    027     * ---------------
    028     * ChartColor.java
    029     * ---------------
    030     * (C) Copyright 2003-2005, by Cameron Riley and Contributors.
    031     *
    032     * Original Author:  Cameron Riley;
    033     * Contributor(s):   David Gilbert (for Object Refinery Limited);
    034     *
    035     * $Id: ChartColor.java,v 1.3.2.2 2005/11/03 13:04:13 mungady Exp $
    036     *
    037     * Changes
    038     * -------
    039     * 23-Jan-2003 : Version 1, contributed by Cameron Riley (DG);
    040     * 25-Nov-2004 : Changed first 7 colors to softer shades (DG);
    041     * 03-Nov-2005 : Removed orange color, too close to yellow - see bug
    042     *               report 1328408 (DG);
    043     *
    044     */
    045
    046    package org.jfree.chart;
    047
    048    import java.awt.Color;
    049    import 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     *
    056     * @author <a href="criley@ekmail.com">Cameron Riley</a>
    057     */
    058    public class ChartColor extends Color {
    059
    060        /** A very dark red color. */
    061        public static final Color VERY_DARK_RED = new Color(0x80, 0x00, 0x00);
    062
    063        /** A dark red color. */
    064        public static final Color DARK_RED = new Color(0xc0, 0x00, 0x00);
    065
    066        /** A light red color. */
    067        public static final Color LIGHT_RED = new Color(0xFF, 0x40, 0x40);
    068
    069        /** A very light red color. */
    070        public static final Color VERY_LIGHT_RED = new Color(0xFF, 0x80, 0x80);
    071
    072        /** A very dark yellow color. */
    073        public static final Color VERY_DARK_YELLOW = new Color(0x80, 0x80, 0x00);
    074
    075        /** A dark yellow color. */
    076        public static final Color DARK_YELLOW = new Color(0xC0, 0xC0, 0x00);
    077
    078        /** A light yellow color. */
    079        public static final Color LIGHT_YELLOW = new Color(0xFF, 0xFF, 0x40);
    080
    081        /** A very light yellow color. */
    082        public static final Color VERY_LIGHT_YELLOW = new Color(0xFF, 0xFF, 0x80);
    083
    084        /** A very dark green color. */
    085        public static final Color VERY_DARK_GREEN = new Color(0x00, 0x80, 0x00);
    086
    087        /** A dark green color. */
    088        public static final Color DARK_GREEN = new Color(0x00, 0xC0, 0x00);
    089
    090        /** A light green color. */
    091        public static final Color LIGHT_GREEN = new Color(0x40, 0xFF, 0x40);
    092
    093        /** A very light green color. */
    094        public static final Color VERY_LIGHT_GREEN = new Color(0x80, 0xFF, 0x80);
    095
    096        /** A very dark cyan color. */
    097        public static final Color VERY_DARK_CYAN = new Color(0x00, 0x80, 0x80);
    098
    099        /** A dark cyan color. */
    100        public static final Color DARK_CYAN = new Color(0x00, 0xC0, 0xC0);
    101
    102        /** A light cyan color. */
    103        public static final Color LIGHT_CYAN = new Color(0x40, 0xFF, 0xFF);
    104
    105        /** Aa very light cyan color. */
    106        public static final Color VERY_LIGHT_CYAN = new Color(0x80, 0xFF, 0xFF);
    107
    108        /** A very dark blue color. */
    109        public static final Color VERY_DARK_BLUE = new Color(0x00, 0x00, 0x80);
    110
    111        /** A dark blue color. */
    112        public static final Color DARK_BLUE = new Color(0x00, 0x00, 0xC0);
    113
    114        /** A light blue color. */
    115        public static final Color LIGHT_BLUE = new Color(0x40, 0x40, 0xFF);
    116
    117        /** A very light blue color. */
    118        public static final Color VERY_LIGHT_BLUE = new Color(0x80, 0x80, 0xFF);
    119
    120        /** A very dark magenta/purple color. */
    121        public static final Color VERY_DARK_MAGENTA = new Color(0x80, 0x00, 0x80);
    122
    123        /** A dark magenta color. */
    124        public static final Color DARK_MAGENTA = new Color(0xC0, 0x00, 0xC0);
    125
    126        /** A light magenta color. */
    127        public static final Color LIGHT_MAGENTA = new Color(0xFF, 0x40, 0xFF);
    128
    129        /** A very light magenta color. */
    130        public static final Color VERY_LIGHT_MAGENTA = new Color(0xFF, 0x80, 0xFF);
    131
    132        /**
    133         * Creates a Color with an opaque sRGB with red, green and blue values in
    134         * range 0-255.
    135         *
    136         * @param r  the red component in range 0x00-0xFF.
    137         * @param g  the green component in range 0x00-0xFF.
    138         * @param b  the blue component in range 0x00-0xFF.
    139         */
    140        public ChartColor(int r, int g, int b) {
    141            super(r, g, b);
    142        }
    143
    144        /**
    145         * Convenience method to return an array of <code>Paint</code> objects that
    146         * represent the pre-defined colors in the <code>Color<code> and
    147         * <code>ChartColor</code> objects.
    148         *
    149         * @return An array of objects with the <code>Paint</code> interface.
    150         */
    151        public static Paint[] createDefaultPaintArray() {
    152
    153            return new Paint[] {
    154                new Color(0xFF, 0x55, 0x55),
    155                new Color(0x55, 0x55, 0xFF),
    156                new Color(0x55, 0xFF, 0x55),
    157                new Color(0xFF, 0xFF, 0x55),
    158                new Color(0xFF, 0x55, 0xFF),
    159                new Color(0x55, 0xFF, 0xFF),
    160                Color.pink,
    161                Color.gray,
    162                ChartColor.DARK_RED,
    163                ChartColor.DARK_BLUE,
    164                ChartColor.DARK_GREEN,
    165                ChartColor.DARK_YELLOW,
    166                ChartColor.DARK_MAGENTA,
    167                ChartColor.DARK_CYAN,
    168                Color.darkGray,
    169                ChartColor.LIGHT_RED,
    170                ChartColor.LIGHT_BLUE,
    171                ChartColor.LIGHT_GREEN,
    172                ChartColor.LIGHT_YELLOW,
    173                ChartColor.LIGHT_MAGENTA,
    174                ChartColor.LIGHT_CYAN,
    175                Color.lightGray,
    176                ChartColor.VERY_DARK_RED,
    177                ChartColor.VERY_DARK_BLUE,
    178                ChartColor.VERY_DARK_GREEN,
    179                ChartColor.VERY_DARK_YELLOW,
    180                ChartColor.VERY_DARK_MAGENTA,
    181                ChartColor.VERY_DARK_CYAN,
    182                ChartColor.VERY_LIGHT_RED,
    183                ChartColor.VERY_LIGHT_BLUE,
    184                ChartColor.VERY_LIGHT_GREEN,
    185                ChartColor.VERY_LIGHT_YELLOW,
    186                ChartColor.VERY_LIGHT_MAGENTA,
    187                ChartColor.VERY_LIGHT_CYAN
    188            };
    189        }
    190
    191    }