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