Class GenericChartTheme
- java.lang.Object
-
- net.sf.jasperreports.chartthemes.spring.GenericChartTheme
-
- All Implemented Interfaces:
ChartTheme
- Direct Known Subclasses:
AegeanChartTheme
,EyeCandySixtiesChartTheme
public class GenericChartTheme extends Object implements ChartTheme
- Author:
- Sanda Zaharia (shertage@users.sourceforge.net)
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,?>
defaultAxisPropertiesMap
protected Map<String,?>
defaultChartPropertiesMap
protected Map<String,?>
defaultChartTypePropertiesMap
protected Map<String,?>
defaultPlotPropertiesMap
protected ThreadLocal<ChartContext>
threadLocalChartContext
protected ThreadLocal<FontUtil>
threadLocalFontUtil
-
Constructor Summary
Constructors Modifier Constructor Description protected
GenericChartTheme()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
calculateTickUnits(org.jfree.chart.axis.Axis axis, boolean isRangeAxis, String timePeriodUnit)
For a given axis, adjust the tick unit size, in order to have a customizable number of ticks on that axisprotected void
configureAxis(org.jfree.chart.axis.Axis axis, JRFont labelFont, Color labelColor, JRFont tickLabelFont, Color tickLabelColor, String tickLabelMask, Boolean verticalTickLabels, Paint lineColor, boolean isRangeAxis, Comparable<?> axisMinValue, Comparable<?> axisMaxValue)
Sets all the axis formatting options.protected void
configureChart(org.jfree.chart.JFreeChart jfreeChart, JRChartPlot jrPlot)
protected void
configurePlot(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
protected org.jfree.chart.plot.MeterInterval
convertInterval(JRMeterInterval interval)
Converts a JasperReports meter interval to one that JFreeChart understands.protected org.jfree.data.Range
convertRange(JRDataRange dataRange)
Converts a JasperReport data range into one understood by JFreeChart.protected org.jfree.chart.JFreeChart
createAreaChart()
protected org.jfree.chart.JFreeChart
createBar3DChart()
protected org.jfree.chart.JFreeChart
createBarChart()
protected org.jfree.chart.JFreeChart
createBubbleChart()
protected org.jfree.chart.JFreeChart
createCandlestickChart()
org.jfree.chart.JFreeChart
createChart(ChartContext chartContext)
protected org.jfree.chart.JFreeChart
createDialChart()
protected org.jfree.chart.JFreeChart
createGanttChart()
protected org.jfree.chart.JFreeChart
createHighLowChart()
protected org.jfree.chart.JFreeChart
createLineChart()
protected org.jfree.chart.JFreeChart
createMeterChart()
Build and configure a meter chart.protected org.jfree.chart.JFreeChart
createPie3DChart()
protected org.jfree.chart.JFreeChart
createPieChart()
protected org.jfree.chart.JFreeChart
createScatterChart()
protected org.jfree.chart.JFreeChart
createStackedAreaChart()
protected org.jfree.chart.JFreeChart
createStackedBar3DChart()
protected org.jfree.chart.JFreeChart
createStackedBarChart()
protected org.jfree.chart.JFreeChart
createThermometerChart()
Build and run a thermometer chart.protected org.jfree.chart.JFreeChart
createTimeSeriesChart()
protected org.jfree.chart.JFreeChart
createXyAreaChart()
protected org.jfree.chart.JFreeChart
createXYBarChart()
protected org.jfree.chart.JFreeChart
createXyLineChart()
protected Object
evaluateExpression(JRExpression expression)
protected String
evaluateTextExpression(JRExpression expression)
protected JRChart
getChart()
protected org.jfree.chart.axis.AxisLocation
getChartAxisLocation(JRChartAxis chartAxis)
Specifies the axis location.protected ChartContext
getChartContext()
protected org.jfree.data.general.Dataset
getDataset()
Map<String,?>
getDefaultAxisPropertiesMap()
Map<String,?>
getDefaultChartPropertiesMap()
Map<String,?>
getDefaultChartTypePropertiesMap()
Map<String,?>
getDefaultPlotPropertiesMap()
protected Object
getDefaultValue(Map<String,?> map, Object key)
protected JRFont
getFont(JRFont font)
protected Font
getFont(JRFont themeFont, JRFont ownFont, Integer baseFontSize)
protected Object
getLabelGenerator()
protected Locale
getLocale()
protected JRChartPlot
getPlot()
protected org.jfree.chart.axis.DateTickUnitType
getTimePeriodUnit(String timePeriodUnit)
Returns the specific org.jfree.chart.axis.DateTickUnit time unit constant related to the String value passed as argumentprotected void
handleCategoryPlotSettings(org.jfree.chart.plot.CategoryPlot p, JRChartPlot jrPlot)
protected boolean
isShowLegend()
Specifies whether a chart legend should be visible or no by default.protected void
populateSeriesColors(Paint[] colors, Paint[] colorSequence)
protected void
setAxisBounds(org.jfree.chart.axis.Axis axis, boolean isRangeAxis, String timePeriodUnit, Comparable<?> minValue, Comparable<?> maxValue)
protected void
setAxisLabel(org.jfree.chart.axis.Axis axis, JRFont labelFont, Paint labelColor, Integer baseFontSize)
protected void
setAxisLine(org.jfree.chart.axis.Axis axis, Paint lineColor)
protected void
setAxisTickLabels(org.jfree.chart.axis.Axis axis, JRFont tickLabelFont, Paint tickLabelColor, String tickLabelMask, Integer baseFontSize)
protected void
setAxisTickMarks(org.jfree.chart.axis.Axis axis, Paint lineColor)
protected void
setChartBackground(org.jfree.chart.JFreeChart jfreeChart)
protected void
setChartBackgroundImage(org.jfree.chart.JFreeChart jfreeChart, Image defaultBackgroundImage, Integer defaultBackgroundImageAlignment, Float defaultBackgroundImageAlpha)
protected void
setChartBorder(org.jfree.chart.JFreeChart jfreeChart)
protected void
setChartLegend(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize)
protected void
setChartSubtitles(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize)
protected void
setChartTitle(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize)
void
setDefaultAxisPropertiesMap(Map<String,?> defaultAxisPropertiesMap)
void
setDefaultChartPropertiesMap(Map<String,?> defaultChartPropertiesMap)
void
setDefaultChartTypePropertiesMap(Map<String,?> defaultChartTypePropertiesMap)
void
setDefaultPlotPropertiesMap(Map<String,?> defaultPlotPropertiesMap)
protected void
setPlotBackground(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
protected void
setPlotDrawingDefaults(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
-
-
-
Field Detail
-
threadLocalChartContext
protected ThreadLocal<ChartContext> threadLocalChartContext
-
threadLocalFontUtil
protected ThreadLocal<FontUtil> threadLocalFontUtil
-
-
Method Detail
-
getChartContext
protected ChartContext getChartContext()
-
getChart
protected JRChart getChart()
-
getPlot
protected JRChartPlot getPlot()
-
getDataset
protected org.jfree.data.general.Dataset getDataset()
-
getLabelGenerator
protected Object getLabelGenerator()
-
getLocale
protected Locale getLocale()
-
evaluateExpression
protected final Object evaluateExpression(JRExpression expression) throws JRException
- Throws:
JRException
-
evaluateTextExpression
protected final String evaluateTextExpression(JRExpression expression) throws JRException
- Throws:
JRException
-
createChart
public org.jfree.chart.JFreeChart createChart(ChartContext chartContext) throws JRException
- Specified by:
createChart
in interfaceChartTheme
- Returns:
- an
org.jfree.chart.JFreeChart
object representing the chart - Throws:
JRException
-
configureChart
protected void configureChart(org.jfree.chart.JFreeChart jfreeChart, JRChartPlot jrPlot) throws JRException
- Throws:
JRException
-
configurePlot
protected void configurePlot(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
-
configureAxis
protected void configureAxis(org.jfree.chart.axis.Axis axis, JRFont labelFont, Color labelColor, JRFont tickLabelFont, Color tickLabelColor, String tickLabelMask, Boolean verticalTickLabels, Paint lineColor, boolean isRangeAxis, Comparable<?> axisMinValue, Comparable<?> axisMaxValue) throws JRException
Sets all the axis formatting options. This includes the colors and fonts to use on the axis as well as the color to use when drawing the axis line.- Parameters:
axis
- the axis to formatlabelFont
- the font to use for the axis labellabelColor
- the color of the axis labeltickLabelFont
- the font to use for each tick mark value labeltickLabelColor
- the color of each tick mark value labeltickLabelMask
- formatting mask for the label. If the axis is a NumberAxis then the mask should bejava.text.DecimalFormat
mask, and if it is a DateAxis then the mask should be ajava.text.SimpleDateFormat
mask.verticalTickLabels
- flag to draw tick labels at 90 degreeslineColor
- color to use when drawing the axis line and any tick marksisRangeAxis
- used to distinguish between range and domain axis type- Throws:
JRException
-
createAreaChart
protected org.jfree.chart.JFreeChart createAreaChart() throws JRException
- Throws:
JRException
-
createBar3DChart
protected org.jfree.chart.JFreeChart createBar3DChart() throws JRException
- Throws:
JRException
-
createBarChart
protected org.jfree.chart.JFreeChart createBarChart() throws JRException
- Throws:
JRException
-
createBubbleChart
protected org.jfree.chart.JFreeChart createBubbleChart() throws JRException
- Throws:
JRException
-
createCandlestickChart
protected org.jfree.chart.JFreeChart createCandlestickChart() throws JRException
- Throws:
JRException
-
createHighLowChart
protected org.jfree.chart.JFreeChart createHighLowChart() throws JRException
- Throws:
JRException
-
createLineChart
protected org.jfree.chart.JFreeChart createLineChart() throws JRException
- Throws:
JRException
-
createPie3DChart
protected org.jfree.chart.JFreeChart createPie3DChart() throws JRException
- Throws:
JRException
-
createPieChart
protected org.jfree.chart.JFreeChart createPieChart() throws JRException
- Throws:
JRException
-
createScatterChart
protected org.jfree.chart.JFreeChart createScatterChart() throws JRException
- Throws:
JRException
-
createStackedBar3DChart
protected org.jfree.chart.JFreeChart createStackedBar3DChart() throws JRException
- Throws:
JRException
-
createStackedBarChart
protected org.jfree.chart.JFreeChart createStackedBarChart() throws JRException
- Throws:
JRException
-
createStackedAreaChart
protected org.jfree.chart.JFreeChart createStackedAreaChart() throws JRException
- Throws:
JRException
-
createXyAreaChart
protected org.jfree.chart.JFreeChart createXyAreaChart() throws JRException
- Throws:
JRException
-
createXYBarChart
protected org.jfree.chart.JFreeChart createXYBarChart() throws JRException
- Throws:
JRException
-
createXyLineChart
protected org.jfree.chart.JFreeChart createXyLineChart() throws JRException
- Throws:
JRException
-
createTimeSeriesChart
protected org.jfree.chart.JFreeChart createTimeSeriesChart() throws JRException
- Throws:
JRException
-
createGanttChart
protected org.jfree.chart.JFreeChart createGanttChart() throws JRException
- Throws:
JRException
-
convertRange
protected org.jfree.data.Range convertRange(JRDataRange dataRange) throws JRException
Converts a JasperReport data range into one understood by JFreeChart.- Parameters:
dataRange
- the JasperReport version of the range- Returns:
- the JFreeChart version of the range
- Throws:
JRException
- thrown when the low value of the range is greater than the high value
-
convertInterval
protected org.jfree.chart.plot.MeterInterval convertInterval(JRMeterInterval interval) throws JRException
Converts a JasperReports meter interval to one that JFreeChart understands.- Parameters:
interval
- the JasperReports definition of an interval- Returns:
- the JFreeChart version of the same interval
- Throws:
JRException
- thrown when the interval contains an invalid range
-
createMeterChart
protected org.jfree.chart.JFreeChart createMeterChart() throws JRException
Build and configure a meter chart.- Throws:
JRException
-
createThermometerChart
protected org.jfree.chart.JFreeChart createThermometerChart() throws JRException
Build and run a thermometer chart. JFreeChart thermometer charts have some limitations. They always have a maximum of three ranges, and the colors of those ranges seems to be fixed.- Throws:
JRException
-
createDialChart
protected org.jfree.chart.JFreeChart createDialChart() throws JRException
- Throws:
JRException
-
getChartAxisLocation
protected org.jfree.chart.axis.AxisLocation getChartAxisLocation(JRChartAxis chartAxis)
Specifies the axis location. It has to be overridden for child themes with another default axis location
-
setChartBackground
protected void setChartBackground(org.jfree.chart.JFreeChart jfreeChart)
-
setChartBackgroundImage
protected void setChartBackgroundImage(org.jfree.chart.JFreeChart jfreeChart, Image defaultBackgroundImage, Integer defaultBackgroundImageAlignment, Float defaultBackgroundImageAlpha)
-
setChartTitle
protected void setChartTitle(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize)
-
setChartSubtitles
protected void setChartSubtitles(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize) throws JRException
- Throws:
JRException
-
setChartLegend
protected void setChartLegend(org.jfree.chart.JFreeChart jfreeChart, Integer baseFontSize)
-
setChartBorder
protected void setChartBorder(org.jfree.chart.JFreeChart jfreeChart)
-
setPlotBackground
protected void setPlotBackground(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
-
handleCategoryPlotSettings
protected void handleCategoryPlotSettings(org.jfree.chart.plot.CategoryPlot p, JRChartPlot jrPlot)
-
setPlotDrawingDefaults
protected void setPlotDrawingDefaults(org.jfree.chart.plot.Plot p, JRChartPlot jrPlot)
-
setAxisLine
protected void setAxisLine(org.jfree.chart.axis.Axis axis, Paint lineColor)
-
setAxisLabel
protected void setAxisLabel(org.jfree.chart.axis.Axis axis, JRFont labelFont, Paint labelColor, Integer baseFontSize)
-
setAxisTickLabels
protected void setAxisTickLabels(org.jfree.chart.axis.Axis axis, JRFont tickLabelFont, Paint tickLabelColor, String tickLabelMask, Integer baseFontSize)
-
setAxisTickMarks
protected void setAxisTickMarks(org.jfree.chart.axis.Axis axis, Paint lineColor)
-
setAxisBounds
protected void setAxisBounds(org.jfree.chart.axis.Axis axis, boolean isRangeAxis, String timePeriodUnit, Comparable<?> minValue, Comparable<?> maxValue) throws JRException
- Throws:
JRException
-
calculateTickUnits
protected void calculateTickUnits(org.jfree.chart.axis.Axis axis, boolean isRangeAxis, String timePeriodUnit)
For a given axis, adjust the tick unit size, in order to have a customizable number of ticks on that axis
-
isShowLegend
protected boolean isShowLegend()
Specifies whether a chart legend should be visible or no by default.
-
getTimePeriodUnit
protected org.jfree.chart.axis.DateTickUnitType getTimePeriodUnit(String timePeriodUnit)
Returns the specific org.jfree.chart.axis.DateTickUnit time unit constant related to the String value passed as argument- Parameters:
timePeriodUnit
- - a String represented by one of the following accepted values: ["Year", "Month", "Day", "Hour", "Minute", "Second", "Millisecond"]- Returns:
- the specific org.jfree.chart.axis.DateTickUnit time unit constant
-
getDefaultChartPropertiesMap
public Map<String,?> getDefaultChartPropertiesMap()
- Returns:
- the defaultChartPropertiesMap
-
setDefaultChartPropertiesMap
public void setDefaultChartPropertiesMap(Map<String,?> defaultChartPropertiesMap)
- Parameters:
defaultChartPropertiesMap
- the defaultChartPropertiesMap to set
-
getDefaultPlotPropertiesMap
public Map<String,?> getDefaultPlotPropertiesMap()
- Returns:
- the defaultPlotPropertiesMap
-
setDefaultPlotPropertiesMap
public void setDefaultPlotPropertiesMap(Map<String,?> defaultPlotPropertiesMap)
- Parameters:
defaultPlotPropertiesMap
- the defaultPlotPropertiesMap to set
-
getDefaultAxisPropertiesMap
public Map<String,?> getDefaultAxisPropertiesMap()
- Returns:
- the defaultAxisPropertiesMap
-
setDefaultAxisPropertiesMap
public void setDefaultAxisPropertiesMap(Map<String,?> defaultAxisPropertiesMap)
- Parameters:
defaultAxisPropertiesMap
- the defaultAxisPropertiesMap to set
-
getDefaultChartTypePropertiesMap
public Map<String,?> getDefaultChartTypePropertiesMap()
- Returns:
- the defaultChartTypePropertiesMap
-
-