package net.sf.jasperreports.charts.design;

import java.awt.Color;
import net.sf.jasperreports.charts.base.JRBaseCandlestickPlot;
import net.sf.jasperreports.charts.util.JRAxisFormat;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartPlot;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRFont;

public class JRDesignCandlestickPlot extends JRBaseCandlestickPlot {
  private static final long serialVersionUID = 10200L;
  
  public static final String PROPERTY_TIME_AXIS_LABEL_COLOR = "timeAxisLabelColor";
  
  public static final String PROPERTY_TIME_AXIS_LABEL_EXPRESSION = "timeAxisLabelExpression";
  
  public static final String PROPERTY_TIME_AXIS_LABEL_FONT = "timeAxisLabelFont";
  
  public static final String PROPERTY_TIME_AXIS_LINE_COLOR = "timeAxisLineColor";
  
  public static final String PROPERTY_TIME_AXIS_TICK_LABEL_COLOR = "timeAxisTickLabelColor";
  
  public static final String PROPERTY_TIME_AXIS_TICK_LABEL_FONT = "timeAxisTickLabelFont";
  
  public static final String PROPERTY_TIME_AXIS_TICK_LABEL_MASK = "timeAxisTickLabelMask";
  
  public static final String PROPERTY_VALUE_AXIS_LABEL_COLOR = "valueAxisLabelColor";
  
  public static final String PROPERTY_VALUE_AXIS_LABEL_EXPRESSION = "valueAxisLabelExpression";
  
  public static final String PROPERTY_VALUE_AXIS_LABEL_FONT = "valueAxisLabelFont";
  
  public static final String PROPERTY_VALUE_AXIS_LINE_COLOR = "valueAxisLineColor";
  
  public static final String PROPERTY_VALUE_AXIS_TICK_LABEL_COLOR = "valueAxisTickLabelColor";
  
  public static final String PROPERTY_VALUE_AXIS_TICK_LABEL_FONT = "valueAxisTickLabelFont";
  
  public static final String PROPERTY_VALUE_AXIS_TICK_LABEL_MASK = "valueAxisTickLabelMask";
  
  public JRDesignCandlestickPlot(JRChartPlot candlestickPlot, JRChart chart) {
    super(candlestickPlot, chart);
  }
  
  public void setTimeAxisLabelExpression(JRExpression timeAxisLabelExpression) {
    Object old = this.timeAxisLabelExpression;
    this.timeAxisLabelExpression = timeAxisLabelExpression;
    getEventSupport().firePropertyChange("timeAxisLabelExpression", old, this.timeAxisLabelExpression);
  }
  
  public void setTimeAxisLabelFont(JRFont timeAxisLabelFont) {
    Object old = this.timeAxisLabelFont;
    this.timeAxisLabelFont = timeAxisLabelFont;
    getEventSupport().firePropertyChange("timeAxisLabelFont", old, this.timeAxisLabelFont);
  }
  
  public void setTimeAxisLabelColor(Color timeAxisLabelColor) {
    Object old = this.timeAxisLabelColor;
    this.timeAxisLabelColor = timeAxisLabelColor;
    getEventSupport().firePropertyChange("timeAxisLabelColor", old, this.timeAxisLabelColor);
  }
  
  public void setTimeAxisTickLabelFont(JRFont timeAxisTickLabelFont) {
    Object old = this.timeAxisTickLabelFont;
    this.timeAxisTickLabelFont = timeAxisTickLabelFont;
    getEventSupport().firePropertyChange("timeAxisTickLabelFont", old, this.timeAxisTickLabelFont);
  }
  
  public void setTimeAxisTickLabelColor(Color timeAxisTickLabelColor) {
    Object old = this.timeAxisTickLabelColor;
    this.timeAxisTickLabelColor = timeAxisTickLabelColor;
    getEventSupport().firePropertyChange("timeAxisTickLabelColor", old, this.timeAxisTickLabelColor);
  }
  
  public void setTimeAxisTickLabelMask(String timeAxisTickLabelMask) {
    Object old = this.timeAxisTickLabelMask;
    this.timeAxisTickLabelMask = timeAxisTickLabelMask;
    getEventSupport().firePropertyChange("timeAxisTickLabelMask", old, this.timeAxisTickLabelMask);
  }
  
  public void setTimeAxisLineColor(Color timeAxisLineColor) {
    Object old = this.timeAxisLineColor;
    this.timeAxisLineColor = timeAxisLineColor;
    getEventSupport().firePropertyChange("timeAxisLineColor", old, this.timeAxisLineColor);
  }
  
  public void setValueAxisLabelExpression(JRExpression valueAxisLabelExpression) {
    Object old = this.valueAxisLabelExpression;
    this.valueAxisLabelExpression = valueAxisLabelExpression;
    getEventSupport().firePropertyChange("valueAxisLabelExpression", old, this.valueAxisLabelExpression);
  }
  
  public void setValueAxisLabelFont(JRFont valueAxisLabelFont) {
    Object old = this.valueAxisLabelFont;
    this.valueAxisLabelFont = valueAxisLabelFont;
    getEventSupport().firePropertyChange("valueAxisLabelFont", old, this.valueAxisLabelFont);
  }
  
  public void setValueAxisLabelColor(Color valueAxisLabelColor) {
    Object old = this.valueAxisLabelColor;
    this.valueAxisLabelColor = valueAxisLabelColor;
    getEventSupport().firePropertyChange("valueAxisLabelColor", old, this.valueAxisLabelColor);
  }
  
  public void setValueAxisTickLabelFont(JRFont valueAxisTickLabelFont) {
    Object old = this.valueAxisTickLabelFont;
    this.valueAxisTickLabelFont = valueAxisTickLabelFont;
    getEventSupport().firePropertyChange("valueAxisTickLabelFont", old, this.valueAxisTickLabelFont);
  }
  
  public void setValueAxisTickLabelColor(Color valueAxisTickLabelColor) {
    Object old = this.valueAxisTickLabelColor;
    this.valueAxisTickLabelColor = valueAxisTickLabelColor;
    getEventSupport().firePropertyChange("valueAxisTickLabelColor", old, this.valueAxisTickLabelColor);
  }
  
  public void setValueAxisTickLabelMask(String valueAxisTickLabelMask) {
    Object old = this.valueAxisTickLabelMask;
    this.valueAxisTickLabelMask = valueAxisTickLabelMask;
    getEventSupport().firePropertyChange("valueAxisTickLabelMask", old, this.valueAxisTickLabelMask);
  }
  
  public void setValueAxisLineColor(Color valueAxisLineColor) {
    Object old = this.valueAxisLineColor;
    this.valueAxisLineColor = valueAxisLineColor;
    getEventSupport().firePropertyChange("valueAxisLineColor", old, this.valueAxisLineColor);
  }
  
  public void setTimeAxisFormat(JRAxisFormat axisFormat) {
    setTimeAxisLabelFont(axisFormat.getLabelFont());
    setTimeAxisLabelColor(axisFormat.getLabelColor());
    setTimeAxisTickLabelFont(axisFormat.getTickLabelFont());
    setTimeAxisTickLabelColor(axisFormat.getTickLabelColor());
    setTimeAxisTickLabelMask(axisFormat.getTickLabelMask());
    setTimeAxisLineColor(axisFormat.getLineColor());
  }
  
  public void setValueAxisFormat(JRAxisFormat axisFormat) {
    setValueAxisLabelFont(axisFormat.getLabelFont());
    setValueAxisLabelColor(axisFormat.getLabelColor());
    setValueAxisTickLabelFont(axisFormat.getTickLabelFont());
    setValueAxisTickLabelColor(axisFormat.getTickLabelColor());
    setValueAxisTickLabelMask(axisFormat.getTickLabelMask());
    setValueAxisLineColor(axisFormat.getLineColor());
  }
}
