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: * Changes 36: * ------- 37: * 21-Jan-2003 : Added standard header (DG); 38: * ------------- JFREECHART 1.0.x --------------------------------------------- 39: * 31-Jan-2007 : Deprecated (DG); 40: * 41: */ 42: 43: package org.jfree.chart.editor; 44: 45: import java.awt.BasicStroke; 46: import java.awt.Component; 47: import java.awt.Dimension; 48: import java.awt.Graphics; 49: import java.awt.Graphics2D; 50: import java.awt.Insets; 51: import java.awt.RenderingHints; 52: import java.awt.geom.Line2D; 53: 54: import javax.swing.JComponent; 55: import javax.swing.JList; 56: import javax.swing.ListCellRenderer; 57: 58: import org.jfree.chart.plot.ColorPalette; 59: import org.jfree.chart.plot.XYPlot; 60: import org.jfree.chart.renderer.xy.XYBlockRenderer; 61: 62: 63: /** 64: * A panel that displays a palette sample. 65: * 66: * @deprecated This class is no longer supported (as of version 1.0.4). If 67: * you are creating contour plots, please try to use {@link XYPlot} and 68: * {@link XYBlockRenderer}. 69: */ 70: public class PaletteSample extends JComponent implements ListCellRenderer { 71: 72: /** The palette being displayed. */ 73: private ColorPalette palette; 74: 75: /** The preferred size of the component; */ 76: private Dimension preferredSize; 77: 78: /** 79: * Creates a new sample. 80: * 81: * @param palette the palette. 82: */ 83: public PaletteSample(ColorPalette palette) { 84: this.palette = palette; 85: this.preferredSize = new Dimension(80, 18); 86: } 87: 88: /** 89: * Returns a list cell renderer for the stroke, so the sample can be 90: * displayed in a list or combo. 91: * 92: * @param list the list component. 93: * @param value the value. 94: * @param index the index. 95: * @param isSelected a flag that indicates whether or not the item is 96: * selected. 97: * @param cellHasFocus a flag that indicates whether or not the cell has 98: * the focus. 99: * 100: * @return The renderer. 101: */ 102: public Component getListCellRendererComponent(JList list, Object value, 103: int index, 104: boolean isSelected, 105: boolean cellHasFocus) { 106: if (value instanceof PaletteSample) { 107: PaletteSample in = (PaletteSample) value; 108: setPalette(in.getPalette()); 109: } 110: return this; 111: } 112: 113: /** 114: * Returns the current palette object being displayed. 115: * 116: * @return The palette. 117: */ 118: public ColorPalette getPalette() { 119: return this.palette; 120: } 121: 122: /** 123: * Returns the preferred size of the component. 124: * 125: * @return The preferred size. 126: */ 127: public Dimension getPreferredSize() { 128: return this.preferredSize; 129: } 130: 131: /** 132: * Draws the sample. 133: * 134: * @param g the graphics device. 135: */ 136: public void paintComponent(Graphics g) { 137: 138: Graphics2D g2 = (Graphics2D) g; 139: g2.setRenderingHint( 140: RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF 141: ); 142: Dimension size = getSize(); 143: Insets insets = getInsets(); 144: double ww = size.getWidth() - insets.left - insets.right; 145: double hh = size.getHeight() - insets.top - insets.bottom; 146: 147: g2.setStroke(new BasicStroke(1.0f)); 148: 149: double y1 = insets.top; 150: double y2 = y1 + hh; 151: double xx = insets.left; 152: Line2D line = new Line2D.Double(); 153: int count = 0; 154: while (xx <= insets.left + ww) { 155: count++; 156: line.setLine(xx, y1, xx, y2); 157: g2.setPaint(this.palette.getColor(count)); 158: g2.draw(line); 159: xx += 1; 160: } 161: } 162: 163: /** 164: * Sets the palette object being displayed. 165: * 166: * @param palette the palette. 167: */ 168: public void setPalette(ColorPalette palette) { 169: this.palette = palette; 170: this.repaint(); 171: } 172: 173: }