Frames | No Frames |
1: /* =========================================================== 2: * JFreeChart : a free chart library for the Java(tm) platform 3: * =========================================================== 4: * 5: * (C) Copyright 2000-2007, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jfreechart/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * ------------------ 28: * PaletteSample.java 29: * ------------------ 30: * (C) Copyright 2002-2007, by David M. O'Donnell. 31: * 32: * Original Author: David M. O'Donnell; 33: * Contributor(s): David Gilbert (for Object Refinery Limited); 34: * 35: * $Id: PaletteSample.java,v 1.1.2.2 2007/01/31 15:56:18 mungady Exp $ 36: * 37: * Changes 38: * ------- 39: * 21-Jan-2003 : Added standard header (DG); 40: * ------------- JFREECHART 1.0.x --------------------------------------------- 41: * 31-Jan-2007 : Deprecated (DG); 42: * 43: */ 44: 45: package org.jfree.chart.editor; 46: 47: import java.awt.BasicStroke; 48: import java.awt.Component; 49: import java.awt.Dimension; 50: import java.awt.Graphics; 51: import java.awt.Graphics2D; 52: import java.awt.Insets; 53: import java.awt.RenderingHints; 54: import java.awt.geom.Line2D; 55: 56: import javax.swing.JComponent; 57: import javax.swing.JList; 58: import javax.swing.ListCellRenderer; 59: 60: import org.jfree.chart.plot.ColorPalette; 61: import org.jfree.chart.plot.XYPlot; 62: import org.jfree.chart.renderer.xy.XYBlockRenderer; 63: 64: 65: /** 66: * A panel that displays a palette sample. 67: * 68: * @deprecated This class is no longer supported. If you are creating 69: * contour plots, please try to use {@link XYPlot} and 70: * {@link XYBlockRenderer}. 71: */ 72: public class PaletteSample extends JComponent implements ListCellRenderer { 73: 74: /** The palette being displayed. */ 75: private ColorPalette palette; 76: 77: /** The preferred size of the component; */ 78: private Dimension preferredSize; 79: 80: /** 81: * Creates a new sample. 82: * 83: * @param palette the palette. 84: */ 85: public PaletteSample(ColorPalette palette) { 86: this.palette = palette; 87: this.preferredSize = new Dimension(80, 18); 88: } 89: 90: /** 91: * Returns a list cell renderer for the stroke, so the sample can be 92: * displayed in a list or combo. 93: * 94: * @param list the list component. 95: * @param value the value. 96: * @param index the index. 97: * @param isSelected a flag that indicates whether or not the item is 98: * selected. 99: * @param cellHasFocus a flag that indicates whether or not the cell has 100: * the focus. 101: * 102: * @return The renderer. 103: */ 104: public Component getListCellRendererComponent(JList list, Object value, 105: int index, 106: boolean isSelected, 107: boolean cellHasFocus) { 108: if (value instanceof PaletteSample) { 109: PaletteSample in = (PaletteSample) value; 110: setPalette(in.getPalette()); 111: } 112: return this; 113: } 114: 115: /** 116: * Returns the current palette object being displayed. 117: * 118: * @return The palette. 119: */ 120: public ColorPalette getPalette() { 121: return this.palette; 122: } 123: 124: /** 125: * Returns the preferred size of the component. 126: * 127: * @return The preferred size. 128: */ 129: public Dimension getPreferredSize() { 130: return this.preferredSize; 131: } 132: 133: /** 134: * Draws the sample. 135: * 136: * @param g the graphics device. 137: */ 138: public void paintComponent(Graphics g) { 139: 140: Graphics2D g2 = (Graphics2D) g; 141: g2.setRenderingHint( 142: RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF 143: ); 144: Dimension size = getSize(); 145: Insets insets = getInsets(); 146: double ww = size.getWidth() - insets.left - insets.right; 147: double hh = size.getHeight() - insets.top - insets.bottom; 148: 149: g2.setStroke(new BasicStroke(1.0f)); 150: 151: double y1 = insets.top; 152: double y2 = y1 + hh; 153: double xx = insets.left; 154: Line2D line = new Line2D.Double(); 155: int count = 0; 156: while (xx <= insets.left + ww) { 157: count++; 158: line.setLine(xx, y1, xx, y2); 159: g2.setPaint(this.palette.getColor(count)); 160: g2.draw(line); 161: xx += 1; 162: } 163: } 164: 165: /** 166: * Sets the palette object being displayed. 167: * 168: * @param palette the palette. 169: */ 170: public void setPalette(ColorPalette palette) { 171: this.palette = palette; 172: this.repaint(); 173: } 174: 175: }