001    /* ===========================================================
002     * JFreeChart : a free chart library for the Java(tm) platform
003     * ===========================================================
004     *
005     * (C) Copyright 2000-2006, 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     * DrawableLegendItem.java
029     * -----------------------
030     * (C) Copyright 2002-2006, by Object Refinery Limited and Contributors.
031     *
032     * Original Author:  David Gilbert (for Object Refinery Limited);
033     * Contributor(s):   Luke Quinane;
034     *                   Barak Naveh;
035     *
036     * $Id: DrawableLegendItem.java,v 1.3.2.2 2006/08/01 16:10:44 mungady Exp $
037     *
038     * Changes
039     * -------
040     * 07-Feb-2002 : Version 1 (DG);
041     * 23-Sep-2002 : Renamed LegendItem --> DrawableLegendItem (DG);
042     * 02-Oct-2002 : Fixed errors reported by Checkstyle (DG);
043     * 08-Oct-2003 : Applied patch for displaying series line style, contributed by 
044     *               Luke Quinane (DG);
045     * 27-Mar-2004 : Added getMaxX() and getMaxY() methods (BN);
046     * 27-Jan-2005 : Cleared out code that belongs in the LegendItem class (DG);
047     * 
048     */
049    
050    package org.jfree.chart;
051    
052    import java.awt.Shape;
053    import java.awt.geom.Line2D;
054    import java.awt.geom.Point2D;
055    
056    /**
057     * This class contains a single legend item along with position details for 
058     * drawing the item on a particular chart.
059     * 
060     * @deprecated This class is not used by JFreeChart.
061     */
062    public class DrawableLegendItem {
063    
064        /** 
065         * The legend item (encapsulates information about the label, color and 
066         * shape). 
067         */
068        private LegendItem item;
069    
070        /** The x-coordinate for the item's location. */
071        private double x;
072    
073        /** The y-coordinate for the item's location. */
074        private double y;
075    
076        /** The width of the item. */
077        private double width;
078    
079        /** The height of the item. */
080        private double height;
081    
082        /** A shape used to indicate color on the legend. */
083        private Shape marker;
084        
085        /** A line used to indicate the series stroke on the legend */
086        private Line2D line;
087    
088        /** The label position within the item. */
089        private Point2D labelPosition;
090    
091        /**
092         * Create a legend item.
093         *
094         * @param item  the legend item for display.
095         */
096        public DrawableLegendItem(LegendItem item) {
097            this.item = item;
098        }
099    
100        /**
101         * Returns the legend item.
102         *
103         * @return The legend item.
104         */
105        public LegendItem getItem() {
106            return this.item;
107        }
108    
109        /**
110         * Get the x-coordinate for the item's location.
111         *
112         * @return The x-coordinate for the item's location.
113         */
114        public double getX() {
115            return this.x;
116        }
117    
118        /**
119         * Set the x-coordinate for the item's location.
120         *
121         * @param x  the x-coordinate.
122         */
123        public void setX(double x) {
124            this.x = x;
125        }
126    
127        /**
128         * Get the y-coordinate for the item's location.
129         *
130         * @return The y-coordinate for the item's location.
131         */
132        public double getY() {
133            return this.y;
134        }
135    
136        /**
137         * Set the y-coordinate for the item's location.
138         *
139         * @param y  the y-coordinate.
140         */
141        public void setY(double y) {
142            this.y = y;
143        }
144    
145        /**
146         * Get the width of this item.
147         *
148         * @return The width.
149         */
150        public double getWidth() {
151            return this.width;
152        }
153    
154        /**
155         * Get the height of this item.
156         *
157         * @return The height.
158         */
159        public double getHeight() {
160            return this.height;
161        }
162    
163        /**
164         * Returns the largest X coordinate of the framing rectangle of this legend 
165         * item.
166         * 
167         * @return The largest x coordinate of the framing rectangle of this legend 
168         *         item.
169         */
170        public double getMaxX() {
171            return getX() + getWidth();
172        }
173    
174        /**
175         * Returns the largest Y coordinate of the framing rectangle of this legend 
176         * item.
177         * 
178         * @return The largest Y coordinate of the framing rectangle of this legend 
179         *         item.
180         */
181        public double getMaxY() {
182            return getY() + getHeight();
183        }
184        
185        /**
186         * Get the marker.
187         *
188         * @return The shape used to indicate color on the legend for this item.
189         */
190        public Shape getMarker() {
191            return this.marker;
192        }
193    
194        /**
195         * Set the marker.
196         *
197         * @param marker  a shape used to indicate color on the legend for this 
198         *                item.
199         */
200        public void setMarker(Shape marker) {
201            this.marker = marker;
202        }
203        
204        /**
205         * Sets the line used to label this series.
206         *
207         * @param l the new line to use.
208         */
209        public void setLine(Line2D l) {
210            this.line = l;
211        }
212    
213        /**
214         * Returns the list.
215         * 
216         * @return The line.
217         */
218        public Line2D getLine() {
219            return this.line;
220        }
221    
222        /**
223         * Returns the label position.
224         *
225         * @return The label position.
226         */
227        public Point2D getLabelPosition() {
228            return this.labelPosition;
229        }
230    
231        /**
232         * Sets the label position.
233         *
234         * @param position  the label position.
235         */
236        public void setLabelPosition(Point2D position) {
237            this.labelPosition = position;
238        }
239    
240        /**
241         * Set the bounds of this item.
242         *
243         * @param x  x-coordinate for the item's location.
244         * @param y  y-coordinate for the item's location.
245         * @param width  the width of this item.
246         * @param height  the height of this item.
247         */
248        public void setBounds(double x, double y, double width, double height) {
249            this.x = x;
250            this.y = y;
251            this.width = width;
252            this.height = height;
253        }
254    
255    }