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.engine;
029:
030: import java.awt.Color;
031: import java.util.SortedSet;
032:
033: import org.jfree.chart.plot.PlotOrientation;
034:
035: /**
036: * Chart plots define chart appearance and display details such as colors, legend or labels. Each plot may have different
037: * characteristics, depending on the chart type it belongs to. This is the superinterface for all plots and contains common
038: * properties.
039: * @author Teodor Danciu (teodord@users.sourceforge.net)
040: * @version $Id: JRChartPlot.java 1577 2007-02-09 11:25:48Z teodord $
041: */
042: public interface JRChartPlot {
043:
044: /**
045: * Gets the chart associated with this chart plot, if available.
046: * Implementations can return null on this method, especially if the chart plot
047: * is reused by multiple charts, which is not recommended since it prevents style properties
048: * inheritence from parent chart.
049: */
050: public JRChart getChart();
051:
052: /**
053: * Gets the chart background color.
054: */
055: public Color getBackcolor();
056:
057: /**
058: *
059: */
060: public Color getOwnBackcolor();
061:
062: /**
063: * Sets the chart background color.
064: */
065: public void setBackcolor(Color backcolor);
066:
067: /**
068: * Gets the plot orientation (horizontal or vertical).
069: */
070: public PlotOrientation getOrientation();
071:
072: /**
073: * Sets the plot orientation (horizontal or vertical).
074: */
075: public void setOrientation(PlotOrientation orientation);
076:
077: /**
078: * Gets the transparency factor for this plot background. The range is from 0 to 1, where 0 means transparent and 1
079: * opaque. The default is 1.
080: * @return a float value between 0 and 1.
081: */
082: public float getBackgroundAlpha();
083:
084: /**
085: * Sets the transparency factor for this plot background. The range is from 0 to 1, where 0 means transparent and 1
086: * opaque. The default is 1.
087: */
088: public void setBackgroundAlpha(float backgroundAlpha);
089:
090: /**
091: * Gets the transparency factor for this plot foreground. The range is from 0 to 1, where 0 means transparent and 1
092: * opaque. The default is 1.
093: * @return a float value between 0 and 1.
094: */
095: public float getForegroundAlpha();
096:
097: /**
098: * Sets the transparency factor for this plot foreground. The range is from 0 to 1, where 0 means transparent and 1
099: * opaque. The default is 1.
100: */
101: public void setForegroundAlpha(float foregroundAlpha);
102:
103: /**
104: * Gets the angle in degrees to rotate the data axis labels. The range is -360 to 360. A positive value angles
105: * the label so it reads downwards wile a negative value angles the label so it reads upwards. Only charts that
106: * use a category based axis (such as line or bar charts) support label rotation.
107: */
108: public double getLabelRotation();
109:
110: /**
111: * Sets the angle in degrees to rotate the data axis labels. The range is -360 to 360. A positive value angles
112: * the label so it reads downwards wile a negative value angles the label so it reads upwards. Only charts that
113: * use a category based axis (such as line or bar charts) support label rotation.
114: */
115: public void setLabelRotation(double labelRotation);
116:
117: /**
118: * Returns a list of all the defined series colors. Every entry in the list is of type JRChartPlot.JRSeriesColor.
119: * If there are no defined series colors this method will return an empty list, not null.
120: */
121: public SortedSet getSeriesColors();
122:
123: /**
124: * Removes all defined series colors.
125: */
126: public void clearSeriesColors();
127:
128: /**
129: * Adds the specified series color to the plot.
130: */
131: public void addSeriesColor(JRSeriesColor seriesColor);
132:
133: /**
134: *
135: */
136: public void collectExpressions(JRExpressionCollector collector);
137:
138: public interface JRSeriesColor {
139: /**
140: * Returns the series order that this color applies to. The series order is relative to
141: * the series order of all other <code>JRSeriesColor</code>s defined for this plot. The
142: * relative ordering defines the order of the colors in the series.
143: */
144: public int getSeriesOrder();
145:
146: /**
147: * Returns the color to use for this series.
148: */
149: public Color getColor();
150: }
151: }
|