Package org.pentaho.plugin.jfreereport.reportcharts

Source Code of org.pentaho.plugin.jfreereport.reportcharts.ExtendedXYLineChartExpression

/*
* Copyright 2006 Pentaho Corporation.  All rights reserved.
* This software was developed by Pentaho Corporation and is provided under the terms
* of the Mozilla Public License, Version 1.1, or any later version. You may not use
* this file except in compliance with the license. If you need a copy of the license,
* please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
* BI Platform.  The Initial Developer is Pentaho Corporation.
*
* Software distributed under the Mozilla Public License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or  implied. Please refer to
* the license for the specific language governing your rights and limitations.
*
* @author Gretchen Moran
*/
package org.pentaho.plugin.jfreereport.reportcharts;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.xy.XYDifferenceRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYStepAreaRenderer;
import org.jfree.chart.renderer.xy.XYStepRenderer;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.IntervalXYDataset;
import org.jfree.data.xy.XYDataset;

public class ExtendedXYLineChartExpression extends XYLineChartExpression
{

  public static final String STEP_CHART_STR = "StepChart"; //$NON-NLS-1$
  public static final String STEP_AREA_CHART_STR = "StepAreaChart"; //$NON-NLS-1$
  public static final String DIFFERENCE_CHART_STR = "DifferenceChart"; //$NON-NLS-1$


  private static final long serialVersionUID = -167639029520233427L;
  private String chartType;


  public ExtendedXYLineChartExpression()
  {
    chartType = null;
  }

  protected JFreeChart computeXYChart(final XYDataset xyDataset)
  {
    final JFreeChart rtn;
    if (xyDataset instanceof TimeSeriesCollection)
    {
      rtn =
          ChartFactory.createTimeSeriesChart(computeTitle(), getDomainTitle(), getRangeTitle(), xyDataset,
              isShowLegend(), false, false);
    }
    else
    {
      final PlotOrientation orientation = computePlotOrientation();
      rtn = ChartFactory.createXYLineChart(computeTitle(), getDomainTitle(), getRangeTitle(),
          xyDataset, orientation, isShowLegend(), false, false);
    }

    final String chartType = getChartType();
    if (STEP_AREA_CHART_STR.equals(chartType))
    {
      final XYItemRenderer renderer;
      if (isMarkersVisible())
      {
        renderer = new XYStepAreaRenderer(XYStepAreaRenderer.AREA_AND_SHAPES);
      }
      else
      {
        renderer = new XYStepAreaRenderer(XYStepAreaRenderer.AREA);
      }
      rtn.getXYPlot().setRenderer(renderer);
    }
    else if (STEP_CHART_STR.equals(chartType))
    {
      rtn.getXYPlot().setRenderer(new XYStepRenderer(null, null));
    }
    else if (DIFFERENCE_CHART_STR.equals(chartType))
    {
      rtn.getXYPlot().setRenderer(new XYDifferenceRenderer());
    }
    configureLogarithmicAxis(rtn.getXYPlot());
    return rtn;
  }

  public String getChartType()
  {
    return chartType;
  }

  public void setChartType(final String chartType)
  {
    this.chartType = chartType;
  }


}
TOP

Related Classes of org.pentaho.plugin.jfreereport.reportcharts.ExtendedXYLineChartExpression

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.