net.sf.jasperreports.charts.base.JRBaseBubblePlot.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.jasperreports.charts.base.JRBaseBubblePlot.java

Source

/*
 * JasperReports - Free Java Reporting Library.
 * Copyright (C) 2001 - 2019 TIBCO Software Inc. 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.charts.base;

import java.awt.Color;
import java.io.IOException;
import java.io.ObjectInputStream;

import org.jfree.chart.renderer.xy.XYBubbleRenderer;

import net.sf.jasperreports.charts.JRBubblePlot;
import net.sf.jasperreports.charts.type.ScaleTypeEnum;
import net.sf.jasperreports.engine.JRChart;
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.base.JRBaseChartPlot;
import net.sf.jasperreports.engine.base.JRBaseObjectFactory;
import net.sf.jasperreports.engine.util.JRCloneUtils;

/**
 * @author Flavius Sana (flavius_sana@users.sourceforge.net)
 */
public class JRBaseBubblePlot extends JRBaseChartPlot implements JRBubblePlot {

    private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;

    public static final String PROPERTY_SCALE_TYPE = "scaleType";

    protected JRExpression xAxisLabelExpression;
    protected JRFont xAxisLabelFont;
    protected Color xAxisLabelColor;
    protected JRFont xAxisTickLabelFont;
    protected Color xAxisTickLabelColor;
    protected String xAxisTickLabelMask;
    protected Boolean xAxisVerticalTickLabels;
    protected Color xAxisLineColor;

    protected JRExpression yAxisLabelExpression;
    protected JRFont yAxisLabelFont;
    protected Color yAxisLabelColor;
    protected JRFont yAxisTickLabelFont;
    protected Color yAxisTickLabelColor;
    protected String yAxisTickLabelMask;
    protected Boolean yAxisVerticalTickLabels;
    protected Color yAxisLineColor;

    protected JRExpression domainAxisMinValueExpression;
    protected JRExpression domainAxisMaxValueExpression;
    protected JRExpression rangeAxisMinValueExpression;
    protected JRExpression rangeAxisMaxValueExpression;
    protected ScaleTypeEnum scaleTypeValue;

    /**
     * 
     */
    public JRBaseBubblePlot(JRChartPlot plot, JRChart chart) {
        super(plot, chart);

        JRBubblePlot bubblePlot = plot instanceof JRBubblePlot ? (JRBubblePlot) plot : null;
        if (bubblePlot != null) {
            xAxisLabelFont = bubblePlot.getXAxisLabelFont();
            xAxisTickLabelFont = bubblePlot.getXAxisTickLabelFont();
            yAxisLabelFont = bubblePlot.getYAxisLabelFont();
            yAxisTickLabelFont = bubblePlot.getYAxisTickLabelFont();
        }
    }

    /**
     * 
     */
    public JRBaseBubblePlot(JRBubblePlot bubblePlot, JRBaseObjectFactory factory) {
        super(bubblePlot, factory);

        scaleTypeValue = bubblePlot.getScaleTypeValue();

        xAxisLabelExpression = factory.getExpression(bubblePlot.getXAxisLabelExpression());
        xAxisLabelFont = factory.getFont(chart, bubblePlot.getXAxisLabelFont());
        xAxisLabelColor = bubblePlot.getOwnXAxisLabelColor();
        xAxisTickLabelFont = factory.getFont(chart, bubblePlot.getXAxisTickLabelFont());
        xAxisTickLabelColor = bubblePlot.getOwnXAxisTickLabelColor();
        xAxisTickLabelMask = bubblePlot.getXAxisTickLabelMask();
        xAxisVerticalTickLabels = bubblePlot.getXAxisVerticalTickLabels();
        xAxisLineColor = bubblePlot.getOwnXAxisLineColor();

        yAxisLabelExpression = factory.getExpression(bubblePlot.getYAxisLabelExpression());
        yAxisLabelFont = factory.getFont(chart, bubblePlot.getYAxisLabelFont());
        yAxisLabelColor = bubblePlot.getOwnYAxisLabelColor();
        yAxisTickLabelFont = factory.getFont(chart, bubblePlot.getYAxisTickLabelFont());
        yAxisTickLabelColor = bubblePlot.getOwnYAxisTickLabelColor();
        yAxisTickLabelMask = bubblePlot.getYAxisTickLabelMask();
        yAxisVerticalTickLabels = bubblePlot.getYAxisVerticalTickLabels();
        yAxisLineColor = bubblePlot.getOwnYAxisLineColor();

        domainAxisMinValueExpression = factory.getExpression(bubblePlot.getDomainAxisMinValueExpression());
        domainAxisMaxValueExpression = factory.getExpression(bubblePlot.getDomainAxisMaxValueExpression());
        rangeAxisMinValueExpression = factory.getExpression(bubblePlot.getRangeAxisMinValueExpression());
        rangeAxisMaxValueExpression = factory.getExpression(bubblePlot.getRangeAxisMaxValueExpression());
    }

    @Override
    public JRExpression getXAxisLabelExpression() {
        return xAxisLabelExpression;
    }

    @Override
    public JRFont getXAxisLabelFont() {
        return xAxisLabelFont;
    }

    @Override
    public Color getXAxisLabelColor() {
        return getStyleResolver().getXAxisLabelColor(this, this);
    }

    @Override
    public Color getOwnXAxisLabelColor() {
        return xAxisLabelColor;
    }

    @Override
    public JRFont getXAxisTickLabelFont() {
        return xAxisTickLabelFont;
    }

    @Override
    public Color getXAxisTickLabelColor() {
        return getStyleResolver().getXAxisTickLabelColor(this, this);
    }

    @Override
    public Color getOwnXAxisTickLabelColor() {
        return xAxisTickLabelColor;
    }

    @Override
    public String getXAxisTickLabelMask() {
        return xAxisTickLabelMask;
    }

    @Override
    public Boolean getXAxisVerticalTickLabels() {
        return xAxisVerticalTickLabels;
    }

    @Override
    public Color getXAxisLineColor() {
        return getStyleResolver().getXAxisLineColor(this, this);
    }

    @Override
    public Color getOwnXAxisLineColor() {
        return xAxisLineColor;
    }

    @Override
    public JRExpression getYAxisLabelExpression() {
        return yAxisLabelExpression;
    }

    @Override
    public JRFont getYAxisLabelFont() {
        return yAxisLabelFont;
    }

    @Override
    public Color getYAxisLabelColor() {
        return getStyleResolver().getYAxisLabelColor(this, this);
    }

    @Override
    public Color getOwnYAxisLabelColor() {
        return yAxisLabelColor;
    }

    @Override
    public JRFont getYAxisTickLabelFont() {
        return yAxisTickLabelFont;
    }

    @Override
    public Color getYAxisTickLabelColor() {
        return getStyleResolver().getYAxisTickLabelColor(this, this);
    }

    @Override
    public Color getOwnYAxisTickLabelColor() {
        return yAxisTickLabelColor;
    }

    @Override
    public String getYAxisTickLabelMask() {
        return yAxisTickLabelMask;
    }

    @Override
    public Boolean getYAxisVerticalTickLabels() {
        return yAxisVerticalTickLabels;
    }

    @Override
    public Color getYAxisLineColor() {
        return getStyleResolver().getYAxisLineColor(this, this);
    }

    @Override
    public Color getOwnYAxisLineColor() {
        return yAxisLineColor;
    }

    @Override
    public ScaleTypeEnum getScaleTypeValue() {
        return scaleTypeValue;
    }

    @Override
    public JRExpression getDomainAxisMinValueExpression() {
        return domainAxisMinValueExpression;
    }

    @Override
    public JRExpression getDomainAxisMaxValueExpression() {
        return domainAxisMaxValueExpression;
    }

    @Override
    public JRExpression getRangeAxisMinValueExpression() {
        return rangeAxisMinValueExpression;
    }

    @Override
    public JRExpression getRangeAxisMaxValueExpression() {
        return rangeAxisMaxValueExpression;
    }

    @Override
    public void setScaleType(ScaleTypeEnum scaleTypeValue) {
        ScaleTypeEnum old = this.scaleTypeValue;
        this.scaleTypeValue = scaleTypeValue;
        getEventSupport().firePropertyChange(PROPERTY_SCALE_TYPE, old, this.scaleTypeValue);
    }

    @Override
    public void collectExpressions(JRExpressionCollector collector) {
        collector.collect(this);
    }

    @Override
    public Object clone(JRChart parentChart) {
        JRBaseBubblePlot clone = (JRBaseBubblePlot) super.clone(parentChart);
        clone.xAxisLabelExpression = JRCloneUtils.nullSafeClone(xAxisLabelExpression);
        clone.yAxisLabelExpression = JRCloneUtils.nullSafeClone(yAxisLabelExpression);
        clone.domainAxisMinValueExpression = JRCloneUtils.nullSafeClone(domainAxisMinValueExpression);
        clone.domainAxisMaxValueExpression = JRCloneUtils.nullSafeClone(domainAxisMaxValueExpression);
        clone.rangeAxisMinValueExpression = JRCloneUtils.nullSafeClone(rangeAxisMinValueExpression);
        clone.rangeAxisMaxValueExpression = JRCloneUtils.nullSafeClone(rangeAxisMaxValueExpression);
        return clone;
    }

    /*
     * These fields are only for serialization backward compatibility.
     */
    private int PSEUDO_SERIAL_VERSION_UID = JRConstants.PSEUDO_SERIAL_VERSION_UID; //NOPMD
    /**
     * @deprecated
     */
    private int scaleType = XYBubbleRenderer.SCALE_ON_RANGE_AXIS;
    /**
     * @deprecated
     */
    private Integer scaleTypeInteger;

    @SuppressWarnings("deprecation")
    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        in.defaultReadObject();

        if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_1_0) {
            scaleTypeValue = ScaleTypeEnum.getByValue(scaleType);
        } else if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_7_2) {
            scaleTypeValue = ScaleTypeEnum.getByValue(scaleTypeInteger);
            scaleTypeInteger = null;
        }
    }

}