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