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    
044    package org.jfree.chart.plot;
045    
046    import java.io.Serializable;
047    
048    import 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     */
061    public 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    }