Class GenericChartTheme

  • All Implemented Interfaces:
    net.sf.jasperreports.charts.ChartTheme
    Direct Known Subclasses:
    AegeanChartTheme, EyeCandySixtiesChartTheme

    public class GenericChartTheme
    extends Object
    implements net.sf.jasperreports.charts.ChartTheme
    Author:
    Sanda Zaharia (shertage@users.sourceforge.net)
    • Field Detail

      • defaultChartPropertiesMap

        protected Map<String,​?> defaultChartPropertiesMap
      • defaultPlotPropertiesMap

        protected Map<String,​?> defaultPlotPropertiesMap
      • defaultAxisPropertiesMap

        protected Map<String,​?> defaultAxisPropertiesMap
      • defaultChartTypePropertiesMap

        protected Map<String,​?> defaultChartTypePropertiesMap
      • threadLocalChartContext

        protected ThreadLocal<net.sf.jasperreports.charts.ChartContext> threadLocalChartContext
      • threadLocalFontUtil

        protected ThreadLocal<net.sf.jasperreports.engine.fonts.FontUtil> threadLocalFontUtil
    • Constructor Detail

      • GenericChartTheme

        protected GenericChartTheme()
    • Method Detail

      • getChartContext

        protected net.sf.jasperreports.charts.ChartContext getChartContext()
      • getChart

        protected net.sf.jasperreports.engine.JRChart getChart()
      • getPlot

        protected net.sf.jasperreports.engine.JRChartPlot getPlot()
      • getDataset

        protected org.jfree.data.general.Dataset getDataset()
      • getLabelGenerator

        protected Object getLabelGenerator()
      • getLocale

        protected Locale getLocale()
      • evaluateExpression

        protected final Object evaluateExpression​(net.sf.jasperreports.engine.JRExpression expression)
                                           throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • evaluateTextExpression

        protected final String evaluateTextExpression​(net.sf.jasperreports.engine.JRExpression expression)
                                               throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createChart

        public org.jfree.chart.JFreeChart createChart​(net.sf.jasperreports.charts.ChartContext chartContext)
                                               throws net.sf.jasperreports.engine.JRException
        Specified by:
        createChart in interface net.sf.jasperreports.charts.ChartTheme
        Throws:
        net.sf.jasperreports.engine.JRException
      • configureChart

        protected void configureChart​(org.jfree.chart.JFreeChart jfreeChart,
                                      net.sf.jasperreports.engine.JRChartPlot jrPlot)
                               throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • configurePlot

        protected void configurePlot​(org.jfree.chart.plot.Plot p,
                                     net.sf.jasperreports.engine.JRChartPlot jrPlot)
      • configureAxis

        protected void configureAxis​(org.jfree.chart.axis.Axis axis,
                                     net.sf.jasperreports.engine.JRFont labelFont,
                                     Color labelColor,
                                     net.sf.jasperreports.engine.JRFont tickLabelFont,
                                     Color tickLabelColor,
                                     String tickLabelMask,
                                     Boolean verticalTickLabels,
                                     Paint lineColor,
                                     boolean isRangeAxis,
                                     Comparable<?> axisMinValue,
                                     Comparable<?> axisMaxValue)
                              throws net.sf.jasperreports.engine.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 format
        labelFont - the font to use for the axis label
        labelColor - the color of the axis label
        tickLabelFont - the font to use for each tick mark value label
        tickLabelColor - the color of each tick mark value label
        tickLabelMask - formatting mask for the label. If the axis is a NumberAxis then the mask should be java.text.DecimalFormat mask, and if it is a DateAxis then the mask should be a java.text.SimpleDateFormat mask.
        verticalTickLabels - flag to draw tick labels at 90 degrees
        lineColor - color to use when drawing the axis line and any tick marks
        isRangeAxis - used to distinguish between range and domain axis type
        Throws:
        net.sf.jasperreports.engine.JRException
      • createAreaChart

        protected org.jfree.chart.JFreeChart createAreaChart()
                                                      throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createBar3DChart

        protected org.jfree.chart.JFreeChart createBar3DChart()
                                                       throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createBarChart

        protected org.jfree.chart.JFreeChart createBarChart()
                                                     throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createBubbleChart

        protected org.jfree.chart.JFreeChart createBubbleChart()
                                                        throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createCandlestickChart

        protected org.jfree.chart.JFreeChart createCandlestickChart()
                                                             throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createHighLowChart

        protected org.jfree.chart.JFreeChart createHighLowChart()
                                                         throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createLineChart

        protected org.jfree.chart.JFreeChart createLineChart()
                                                      throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createPie3DChart

        protected org.jfree.chart.JFreeChart createPie3DChart()
                                                       throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createPieChart

        protected org.jfree.chart.JFreeChart createPieChart()
                                                     throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createScatterChart

        protected org.jfree.chart.JFreeChart createScatterChart()
                                                         throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createStackedBar3DChart

        protected org.jfree.chart.JFreeChart createStackedBar3DChart()
                                                              throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createStackedBarChart

        protected org.jfree.chart.JFreeChart createStackedBarChart()
                                                            throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createStackedAreaChart

        protected org.jfree.chart.JFreeChart createStackedAreaChart()
                                                             throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createXyAreaChart

        protected org.jfree.chart.JFreeChart createXyAreaChart()
                                                        throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createXYBarChart

        protected org.jfree.chart.JFreeChart createXYBarChart()
                                                       throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createXyLineChart

        protected org.jfree.chart.JFreeChart createXyLineChart()
                                                        throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createTimeSeriesChart

        protected org.jfree.chart.JFreeChart createTimeSeriesChart()
                                                            throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • createGanttChart

        protected org.jfree.chart.JFreeChart createGanttChart()
                                                       throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • convertRange

        protected org.jfree.data.Range convertRange​(net.sf.jasperreports.charts.JRDataRange dataRange)
                                             throws net.sf.jasperreports.engine.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:
        net.sf.jasperreports.engine.JRException - thrown when the low value of the range is greater than the high value
      • convertInterval

        protected org.jfree.chart.plot.MeterInterval convertInterval​(net.sf.jasperreports.charts.util.JRMeterInterval interval)
                                                              throws net.sf.jasperreports.engine.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:
        net.sf.jasperreports.engine.JRException - thrown when the interval contains an invalid range
      • createMeterChart

        protected org.jfree.chart.JFreeChart createMeterChart()
                                                       throws net.sf.jasperreports.engine.JRException
        Build and configure a meter chart.
        Throws:
        net.sf.jasperreports.engine.JRException
      • createThermometerChart

        protected org.jfree.chart.JFreeChart createThermometerChart()
                                                             throws net.sf.jasperreports.engine.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:
        net.sf.jasperreports.engine.JRException
      • createDialChart

        protected org.jfree.chart.JFreeChart createDialChart()
                                                      throws net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.JRException
      • getChartAxisLocation

        protected org.jfree.chart.axis.AxisLocation getChartAxisLocation​(net.sf.jasperreports.charts.JRChartAxis chartAxis)
        Specifies the axis location. It has to be overridden for child themes with another default axis location
      • populateSeriesColors

        protected void populateSeriesColors​(Paint[] colors,
                                            Paint[] colorSequence)
      • 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 net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.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,
                                         net.sf.jasperreports.engine.JRChartPlot jrPlot)
      • handleCategoryPlotSettings

        protected void handleCategoryPlotSettings​(org.jfree.chart.plot.CategoryPlot p,
                                                  net.sf.jasperreports.engine.JRChartPlot jrPlot)
      • setPlotDrawingDefaults

        protected void setPlotDrawingDefaults​(org.jfree.chart.plot.Plot p,
                                              net.sf.jasperreports.engine.JRChartPlot jrPlot)
      • setAxisLine

        protected void setAxisLine​(org.jfree.chart.axis.Axis axis,
                                   Paint lineColor)
      • setAxisLabel

        protected void setAxisLabel​(org.jfree.chart.axis.Axis axis,
                                    net.sf.jasperreports.engine.JRFont labelFont,
                                    Paint labelColor,
                                    Integer baseFontSize)
      • setAxisTickLabels

        protected void setAxisTickLabels​(org.jfree.chart.axis.Axis axis,
                                         net.sf.jasperreports.engine.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 net.sf.jasperreports.engine.JRException
        Throws:
        net.sf.jasperreports.engine.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
      • getFont

        protected Font getFont​(net.sf.jasperreports.engine.JRFont themeFont,
                               net.sf.jasperreports.engine.JRFont ownFont,
                               Integer baseFontSize)
      • getFont

        protected net.sf.jasperreports.engine.JRFont getFont​(net.sf.jasperreports.engine.JRFont font)
      • 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
      • setDefaultChartTypePropertiesMap

        public void setDefaultChartTypePropertiesMap​(Map<String,​?> defaultChartTypePropertiesMap)
        Parameters:
        defaultChartTypePropertiesMap - the defaultChartTypePropertiesMap to set