001/* ===========================================================
002 * JFreeChart : a free chart library for the Java(tm) platform
003 * ===========================================================
004 *
005 * (C) Copyright 2000-2007, 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 * RainbowPalette.java
029 * -------------------
030 * (C) Copyright 2002-2007, by David M. O'Donnell and Contributors.
031 *
032 * Original Author:  David M. O'Donnell;
033 * Contributor(s):   David Gilbert (for Object Refinery Limited);
034 *
035 * Changes
036 * -------
037 * 26-Nov-2002 : Version 1 contributed by David M. O'Donnell (DG);
038 * 26-Mar-2003 : Implemented Serializable (DG);
039 * ------------- JFREECHART 1.0.x ---------------------------------------------
040 * 31-Jan-2007 : Deprecated (DG);
041 *
042 */
043
044package org.jfree.chart.plot;
045
046import java.io.Serializable;
047
048import org.jfree.chart.renderer.xy.XYBlockRenderer;
049
050
051/**
052 * Contains the data to construct an 8-bit rainbow palette
053 * This come from an old application which ran on 8-bit graphics device.
054 * Thus indexes 0 and 1 were preserved for rendering white and black 
055 * respectively.
056 * 
057 * @deprecated This class is no longer supported (as of version 1.0.4).  If 
058 *     you are creating contour plots, please try to use {@link XYPlot} and 
059 *     {@link XYBlockRenderer}.
060 */
061public class RainbowPalette extends ColorPalette implements Serializable {
062
063    /** For serialization. */
064    private static final long serialVersionUID = -1906707320728242478L;
065    
066    /** The red values. */
067    private int[] red = {255,   0, 120, 115, 111, 106, 102,  97,  
068                          93,  88,  84,  79,  75,  70,  66,  61,
069                          57,  52,  48,  43,  39,  34,  30,  25, 
070                          21,  16,  12,   7,   3,   0,   0,   0,
071                           0,   0,   0,   0,   0,   0,   0,   0, 
072                           0,   0,   0,   0,   0,   0,   0,   0,
073                           0,   0,   0,   0,   0,   0,   0,   0, 
074                           0,   0,   0,   0,   0,   0,   0,   0,
075                           0,   0,   0,   0,   0,   0,   0,   0, 
076                           0,   0,   0,   0,   0,   0,   0,   0,
077                           0,   0,   0,   0,   0,   0,   0,   0, 
078                           0,   0,   0,   0,   0,   0,   0,   0,
079                           0,   0,   0,   0,   0,   0,   0,   0, 
080                           0,   0,   0,   0,   0,   0,   0,   0,
081                           0,   0,   0,   0,   0,   0,   0,   0, 
082                           0,   0,   0,   0,   0,   0,   0,   0,
083                           0,   0,   0,   0,   0,   0,   0,   0, 
084                           0,   0,   0,   0,   0,   0,   1,   5,
085                          10,  14,  19,  23,  28,  32,  37,  41, 
086                          46,  50,  55,  59,  64,  68,  73,  77,
087                          82,  86,  91,  95, 100, 104, 109, 113, 
088                         118, 123, 127, 132, 136, 141, 145, 150,
089                         154, 159, 163, 168, 172, 177, 181, 186, 
090                         190, 195, 199, 204, 208, 213, 217, 222,
091                         226, 231, 235, 240, 244, 249, 253, 255, 
092                         255, 255, 255, 255, 255, 255, 255, 255,
093                         255, 255, 255, 255, 255, 255, 255, 255, 
094                         255, 255, 255, 255, 255, 255, 255, 255,
095                         255, 255, 255, 255, 255, 255, 255, 255, 
096                         255, 255, 255, 255, 255, 255, 255, 255,
097                         255, 255, 255, 255, 255, 255, 255, 255, 
098                         255, 255, 255, 255, 255, 255, 255, 255};
099
100    /** The green values. */
101    private int[] green = {255,   0,   0,   0,   0,   0,   0,   0,
102                             0,   0,   0,   0,   0,   0,   0,   0,
103                             0,   0,   0,   0,   0,   0,   0,   0,
104                             0,   0,   0,   0,   0,   2,   6,  11,
105                            15,  20,  24,  29,  33,  38,  42,  47,
106                            51,  56,  60,  65,  69,  74,  78,  83,
107                            87,  92,  96, 101, 105, 110, 114, 119,
108                           123, 128, 132, 137, 141, 146, 150, 155,
109                           159, 164, 168, 173, 177, 182, 186, 191, 
110                           195, 200, 204, 209, 213, 218, 222, 227,
111                           231, 236, 241, 245, 250, 254, 255, 255, 
112                           255, 255, 255, 255, 255, 255, 255, 255,
113                           255, 255, 255, 255, 255, 255, 255, 255, 
114                           255, 255, 255, 255, 255, 255, 255, 255,
115                           255, 255, 255, 255, 255, 255, 255, 255, 
116                           255, 255, 255, 255, 255, 255, 255, 255,
117                           255, 255, 255, 255, 255, 255, 255, 255, 
118                           255, 255, 255, 255, 255, 255, 255, 255,
119                           255, 255, 255, 255, 255, 255, 255, 255, 
120                           255, 255, 255, 255, 255, 255, 255, 255,
121                           255, 255, 255, 255, 255, 255, 255, 255, 
122                           255, 255, 255, 255, 255, 255, 255, 255,
123                           255, 255, 255, 255, 255, 255, 255, 255, 
124                           255, 255, 255, 255, 255, 255, 255, 255,
125                           255, 255, 255, 255, 255, 255, 255, 252, 
126                           248, 243, 239, 234, 230, 225, 221, 216,
127                           212, 207, 203, 198, 194, 189, 185, 180, 
128                           176, 171, 167, 162, 158, 153, 149, 144,
129                           140, 135, 131, 126, 122, 117, 113, 108, 
130                           104,  99,  95,  90,  86,  81,  77,  72,
131                            68,  63,  59,  54,  50,  45,  41,  36,  
132                            32,  27,  23,  18,  14,   9,   5,   0};
133
134    /** The blue values. */
135    private int[] blue = {255,   0, 255, 255, 255, 255, 255, 255, 
136                          255, 255, 255, 255, 255, 255, 255, 255,
137                          255, 255, 255, 255, 255, 255, 255, 255, 
138                          255, 255, 255, 255, 255, 255, 255, 255,
139                          255, 255, 255, 255, 255, 255, 255, 255, 
140                          255, 255, 255, 255, 255, 255, 255, 255,
141                          255, 255, 255, 255, 255, 255, 255, 255, 
142                          255, 255, 255, 255, 255, 255, 255, 255,
143                          255, 255, 255, 255, 255, 255, 255, 255, 
144                          255, 255, 255, 255, 255, 255, 255, 255,
145                          255, 255, 255, 255, 255, 255, 251, 247, 
146                          242, 238, 233, 229, 224, 220, 215, 211,
147                          206, 202, 197, 193, 188, 184, 179, 175, 
148                          170, 166, 161, 157, 152, 148, 143, 139,
149                          134, 130, 125, 121, 116, 112, 107, 103,  
150                          98,  94,  89,  85,  80,  76,  71,  67,
151                           62,  58,  53,  49,  44,  40,  35,  31,  
152                           26,  22,  17,  13,   8,   4,   0,   0,
153                            0,   0,   0,   0,   0,   0,   0,   0,   
154                            0,   0,   0,   0,   0,   0,   0,   0,
155                            0,   0,   0,   0,   0,   0,   0,   0,   
156                            0,   0,   0,   0,   0,   0,   0,   0,
157                            0,   0,   0,   0,   0,   0,   0,   0,   
158                            0,   0,   0,   0,   0,   0,   0,   0,
159                            0,   0,   0,   0,   0,   0,   0,   0,  
160                            0,   0,   0,   0,   0,   0,   0,   0,
161                            0,   0,   0,   0,   0,   0,   0,   0,   
162                            0,   0,   0,   0,   0,   0,   0,   0,
163                            0,   0,   0,   0,   0,   0,   0,   0,  
164                            0,   0,   0,   0,   0,   0,   0,   0,
165                            0,   0,   0,   0,   0,   0,   0,   0,  
166                            0,   0,   0,   0,   0,   0,   0,   0};
167
168    /**
169     * Default constructor.
170     */
171    public RainbowPalette() {
172        super();
173        initialize();
174    }
175
176    /**
177     * Intializes the palettes indexes
178     */
179    public void initialize() {
180
181        setPaletteName("Rainbow");
182
183        this.r = new int[this.red.length];
184        this.g = new int[this.green.length];
185        this.b = new int[this.blue.length];
186        System.arraycopy(this.red, 0, this.r, 0, this.red.length);
187        System.arraycopy(this.green, 0, this.g, 0, this.green.length);
188        System.arraycopy(this.blue, 0, this.b, 0, this.blue.length);
189
190    }
191
192}