package net.sf.jasperreports.charts.design;

import java.awt.Color;
import net.sf.jasperreports.charts.base.JRBaseBarPlot;
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 JRDesignBarPlot extends JRBaseBarPlot {
  private static final long serialVersionUID = 10200L;
  
  public static final String PROPERTY_CATEGORY_AXIS_LABEL_COLOR = "categoryAxisLabelColor";
  
  public static final String PROPERTY_CATEGORY_AXIS_LABEL_EXPRESSION = "categoryAxisLabelExpression";
  
  public static final String PROPERTY_CATEGORY_AXIS_LABEL_FONT = "categoryAxisLabelFont";
  
  public static final String PROPERTY_CATEGORY_AXIS_LINE_COLOR = "categoryAxisLineColor";
  
  public static final String PROPERTY_CATEGORY_AXIS_TICK_LABEL_COLOR = "categoryAxisTickLabelColor";
  
  public static final String PROPERTY_CATEGORY_AXIS_TICK_LABEL_FONT = "categoryAxisTickLabelFont";
  
  public static final String PROPERTY_CATEGORY_AXIS_TICK_LABEL_MASK = "categoryAxisTickLabelMask";
  
  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 JRDesignBarPlot(JRChartPlot barPlot, JRChart chart) {
    super(barPlot, chart);
  }
  
  public void setCategoryAxisLabelExpression(JRExpression categoryAxisLabelExpression) {
    Object old = this.categoryAxisLabelExpression;
    this.categoryAxisLabelExpression = categoryAxisLabelExpression;
    getEventSupport().firePropertyChange("categoryAxisLabelExpression", old, this.categoryAxisLabelExpression);
  }
  
  public void setCategoryAxisLabelFont(JRFont categoryAxisLabelFont) {
    Object old = this.categoryAxisLabelFont;
    this.categoryAxisLabelFont = categoryAxisLabelFont;
    getEventSupport().firePropertyChange("categoryAxisLabelFont", old, this.categoryAxisLabelFont);
  }
  
  public void setCategoryAxisLabelColor(Color categoryAxisLabelColor) {
    Object old = this.categoryAxisLabelColor;
    this.categoryAxisLabelColor = categoryAxisLabelColor;
    getEventSupport().firePropertyChange("categoryAxisLabelColor", old, this.categoryAxisLabelColor);
  }
  
  public void setCategoryAxisTickLabelFont(JRFont categoryAxisTickLabelFont) {
    Object old = this.categoryAxisTickLabelFont;
    this.categoryAxisTickLabelFont = categoryAxisTickLabelFont;
    getEventSupport().firePropertyChange("categoryAxisTickLabelFont", old, this.categoryAxisTickLabelFont);
  }
  
  public void setCategoryAxisTickLabelColor(Color categoryAxisTickLabelColor) {
    Object old = this.categoryAxisTickLabelColor;
    this.categoryAxisTickLabelColor = categoryAxisTickLabelColor;
    getEventSupport().firePropertyChange("categoryAxisTickLabelColor", old, this.categoryAxisTickLabelColor);
  }
  
  public void setCategoryAxisTickLabelMask(String categoryAxisTickLabelMask) {
    Object old = this.categoryAxisTickLabelMask;
    this.categoryAxisTickLabelMask = categoryAxisTickLabelMask;
    getEventSupport().firePropertyChange("categoryAxisTickLabelMask", old, this.categoryAxisTickLabelMask);
  }
  
  public void setCategoryAxisLineColor(Color categoryAxisLineColor) {
    Object old = this.categoryAxisLineColor;
    this.categoryAxisLineColor = categoryAxisLineColor;
    getEventSupport().firePropertyChange("categoryAxisLineColor", old, this.categoryAxisLineColor);
  }
  
  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 setCategoryAxisFormat(JRAxisFormat axisFormat) {
    setCategoryAxisLabelFont(axisFormat.getLabelFont());
    setCategoryAxisLabelColor(axisFormat.getLabelColor());
    setCategoryAxisTickLabelFont(axisFormat.getTickLabelFont());
    setCategoryAxisTickLabelColor(axisFormat.getTickLabelColor());
    setCategoryAxisTickLabelMask(axisFormat.getTickLabelMask());
    setCategoryAxisLineColor(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());
  }
}
