package net.sf.jasperreports.charts.base;

import net.sf.jasperreports.charts.JRPie3DPlot;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartPlot;
import net.sf.jasperreports.engine.JRExpressionCollector;
import net.sf.jasperreports.engine.base.JRBaseChartPlot;
import net.sf.jasperreports.engine.base.JRBaseObjectFactory;

public class JRBasePie3DPlot extends JRBaseChartPlot implements JRPie3DPlot {
  private static final long serialVersionUID = 10200L;
  
  public static final String PROPERTY_CIRCULAR = "circular";
  
  public static final String PROPERTY_DEPTH_FACTOR = "depthFactor";
  
  protected double depthFactor = 0.2D;
  
  protected boolean isCircular = false;
  
  public JRBasePie3DPlot(JRChartPlot pie3DPlot, JRChart chart) {
    super(pie3DPlot, chart);
  }
  
  public JRBasePie3DPlot(JRPie3DPlot pie3DPlot, JRBaseObjectFactory factory) {
    super((JRChartPlot)pie3DPlot, factory);
    this.depthFactor = pie3DPlot.getDepthFactor();
    this.isCircular = pie3DPlot.isCircular();
  }
  
  public double getDepthFactor() {
    return this.depthFactor;
  }
  
  public void setDepthFactor(double depthFactor) {
    double old = this.depthFactor;
    this.depthFactor = depthFactor;
    getEventSupport().firePropertyChange("depthFactor", old, this.depthFactor);
  }
  
  public void collectExpressions(JRExpressionCollector collector) {}
  
  public boolean isCircular() {
    return this.isCircular;
  }
  
  public void setCircular(boolean isCircular) {
    boolean old = this.isCircular;
    this.isCircular = isCircular;
    getEventSupport().firePropertyChange("circular", old, this.isCircular);
  }
}
