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: * Zoomable.java
029: * -------------
030: *
031: * (C) Copyright 2004, 2006, by Object Refinery Limited and Contributors.
032: *
033: * Original Author: David Gilbert (for Object Refinery Limited);
034: * Contributor(s): Rune Fauske;
035: *
036: * Changes
037: * -------
038: * 12-Nov-2004 : Version 1 (DG);
039: * 26-Jan-2004 : Added getOrientation() method (DG);
040: * 04-Sep-2006 : Added credit for Rune Fauske, see patch 1050659 (DG);
041: *
042: */
043:
044: package org.jfree.chart.plot;
045:
046: import java.awt.geom.Point2D;
047:
048: import org.jfree.chart.ChartPanel;
049:
050: /**
051: * A plot that is zoomable must implement this interface to provide a
052: * mechanism for the {@link ChartPanel} to control the zooming.
053: */
054: public interface Zoomable {
055:
056: /**
057: * Returns <code>true</code> if the plot's domain is zoomable, and
058: * <code>false</code> otherwise.
059: *
060: * @return A boolean.
061: */
062: public boolean isDomainZoomable();
063:
064: /**
065: * Returns <code>true</code> if the plot's range is zoomable, and
066: * <code>false</code> otherwise.
067: *
068: * @return A boolean.
069: */
070: public boolean isRangeZoomable();
071:
072: /**
073: * Returns the orientation of the plot.
074: *
075: * @return The orientation.
076: */
077: public PlotOrientation getOrientation();
078:
079: /**
080: * Multiplies the range on the domain axis/axes by the specified factor.
081: *
082: * @param factor the zoom factor.
083: * @param state the plot state.
084: * @param source the source point (in Java2D coordinates).
085: */
086: public void zoomDomainAxes(double factor, PlotRenderingInfo state,
087: Point2D source);
088:
089: /**
090: * Zooms in on the domain axes.
091: *
092: * @param lowerPercent the new lower bound.
093: * @param upperPercent the new upper bound.
094: * @param state the plot state.
095: * @param source the source point (in Java2D coordinates).
096: */
097: public void zoomDomainAxes(double lowerPercent,
098: double upperPercent, PlotRenderingInfo state, Point2D source);
099:
100: /**
101: * Multiplies the range on the range axis/axes by the specified factor.
102: *
103: * @param factor the zoom factor.
104: * @param state the plot state.
105: * @param source the source point (in Java2D coordinates).
106: */
107: public void zoomRangeAxes(double factor, PlotRenderingInfo state,
108: Point2D source);
109:
110: /**
111: * Zooms in on the range axes.
112: *
113: * @param lowerPercent the new lower bound.
114: * @param upperPercent the new upper bound.
115: * @param state the plot state.
116: * @param source the source point (in Java2D coordinates).
117: */
118: public void zoomRangeAxes(double lowerPercent, double upperPercent,
119: PlotRenderingInfo state, Point2D source);
120:
121: }
|