package net.sf.jasperreports.charts.base; import java.awt.Color; import net.sf.jasperreports.charts.JRCategoryAxisFormat; import net.sf.jasperreports.charts.JRLinePlot; import net.sf.jasperreports.charts.JRValueAxisFormat; import net.sf.jasperreports.engine.JRChart; import net.sf.jasperreports.engine.JRChartPlot; import net.sf.jasperreports.engine.JRExpression; import net.sf.jasperreports.engine.JRExpressionCollector; import net.sf.jasperreports.engine.JRFont; import net.sf.jasperreports.engine.JRStyleContainer; import net.sf.jasperreports.engine.base.JRBaseChartPlot; import net.sf.jasperreports.engine.base.JRBaseFont; import net.sf.jasperreports.engine.base.JRBaseObjectFactory; import net.sf.jasperreports.engine.util.JRStyleResolver; public class JRBaseLinePlot extends JRBaseChartPlot implements JRLinePlot { private static final long serialVersionUID = 10200L; public static final String PROPERTY_SHOW_LINES = "showLines"; public static final String PROPERTY_SHOW_SHAPES = "showShapes"; protected JRExpression categoryAxisLabelExpression = null; protected JRFont categoryAxisLabelFont = null; protected Color categoryAxisLabelColor = null; protected JRFont categoryAxisTickLabelFont = null; protected Color categoryAxisTickLabelColor = null; protected String categoryAxisTickLabelMask = null; protected Color categoryAxisLineColor = null; protected JRExpression valueAxisLabelExpression = null; protected JRFont valueAxisLabelFont = null; protected Color valueAxisLabelColor = null; protected JRFont valueAxisTickLabelFont = null; protected Color valueAxisTickLabelColor = null; protected String valueAxisTickLabelMask = null; protected Color valueAxisLineColor = null; boolean isShowShapes = true; boolean isShowLines = true; public JRBaseLinePlot(JRChartPlot linePlot, JRChart chart) { super(linePlot, chart); } public JRBaseLinePlot(JRLinePlot linePlot, JRBaseObjectFactory factory) { super((JRChartPlot)linePlot, factory); this.isShowShapes = linePlot.isShowShapes(); this.isShowLines = linePlot.isShowLines(); this.categoryAxisLabelExpression = factory.getExpression(linePlot.getCategoryAxisLabelExpression()); this.categoryAxisLabelFont = (JRFont)new JRBaseFont(null, null, (JRStyleContainer)linePlot.getChart(), linePlot.getCategoryAxisLabelFont()); this.categoryAxisLabelColor = linePlot.getOwnCategoryAxisLabelColor(); this.categoryAxisTickLabelFont = (JRFont)new JRBaseFont(null, null, (JRStyleContainer)linePlot.getChart(), linePlot.getCategoryAxisTickLabelFont()); this.categoryAxisTickLabelColor = linePlot.getOwnCategoryAxisTickLabelColor(); this.categoryAxisTickLabelMask = linePlot.getCategoryAxisTickLabelMask(); this.categoryAxisLineColor = linePlot.getCategoryAxisLineColor(); this.valueAxisLabelExpression = factory.getExpression(linePlot.getValueAxisLabelExpression()); this.valueAxisLabelFont = (JRFont)new JRBaseFont(null, null, (JRStyleContainer)linePlot.getChart(), linePlot.getValueAxisLabelFont()); this.valueAxisLabelColor = linePlot.getOwnValueAxisLabelColor(); this.valueAxisTickLabelFont = (JRFont)new JRBaseFont(null, null, (JRStyleContainer)linePlot.getChart(), linePlot.getValueAxisTickLabelFont()); this.valueAxisTickLabelColor = linePlot.getOwnValueAxisTickLabelColor(); this.valueAxisTickLabelMask = linePlot.getValueAxisTickLabelMask(); this.valueAxisLineColor = linePlot.getValueAxisLineColor(); } public JRExpression getCategoryAxisLabelExpression() { return this.categoryAxisLabelExpression; } public JRFont getCategoryAxisLabelFont() { return this.categoryAxisLabelFont; } public Color getCategoryAxisLabelColor() { return JRStyleResolver.getCategoryAxisLabelColor((JRCategoryAxisFormat)this, (JRChartPlot)this); } public Color getOwnCategoryAxisLabelColor() { return this.categoryAxisLabelColor; } public JRFont getCategoryAxisTickLabelFont() { return this.categoryAxisTickLabelFont; } public Color getCategoryAxisTickLabelColor() { return JRStyleResolver.getCategoryAxisTickLabelColor((JRCategoryAxisFormat)this, (JRChartPlot)this); } public Color getOwnCategoryAxisTickLabelColor() { return this.categoryAxisTickLabelColor; } public String getCategoryAxisTickLabelMask() { return this.categoryAxisTickLabelMask; } public Color getCategoryAxisLineColor() { return JRStyleResolver.getCategoryAxisLineColor((JRCategoryAxisFormat)this, (JRChartPlot)this); } public Color getOwnCategoryAxisLineColor() { return this.categoryAxisLineColor; } public JRExpression getValueAxisLabelExpression() { return this.valueAxisLabelExpression; } public JRFont getValueAxisLabelFont() { return this.valueAxisLabelFont; } public Color getValueAxisLabelColor() { return JRStyleResolver.getValueAxisLabelColor((JRValueAxisFormat)this, (JRChartPlot)this); } public Color getOwnValueAxisLabelColor() { return this.valueAxisLabelColor; } public JRFont getValueAxisTickLabelFont() { return this.valueAxisTickLabelFont; } public Color getValueAxisTickLabelColor() { return JRStyleResolver.getValueAxisTickLabelColor((JRValueAxisFormat)this, (JRChartPlot)this); } public Color getOwnValueAxisTickLabelColor() { return this.valueAxisTickLabelColor; } public String getValueAxisTickLabelMask() { return this.valueAxisTickLabelMask; } public Color getValueAxisLineColor() { return JRStyleResolver.getValueAxisLineColor((JRValueAxisFormat)this, (JRChartPlot)this); } public Color getOwnValueAxisLineColor() { return this.valueAxisLineColor; } public boolean isShowShapes() { return this.isShowShapes; } public boolean isShowLines() { return this.isShowLines; } public void setShowShapes(boolean value) { boolean old = this.isShowShapes; this.isShowShapes = value; getEventSupport().firePropertyChange("showShapes", old, this.isShowShapes); } public void setShowLines(boolean value) { boolean old = this.isShowLines; this.isShowLines = value; getEventSupport().firePropertyChange("showShapes", old, this.isShowLines); } public void collectExpressions(JRExpressionCollector collector) { collector.collect(this); } public Object clone(JRChart parentChart) { JRBaseLinePlot clone = (JRBaseLinePlot)super.clone(parentChart); if (this.categoryAxisLabelExpression != null) clone.categoryAxisLabelExpression = (JRExpression)this.categoryAxisLabelExpression.clone(); if (this.valueAxisLabelExpression != null) clone.valueAxisLabelExpression = (JRExpression)this.valueAxisLabelExpression.clone(); return clone; } }