    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    }