001: /*
002: * ============================================================================
003: * GNU Lesser General Public License
004: * ============================================================================
005: *
006: * JasperReports - Free Java report-generating library.
007: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
022: *
023: * JasperSoft Corporation
024: * 303 Second Street, Suite 450 North
025: * San Francisco, CA 94107
026: * http://www.jaspersoft.com
027: */
028: package net.sf.jasperreports.charts;
029:
030: import net.sf.jasperreports.charts.JRDataRange;
031: import net.sf.jasperreports.charts.JRValueDisplay;
032: import net.sf.jasperreports.engine.JRChartPlot;
033:
034: import java.awt.Color;
035: import java.util.List;
036:
037: /**
038: * Represents the display options of a Meter Chart. A meter chart consists of a dial,
039: * a needle pointing to the current value on the dial, and the value itself. The Meter
040: * can be broken up into shaded regions to highlight portions of the range.
041: *
042: * @author Barry Klawans (bklawans@users.sourceforge.net)
043: * @version $Id: JRMeterPlot.java 1792 2007-07-30 08:57:32Z teodord $
044: */
045: public interface JRMeterPlot extends JRChartPlot {
046: /**
047: * The portion of the circle described by the Meter that is not occupied by the
048: * Meter is drawn as a chord. (A straight line connects the ends.)
049: */
050: public static final byte SHAPE_CHORD = 0;
051:
052: /**
053: * The portion of the circle described by the Meter that is not occupied by the
054: * Meter is drawn as a circle.
055: */
056: public static final byte SHAPE_CIRCLE = 1;
057:
058: /**
059: * The portion of the circle described by the Meter that is not occupied by the
060: * Meter is not drawn.
061: */
062: public static final byte SHAPE_PIE = 2;
063:
064: /**
065: * Returns the range of values that the Meter can display.
066: *
067: * @return the range of values that the Meter can display
068: */
069: public JRDataRange getDataRange();
070:
071: /**
072: * Returns a description of how the value of the Meter is displayed. This includes
073: * any font and color information, the location of the value, a formatting mask and
074: * an optional "units" string to append to the value.
075: *
076: * @return a description of how the value of the Meter is displayed.
077: */
078: public JRValueDisplay getValueDisplay();
079:
080: /**
081: * Returns the shape of the Meter. The shape is only relevant if the Meter face is
082: * over 180 degrees wide, and controls how the portiong of the circle described by the
083: * Meter but outside of the Meter is drawn. (If the meter is 240 degrees wide the shape
084: * setting controls how the remaining 120 degrees is displayed.)
085: * <br><br>
086: * The value returned is one of the <code>SHAPE_</code> constants defined in this class.
087: *
088: * @return a description of how the value of the Meter is displayed.
089: */
090: public byte getShape();
091:
092: /**
093: * Returns a list of all the intervals contained in this Meter. The return value is never
094: * <code>null</code> but can be an empty list. Each element in the list is a
095: * {@link net.sf.jasperreports.charts.util.JRMeterInterval <code>net.sf.jasperreports.charts.util.JRMeterInterval</code>}
096: *
097: * @return a list of all the intervals contained in this Meter
098: */
099: public List getIntervals();
100:
101: /**
102: * Returns the size of the Meter face in degrees.
103: *
104: * @return the size of the Meter face in degrees
105: */
106: public int getMeterAngle();
107:
108: /**
109: * Returns the name of the units that the Meter is displaying. This value will be
110: * appended to the value when displayed.
111: *
112: * @return the name of the units that the Meter is displaying
113: */
114: public String getUnits();
115:
116: /**
117: * Returns the spacing between the ticks on the face of the meter. The spacing is relative
118: * to the range that the meter is displaying - if the range is 0 to 500 and the tick interval
119: * is 50 then 10 ticks will be displayed.
120: *
121: * @return the spacing between the ticks on the face of the meter
122: */
123: public double getTickInterval();
124:
125: /**
126: * Returns the background color of the meter. This is the color of the meter's face.
127: *
128: * @return the background color of the meter.
129: */
130: public Color getMeterBackgroundColor();
131:
132: /**
133: * Returns the color used when drawing the meter's pointer.
134: *
135: * @return the color used when drawing the meter's pointer
136: */
137: public Color getNeedleColor();
138:
139: /**
140: * Returns the color used when drawing tick marks on the meter.
141: *
142: * @return the color used when drawing tick marks on the meter
143: */
144: public Color getTickColor();
145: }
|