001    /* ===========================================================
002     * JFreeChart : a free chart library for the Java(tm) platform
003     * ===========================================================
004     *
005     * (C) Copyright 2000-2009, 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     * RendererChangeEvent.java
029     * ------------------------
030     * (C) Copyright 2003-2009, by Object Refinery Limited.
031     *
032     * Original Author:  David Gilbert (for Object Refinery Limited);
033     * Contributor(s):   -;
034     *
035     * Changes
036     * -------
037     * 23-Oct-2003 : Version 1 (DG);
038     * ------------- JFREECHART 1.0.x ---------------------------------------------
039     * 04-Apr-2007 : Fixed typo in API docs (DG);
040     * 26-Mar-2009 : Added flag to signal visible series change (DG);
041     *
042     */
043    
044    package org.jfree.chart.event;
045    
046    /**
047     * An event that can be forwarded to any {@link RendererChangeListener} to
048     * signal a change to a renderer.
049     */
050    public class RendererChangeEvent extends ChartChangeEvent {
051    
052        /** The renderer that generated the event. */
053        private Object renderer;
054    
055        /**
056         * A flag that indicates whether this event relates to a change in the
057         * series visibility.  If so, the receiver (if it is a plot) may want to
058         * update the axis bounds.
059         *
060         * @since 1.0.13
061         */
062        private boolean seriesVisibilityChanged;
063    
064        /**
065         * Creates a new event.
066         *
067         * @param renderer  the renderer that generated the event.
068         */
069        public RendererChangeEvent(Object renderer) {
070            this(renderer, false);
071        }
072    
073        /**
074         * Creates a new event.
075         *
076         * @param renderer  the renderer that generated the event.
077         * @param seriesVisibilityChanged  a flag that indicates whether or not
078         *         the event relates to a change in the series visibility flags.
079         */
080        public RendererChangeEvent(Object renderer,
081                boolean seriesVisibilityChanged) {
082            super(renderer);
083            this.renderer = renderer;
084            this.seriesVisibilityChanged = seriesVisibilityChanged;
085        }
086    
087        /**
088         * Returns the renderer that generated the event.
089         *
090         * @return The renderer that generated the event.
091         */
092        public Object getRenderer() {
093            return this.renderer;
094        }
095    
096        /**
097         * Returns the flag that indicates whether or not the event relates to
098         * a change in series visibility.
099         *
100         * @return A boolean.
101         *
102         * @since 1.0.13
103         */
104        public boolean getSeriesVisibilityChanged() {
105            return this.seriesVisibilityChanged;
106        }
107    
108    }