/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.jasperreports.engine.base;
import java.awt.Color;
import java.io.IOException;
import java.io.ObjectInputStream;
import net.sf.jasperreports.charts.JRAreaPlot;
import net.sf.jasperreports.charts.JRBar3DPlot;
import net.sf.jasperreports.charts.JRBarPlot;
import net.sf.jasperreports.charts.JRBubblePlot;
import net.sf.jasperreports.charts.JRCandlestickPlot;
import net.sf.jasperreports.charts.JRCategoryDataset;
import net.sf.jasperreports.charts.JRGanttDataset;
import net.sf.jasperreports.charts.JRHighLowDataset;
import net.sf.jasperreports.charts.JRHighLowPlot;
import net.sf.jasperreports.charts.JRLinePlot;
import net.sf.jasperreports.charts.JRMeterPlot;
import net.sf.jasperreports.charts.JRMultiAxisPlot;
import net.sf.jasperreports.charts.JRPie3DPlot;
import net.sf.jasperreports.charts.JRPieDataset;
import net.sf.jasperreports.charts.JRPiePlot;
import net.sf.jasperreports.charts.JRScatterPlot;
import net.sf.jasperreports.charts.JRThermometerPlot;
import net.sf.jasperreports.charts.JRTimePeriodDataset;
import net.sf.jasperreports.charts.JRTimeSeriesDataset;
import net.sf.jasperreports.charts.JRTimeSeriesPlot;
import net.sf.jasperreports.charts.JRValueDataset;
import net.sf.jasperreports.charts.JRXyDataset;
import net.sf.jasperreports.charts.JRXyzDataset;
import net.sf.jasperreports.charts.type.EdgeEnum;
import net.sf.jasperreports.engine.JRAnchor;
import net.sf.jasperreports.engine.JRBox;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartDataset;
import net.sf.jasperreports.engine.JRChartPlot;
import net.sf.jasperreports.engine.JRConstants;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRExpressionCollector;
import net.sf.jasperreports.engine.JRFont;
import net.sf.jasperreports.engine.JRGroup;
import net.sf.jasperreports.engine.JRHyperlinkHelper;
import net.sf.jasperreports.engine.JRHyperlinkParameter;
import net.sf.jasperreports.engine.JRLineBox;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JRVisitor;
import net.sf.jasperreports.engine.type.EvaluationTimeEnum;
import net.sf.jasperreports.engine.type.HyperlinkTargetEnum;
import net.sf.jasperreports.engine.type.HyperlinkTypeEnum;
import net.sf.jasperreports.engine.type.ModeEnum;
import net.sf.jasperreports.engine.util.JRBoxUtil;
import net.sf.jasperreports.engine.util.JRPenUtil;
import net.sf.jasperreports.engine.util.JRStyleResolver;
import net.sf.jasperreports.engine.util.LineBoxWrapper;
/**
* @author Teodor Danciu (teodord@users.sourceforge.net)
* @version $Id: JRBaseChart.java 3941 2010-08-20 10:55:10Z teodord $
*/
public class JRBaseChart extends JRBaseElement implements JRChart
{
/**
*
*/
private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
/*
* Chart properties
*/
public static final String PROPERTY_LEGEND_BACKGROUND_COLOR = "legendBackgroundColor";
public static final String PROPERTY_LEGEND_COLOR = "legendColor";
public static final String PROPERTY_LEGEND_POSITION = "legendPosition";
public static final String PROPERTY_SHOW_LEGEND = "showLegend";
public static final String PROPERTY_SUBTITLE_COLOR = "subtitleColor";
public static final String PROPERTY_TITLE_COLOR = "titleColor";
public static final String PROPERTY_TITLE_POSITION = "titlePosition";
public static final String PROPERTY_RENDER_TYPE = "renderType";
public static final String PROPERTY_THEME = "theme";
/**
*
*/
protected byte chartType;
/**
*
*/
protected Boolean showLegend;
protected EvaluationTimeEnum evaluationTimeValue = EvaluationTimeEnum.NOW;
protected String linkType;
protected String linkTarget;
private JRHyperlinkParameter[] hyperlinkParameters;
protected Color titleColor;
protected Color subtitleColor;
protected Color legendColor;
protected Color legendBackgroundColor;
protected EdgeEnum legendPositionValue;
protected EdgeEnum titlePositionValue;
protected String renderType;
protected String theme;
/**
*
*/
protected JRLineBox lineBox;
protected JRFont titleFont;
protected JRFont subtitleFont;
protected JRFont legendFont;
protected String customizerClass;
/**
*
*/
protected JRGroup evaluationGroup;
protected JRExpression titleExpression;
protected JRExpression subtitleExpression;
protected JRExpression anchorNameExpression;
protected JRExpression hyperlinkReferenceExpression;
protected JRExpression hyperlinkAnchorExpression;
protected JRExpression hyperlinkPageExpression;
private JRExpression hyperlinkTooltipExpression;
protected JRChartDataset dataset;
protected JRChartPlot plot;
/**
* The bookmark level for the anchor associated with this chart.
* @see JRAnchor#getBookmarkLevel()
*/
protected int bookmarkLevel = JRAnchor.NO_BOOKMARK;
/**
*
*/
protected JRBaseChart(JRChart chart, JRBaseObjectFactory factory)
{
super(chart, factory);
chartType = chart.getChartType();
switch(chartType) {
case CHART_TYPE_AREA:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getAreaPlot((JRAreaPlot) chart.getPlot());
break;
case CHART_TYPE_BAR:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getBarPlot((JRBarPlot) chart.getPlot());
break;
case CHART_TYPE_BAR3D:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getBar3DPlot((JRBar3DPlot) chart.getPlot());
break;
case CHART_TYPE_BUBBLE:
dataset = factory.getXyzDataset((JRXyzDataset) chart.getDataset());
plot = factory.getBubblePlot((JRBubblePlot) chart.getPlot());
break;
case CHART_TYPE_CANDLESTICK:
dataset = factory.getHighLowDataset((JRHighLowDataset) chart.getDataset());
plot = factory.getCandlestickPlot((JRCandlestickPlot) chart.getPlot());
break;
case CHART_TYPE_HIGHLOW:
dataset = factory.getHighLowDataset((JRHighLowDataset) chart.getDataset());
plot = factory.getHighLowPlot((JRHighLowPlot) chart.getPlot());
break;
case CHART_TYPE_LINE:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getLinePlot((JRLinePlot) chart.getPlot());
break;
case CHART_TYPE_METER:
dataset = factory.getValueDataset((JRValueDataset) chart.getDataset());
plot = factory.getMeterPlot((JRMeterPlot) chart.getPlot());
break;
case CHART_TYPE_MULTI_AXIS:
dataset = null;
plot = factory.getMultiAxisPlot((JRMultiAxisPlot) chart.getPlot());
break;
case CHART_TYPE_PIE:
dataset = factory.getPieDataset((JRPieDataset) chart.getDataset());
plot = factory.getPiePlot((JRPiePlot) chart.getPlot());
break;
case CHART_TYPE_PIE3D:
dataset = factory.getPieDataset((JRPieDataset) chart.getDataset());
plot = factory.getPie3DPlot((JRPie3DPlot) chart.getPlot());
break;
case CHART_TYPE_SCATTER:
dataset = factory.getXyDataset((JRXyDataset) chart.getDataset());
plot = factory.getScatterPlot((JRScatterPlot) chart.getPlot());
break;
case CHART_TYPE_STACKEDBAR:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getBarPlot((JRBarPlot) chart.getPlot());
break;
case CHART_TYPE_STACKEDBAR3D:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getBar3DPlot((JRBar3DPlot) chart.getPlot());
break;
case CHART_TYPE_THERMOMETER:
dataset = factory.getValueDataset((JRValueDataset) chart.getDataset());
plot = factory.getThermometerPlot((JRThermometerPlot) chart.getPlot());
break;
case CHART_TYPE_TIMESERIES:
dataset = factory.getTimeSeriesDataset((JRTimeSeriesDataset)chart.getDataset());
plot = factory.getTimeSeriesPlot( (JRTimeSeriesPlot)chart.getPlot() );
break;
case CHART_TYPE_XYAREA:
dataset = factory.getXyDataset((JRXyDataset) chart.getDataset());
plot = factory.getAreaPlot((JRAreaPlot) chart.getPlot());
break;
case CHART_TYPE_XYBAR:
switch (chart.getDataset().getDatasetType()){
case JRChartDataset.TIMESERIES_DATASET:
dataset = factory.getTimeSeriesDataset((JRTimeSeriesDataset) chart.getDataset());
break;
case JRChartDataset.TIMEPERIOD_DATASET:
dataset = factory.getTimePeriodDataset((JRTimePeriodDataset) chart.getDataset() );
break;
case JRChartDataset.XY_DATASET:
dataset = factory.getXyDataset( (JRXyDataset)chart.getDataset() );
break;
}
plot = factory.getBarPlot((JRBarPlot)chart.getPlot());
break;
case CHART_TYPE_XYLINE:
dataset = factory.getXyDataset((JRXyDataset) chart.getDataset());
plot = factory.getLinePlot((JRLinePlot) chart.getPlot());
break;
case CHART_TYPE_STACKEDAREA:
dataset = factory.getCategoryDataset((JRCategoryDataset) chart.getDataset());
plot = factory.getAreaPlot((JRAreaPlot) chart.getPlot());
break;
case CHART_TYPE_GANTT:
dataset = factory.getGanttDataset((JRGanttDataset) chart.getDataset());
plot = factory.getBarPlot((JRBarPlot) chart.getPlot());
break;
default:
throw new JRRuntimeException("Chart type not supported.");
}
showLegend = chart.getShowLegend();
evaluationTimeValue = chart.getEvaluationTimeValue();
linkType = chart.getLinkType();
linkTarget = chart.getLinkTarget();
titlePositionValue = chart.getTitlePositionValue();
titleColor = chart.getOwnTitleColor();
subtitleColor = chart.getOwnSubtitleColor();
legendColor = chart.getOwnLegendColor();
legendBackgroundColor = chart.getOwnLegendBackgroundColor();
legendPositionValue = chart.getLegendPositionValue();
renderType = chart.getRenderType();
theme = chart.getTheme();
titleFont = new JRBaseFont(this, chart.getTitleFont());
subtitleFont = new JRBaseFont(this, chart.getSubtitleFont());
legendFont = new JRBaseFont(this, chart.getLegendFont());
evaluationGroup = factory.getGroup(chart.getEvaluationGroup());
titleExpression = factory.getExpression(chart.getTitleExpression());
subtitleExpression = factory.getExpression(chart.getSubtitleExpression());
anchorNameExpression = factory.getExpression(chart.getAnchorNameExpression());
hyperlinkReferenceExpression = factory.getExpression(chart.getHyperlinkReferenceExpression());
hyperlinkAnchorExpression = factory.getExpression(chart.getHyperlinkAnchorExpression());
hyperlinkPageExpression = factory.getExpression(chart.getHyperlinkPageExpression());
hyperlinkTooltipExpression = factory.getExpression(chart.getHyperlinkTooltipExpression());
bookmarkLevel = chart.getBookmarkLevel();
hyperlinkParameters = JRBaseHyperlink.copyHyperlinkParameters(chart, factory);
customizerClass = chart.getCustomizerClass();
lineBox = chart.getLineBox().clone(this);
}
/**
* @deprecated Replaced by {@link #getShowLegend()}
*/
public boolean isShowLegend()
{
return this.showLegend == null ? false : showLegend.booleanValue();
}
/**
* @deprecated Replaced by {@link #setShowLegend(Boolean)}
*/
public void setShowLegend(boolean isShowLegend)
{
setShowLegend(Boolean.valueOf(isShowLegend));
}
/**
*
*/
public Boolean getShowLegend()
{
return this.showLegend;
}
/**
*
*/
public void setShowLegend(Boolean isShowLegend)
{
Boolean old = this.showLegend;
this.showLegend = isShowLegend;
getEventSupport().firePropertyChange(PROPERTY_SHOW_LEGEND, old, this.showLegend);
}
/**
* @deprecated Replaced by {@link #getEvaluationTimeValue()}.
*/
public byte getEvaluationTime()
{
return getEvaluationTimeValue().getValue();
}
/**
*
*/
public EvaluationTimeEnum getEvaluationTimeValue()
{
return evaluationTimeValue;
}
/**
*
*/
public JRGroup getEvaluationGroup()
{
return evaluationGroup;
}
/**
* @deprecated Replaced by {@link #getLineBox()}
*/
public JRBox getBox()
{
return new LineBoxWrapper(getLineBox());
}
/**
*
*/
public JRLineBox getLineBox()
{
return lineBox;
}
/**
*
*/
public JRFont getTitleFont()
{
return titleFont;
}
/**
* @deprecated Replaced by {@link #getTitlePositionValue()}
*/
public byte getTitlePosition()
{
return getTitlePositionValue() == null ? EdgeEnum.TOP.getValue() : getTitlePositionValue().getValue();
}
/**
* @deprecated Replaced by {@link #setTitlePosition(EdgeEnum)}
*/
public void setTitlePosition(byte titlePosition)
{
setTitlePosition(EdgeEnum.getByValue(titlePosition));
}
/**
* @deprecated Replaced by {@link #getTitlePositionValue()}
*/
public Byte getTitlePositionByte()
{
return getTitlePositionValue() == null ? null : getTitlePositionValue().getValueByte();
}
/**
* @deprecated Replaced by {@link #setTitlePosition(EdgeEnum)}
*/
public void setTitlePosition(Byte titlePosition)
{
setTitlePosition(EdgeEnum.getByValue(titlePosition));
}
/**
*
*/
public EdgeEnum getTitlePositionValue()
{
return titlePositionValue;
}
/**
*
*/
public void setTitlePosition(EdgeEnum titlePositionValue)
{
EdgeEnum old = this.titlePositionValue;
this.titlePositionValue = titlePositionValue;
getEventSupport().firePropertyChange(PROPERTY_TITLE_POSITION, old, this.titlePositionValue);
}
/**
*
*/
public Color getTitleColor()
{
return JRStyleResolver.getTitleColor(this);
}
/**
*
*/
public Color getOwnTitleColor()
{
return titleColor;
}
/**
*
*/
public void setTitleColor(Color titleColor)
{
Object old = this.titleColor;
this.titleColor = titleColor;
getEventSupport().firePropertyChange(PROPERTY_TITLE_COLOR, old, this.titleColor);
}
/**
*
*/
public JRFont getSubtitleFont()
{
return subtitleFont;
}
/**
*
*/
public Color getOwnSubtitleColor()
{
return subtitleColor;
}
/**
*
*/
public Color getSubtitleColor()
{
return JRStyleResolver.getSubtitleColor(this);
}
/**
*
*/
public void setSubtitleColor(Color subtitleColor)
{
Object old = this.subtitleColor;
this.subtitleColor = subtitleColor;
getEventSupport().firePropertyChange(PROPERTY_SUBTITLE_COLOR, old, this.subtitleColor);
}
public Color getLegendBackgroundColor() {
return JRStyleResolver.getLegendBackgroundColor(this);
}
public Color getOwnLegendBackgroundColor() {
return legendBackgroundColor;
}
public Color getOwnLegendColor() {
return legendColor;
}
public Color getLegendColor() {
return JRStyleResolver.getLegendColor(this);
}
public JRFont getLegendFont() {
return legendFont;
}
public void setLegendBackgroundColor(Color legendBackgroundColor) {
Object old = this.legendBackgroundColor;
this.legendBackgroundColor = legendBackgroundColor;
getEventSupport().firePropertyChange(PROPERTY_LEGEND_BACKGROUND_COLOR, old, this.legendBackgroundColor);
}
public void setLegendColor(Color legendColor) {
Object old = this.legendColor;
this.legendColor = legendColor;
getEventSupport().firePropertyChange(PROPERTY_LEGEND_COLOR, old, this.legendColor);
}
/**
* @deprecated Replaced by {@link #getLegendPositionValue()}
*/
public byte getLegendPosition()
{
return getLegendPositionValue() == null? EdgeEnum.BOTTOM.getValue() : getLegendPositionValue().getValue();
}
/**
* @deprecated Replaced by {@link #setLegendPosition(EdgeEnum)}
*/
public void setLegendPosition(byte legendPosition)
{
setLegendPosition(EdgeEnum.getByValue(legendPosition));
}
/**
* @deprecated Replaced by {@link #getLegendPositionValue()}
*/
public Byte getLegendPositionByte()
{
return getLegendPositionValue() == null? null : getLegendPositionValue().getValueByte();
}
/**
* @deprecated Replaced by {@link #setLegendPosition(EdgeEnum)}
*/
public void setLegendPosition(Byte legendPosition)
{
setLegendPosition(EdgeEnum.getByValue(legendPosition));
}
/**
*
*/
public EdgeEnum getLegendPositionValue()
{
return legendPositionValue;
}
/**
*
*/
public void setLegendPosition(EdgeEnum legendPositionValue)
{
EdgeEnum old = this.legendPositionValue;
this.legendPositionValue = legendPositionValue;
getEventSupport().firePropertyChange(PROPERTY_LEGEND_POSITION, old, this.legendPositionValue);
}
/**
* @deprecated Replaced by {@link #getHyperlinkTypeValue()}.
*/
public byte getHyperlinkType()
{
return getHyperlinkTypeValue().getValue();
}
/**
*
*/
public HyperlinkTypeEnum getHyperlinkTypeValue()
{
return JRHyperlinkHelper.getHyperlinkTypeValue(this);
}
/**
*
*/
public byte getHyperlinkTarget()
{
return JRHyperlinkHelper.getHyperlinkTarget(this);
}
/**
*
*/
public JRExpression getTitleExpression()
{
return titleExpression;
}
/**
*
*/
public JRExpression getSubtitleExpression()
{
return subtitleExpression;
}
/**
*
*/
public JRExpression getAnchorNameExpression()
{
return anchorNameExpression;
}
/**
*
*/
public JRExpression getHyperlinkReferenceExpression()
{
return hyperlinkReferenceExpression;
}
/**
*
*/
public JRExpression getHyperlinkAnchorExpression()
{
return hyperlinkAnchorExpression;
}
/**
*
*/
public JRExpression getHyperlinkPageExpression()
{
return hyperlinkPageExpression;
}
/**
*
*/
public JRChartDataset getDataset()
{
return dataset;
}
/**
*
*/
public JRChartPlot getPlot()
{
return plot;
}
public byte getChartType()
{
return chartType;
}
/**
*
*/
public String getRenderType()
{
return renderType;
}
/**
*
*/
public void setRenderType(String renderType)
{
String old = this.renderType;
this.renderType = renderType;
getEventSupport().firePropertyChange(PROPERTY_RENDER_TYPE, old, this.renderType);
}
/**
*
*/
public String getTheme()
{
return theme;
}
/**
*
*/
public void setTheme(String theme)
{
String old = this.theme;
this.theme = theme;
getEventSupport().firePropertyChange(PROPERTY_THEME, old, this.theme);
}
public void collectExpressions(JRExpressionCollector collector)
{
collector.collect(this);
}
public void visit(JRVisitor visitor)
{
visitor.visitChart(this);
}
public int getBookmarkLevel()
{
return bookmarkLevel;
}
/**
*
*/
public String getCustomizerClass()
{
return customizerClass;
}
/**
*
*/
public ModeEnum getModeValue()
{
return JRStyleResolver.getMode(this, ModeEnum.TRANSPARENT);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public byte getBorder()
{
return JRPenUtil.getPenFromLinePen(lineBox.getPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Byte getOwnBorder()
{
return JRPenUtil.getOwnPenFromLinePen(lineBox.getPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBorder(byte border)
{
JRPenUtil.setLinePenFromPen(border, lineBox.getPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBorder(Byte border)
{
JRPenUtil.setLinePenFromPen(border, lineBox.getPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getBorderColor()
{
return lineBox.getPen().getLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getOwnBorderColor()
{
return lineBox.getPen().getOwnLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBorderColor(Color borderColor)
{
lineBox.getPen().setLineColor(borderColor);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public int getPadding()
{
return lineBox.getPadding().intValue();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Integer getOwnPadding()
{
return lineBox.getOwnPadding();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setPadding(int padding)
{
lineBox.setPadding(padding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setPadding(Integer padding)
{
lineBox.setPadding(padding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public byte getTopBorder()
{
return JRPenUtil.getPenFromLinePen(lineBox.getTopPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Byte getOwnTopBorder()
{
return JRPenUtil.getOwnPenFromLinePen(lineBox.getTopPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setTopBorder(byte topBorder)
{
JRPenUtil.setLinePenFromPen(topBorder, lineBox.getTopPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setTopBorder(Byte topBorder)
{
JRPenUtil.setLinePenFromPen(topBorder, lineBox.getTopPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getTopBorderColor()
{
return lineBox.getTopPen().getLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getOwnTopBorderColor()
{
return lineBox.getTopPen().getOwnLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setTopBorderColor(Color topBorderColor)
{
lineBox.getTopPen().setLineColor(topBorderColor);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public int getTopPadding()
{
return lineBox.getTopPadding().intValue();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Integer getOwnTopPadding()
{
return lineBox.getOwnTopPadding();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setTopPadding(int topPadding)
{
lineBox.setTopPadding(topPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setTopPadding(Integer topPadding)
{
lineBox.setTopPadding(topPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public byte getLeftBorder()
{
return JRPenUtil.getPenFromLinePen(lineBox.getLeftPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Byte getOwnLeftBorder()
{
return JRPenUtil.getOwnPenFromLinePen(lineBox.getLeftPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setLeftBorder(byte leftBorder)
{
JRPenUtil.setLinePenFromPen(leftBorder, lineBox.getLeftPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setLeftBorder(Byte leftBorder)
{
JRPenUtil.setLinePenFromPen(leftBorder, lineBox.getLeftPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getLeftBorderColor()
{
return lineBox.getLeftPen().getLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getOwnLeftBorderColor()
{
return lineBox.getLeftPen().getOwnLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setLeftBorderColor(Color leftBorderColor)
{
lineBox.getLeftPen().setLineColor(leftBorderColor);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public int getLeftPadding()
{
return lineBox.getLeftPadding().intValue();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Integer getOwnLeftPadding()
{
return lineBox.getOwnLeftPadding();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setLeftPadding(int leftPadding)
{
lineBox.setLeftPadding(leftPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setLeftPadding(Integer leftPadding)
{
lineBox.setLeftPadding(leftPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public byte getBottomBorder()
{
return JRPenUtil.getPenFromLinePen(lineBox.getBottomPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Byte getOwnBottomBorder()
{
return JRPenUtil.getOwnPenFromLinePen(lineBox.getBottomPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBottomBorder(byte bottomBorder)
{
JRPenUtil.setLinePenFromPen(bottomBorder, lineBox.getBottomPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBottomBorder(Byte bottomBorder)
{
JRPenUtil.setLinePenFromPen(bottomBorder, lineBox.getBottomPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getBottomBorderColor()
{
return lineBox.getBottomPen().getLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getOwnBottomBorderColor()
{
return lineBox.getBottomPen().getOwnLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBottomBorderColor(Color bottomBorderColor)
{
lineBox.getBottomPen().setLineColor(bottomBorderColor);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public int getBottomPadding()
{
return lineBox.getBottomPadding().intValue();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Integer getOwnBottomPadding()
{
return lineBox.getOwnBottomPadding();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBottomPadding(int bottomPadding)
{
lineBox.setBottomPadding(bottomPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setBottomPadding(Integer bottomPadding)
{
lineBox.setBottomPadding(bottomPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public byte getRightBorder()
{
return JRPenUtil.getPenFromLinePen(lineBox.getRightPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Byte getOwnRightBorder()
{
return JRPenUtil.getOwnPenFromLinePen(lineBox.getRightPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setRightBorder(byte rightBorder)
{
JRPenUtil.setLinePenFromPen(rightBorder, lineBox.getRightPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setRightBorder(Byte rightBorder)
{
JRPenUtil.setLinePenFromPen(rightBorder, lineBox.getRightPen());
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getRightBorderColor()
{
return lineBox.getRightPen().getLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Color getOwnRightBorderColor()
{
return lineBox.getRightPen().getOwnLineColor();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setRightBorderColor(Color rightBorderColor)
{
lineBox.getRightPen().setLineColor(rightBorderColor);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public int getRightPadding()
{
return lineBox.getRightPadding().intValue();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public Integer getOwnRightPadding()
{
return lineBox.getOwnRightPadding();
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setRightPadding(int rightPadding)
{
lineBox.setRightPadding(rightPadding);
}
/**
* @deprecated Replaced by {@link #getBox()}
*/
public void setRightPadding(Integer rightPadding)
{
lineBox.setRightPadding(rightPadding);
}
public String getLinkType()
{
return linkType;
}
public String getLinkTarget()
{
return linkTarget;
}
public JRHyperlinkParameter[] getHyperlinkParameters()
{
return hyperlinkParameters;
}
public JRExpression getHyperlinkTooltipExpression()
{
return hyperlinkTooltipExpression;
}
/**
*
*/
public Color getDefaultLineColor()
{
return getForecolor();
}
/**
*
*/
public Object clone()
{
JRBaseChart clone = (JRBaseChart)super.clone();
clone.lineBox = lineBox.clone(clone);
if (hyperlinkParameters != null)
{
clone.hyperlinkParameters = new JRHyperlinkParameter[hyperlinkParameters.length];
for(int i = 0; i < hyperlinkParameters.length; i++)
{
clone.hyperlinkParameters[i] = (JRHyperlinkParameter)hyperlinkParameters[i].clone();
}
}
if (titleExpression != null)
{
clone.titleExpression = (JRExpression)titleExpression.clone();
}
if (subtitleExpression != null)
{
clone.subtitleExpression = (JRExpression)subtitleExpression.clone();
}
if (anchorNameExpression != null)
{
clone.anchorNameExpression = (JRExpression)anchorNameExpression.clone();
}
if (hyperlinkReferenceExpression != null)
{
clone.hyperlinkReferenceExpression = (JRExpression)hyperlinkReferenceExpression.clone();
}
if (hyperlinkAnchorExpression != null)
{
clone.hyperlinkAnchorExpression = (JRExpression)hyperlinkAnchorExpression.clone();
}
if (hyperlinkPageExpression != null)
{
clone.hyperlinkPageExpression = (JRExpression)hyperlinkPageExpression.clone();
}
if (hyperlinkTooltipExpression != null)
{
clone.hyperlinkTooltipExpression = (JRExpression)hyperlinkTooltipExpression.clone();
}
if (dataset != null)
{
clone.dataset = (JRChartDataset)dataset.clone();
}
if (plot != null)
{
clone.plot = (JRChartPlot)plot.clone(clone);
}
return clone;
}
/*
* These fields are only for serialization backward compatibility.
*/
private int PSEUDO_SERIAL_VERSION_UID = JRConstants.PSEUDO_SERIAL_VERSION_UID; //NOPMD
/**
* @deprecated
*/
private Byte border;
/**
* @deprecated
*/
private Byte topBorder;
/**
* @deprecated
*/
private Byte leftBorder;
/**
* @deprecated
*/
private Byte bottomBorder;
/**
* @deprecated
*/
private Byte rightBorder;
/**
* @deprecated
*/
private Color borderColor;
/**
* @deprecated
*/
private Color topBorderColor;
/**
* @deprecated
*/
private Color leftBorderColor;
/**
* @deprecated
*/
private Color bottomBorderColor;
/**
* @deprecated
*/
private Color rightBorderColor;
/**
* @deprecated
*/
private Integer padding;
/**
* @deprecated
*/
private Integer topPadding;
/**
* @deprecated
*/
private Integer leftPadding;
/**
* @deprecated
*/
private Integer bottomPadding;
/**
* @deprecated
*/
private Integer rightPadding;
/**
* @deprecated
*/
private boolean isShowLegend;
/**
* @deprecated
*/
private byte legendPosition;
/**
* @deprecated
*/
private byte titlePosition;
/**
* @deprecated
*/
private byte hyperlinkType;
/**
* @deprecated
*/
private byte hyperlinkTarget;
/**
* @deprecated
*/
private byte evaluationTime;
/**
* @deprecated
*/
private Byte legendPositionByte;
/**
* @deprecated
*/
private Byte titlePositionByte;
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
{
in.defaultReadObject();
if (lineBox == null)
{
lineBox = new JRBaseLineBox(this);
JRBoxUtil.setToBox(
border,
topBorder,
leftBorder,
bottomBorder,
rightBorder,
borderColor,
topBorderColor,
leftBorderColor,
bottomBorderColor,
rightBorderColor,
padding,
topPadding,
leftPadding,
bottomPadding,
rightPadding,
lineBox
);
border = null;
topBorder = null;
leftBorder = null;
bottomBorder = null;
rightBorder = null;
borderColor = null;
topBorderColor = null;
leftBorderColor = null;
bottomBorderColor = null;
rightBorderColor = null;
padding = null;
topPadding = null;
leftPadding = null;
bottomPadding = null;
rightPadding = null;
}
if (linkType == null)
{
linkType = JRHyperlinkHelper.getLinkType(HyperlinkTypeEnum.getByValue(hyperlinkType));
}
if (linkTarget == null)
{
linkTarget = JRHyperlinkHelper.getLinkTarget(HyperlinkTargetEnum.getByValue(hyperlinkTarget));
}
if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_7_2)
{
evaluationTimeValue = EvaluationTimeEnum.getByValue(evaluationTime);
if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_1_3)
{
legendPositionValue = EdgeEnum.getByValue(legendPosition);
titlePositionValue = EdgeEnum.getByValue(titlePosition);
showLegend = Boolean.valueOf(isShowLegend);
}
else
{
legendPositionValue = EdgeEnum.getByValue(legendPositionByte);
titlePositionValue = EdgeEnum.getByValue(titlePositionByte);
legendPositionByte = null;
titlePositionByte = null;
}
}
}
}