net.sf.jasperreports.engine.base.JRBasePrintImage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jasperreports Show documentation
Show all versions of jasperreports Show documentation
Free Java Reporting Library
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2022 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 .
*/
package net.sf.jasperreports.engine.base;
import java.io.IOException;
import java.io.ObjectInputStream;
import net.sf.jasperreports.engine.JRAnchor;
import net.sf.jasperreports.engine.JRConstants;
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
import net.sf.jasperreports.engine.JRHyperlinkHelper;
import net.sf.jasperreports.engine.JRLineBox;
import net.sf.jasperreports.engine.JRPen;
import net.sf.jasperreports.engine.JRPrintHyperlinkParameter;
import net.sf.jasperreports.engine.JRPrintHyperlinkParameters;
import net.sf.jasperreports.engine.JRPrintImage;
import net.sf.jasperreports.engine.PrintElementVisitor;
import net.sf.jasperreports.engine.type.HorizontalImageAlignEnum;
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.type.OnErrorTypeEnum;
import net.sf.jasperreports.engine.type.RotationEnum;
import net.sf.jasperreports.engine.type.ScaleImageEnum;
import net.sf.jasperreports.engine.type.VerticalImageAlignEnum;
import net.sf.jasperreports.renderers.Renderable;
import net.sf.jasperreports.renderers.ResourceRenderer;
/**
* @author Teodor Danciu ([email protected])
*/
public class JRBasePrintImage extends JRBasePrintGraphicElement implements JRPrintImage
{
/**
*
*/
private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
/**
*
*/
protected Renderable renderable;
protected ScaleImageEnum scaleImageValue;
protected RotationEnum rotation;
protected Boolean isUsingCache = Boolean.TRUE;
protected HorizontalImageAlignEnum horizontalImageAlign;
protected VerticalImageAlignEnum verticalImageAlign;
protected OnErrorTypeEnum onErrorTypeValue = OnErrorTypeEnum.ERROR;
protected JRLineBox lineBox;
protected String anchorName;
protected String linkType;
protected String linkTarget;
protected String hyperlinkReference;
protected String hyperlinkAnchor;
protected Integer hyperlinkPage;
protected String hyperlinkTooltip;
protected JRPrintHyperlinkParameters hyperlinkParameters;
/**
* The bookmark level for the anchor associated with this field.
* @see JRAnchor#getBookmarkLevel()
*/
protected int bookmarkLevel = JRAnchor.NO_BOOKMARK;
/**
*
*/
public JRBasePrintImage(JRDefaultStyleProvider defaultStyleProvider)
{
super(defaultStyleProvider);
lineBox = new JRBaseLineBox(this);
}
@Override
public ModeEnum getModeValue()
{
return getStyleResolver().getMode(this, ModeEnum.TRANSPARENT);
}
/**
* @deprecated Replaced by {@link #getRenderer()}.
*/
@Override
public net.sf.jasperreports.engine.Renderable getRenderable()
{
return net.sf.jasperreports.engine.RenderableUtil.getWrappingRenderable(renderable);
}
/**
* @deprecated Replaced by {@link #setRenderer(net.sf.jasperreports.renderers.Renderable)}.
*/
@Override
public void setRenderable(net.sf.jasperreports.engine.Renderable renderable)
{
this.renderable = renderable;
}
@Override
public Renderable getRenderer()
{
return renderable;
}
@Override
public void setRenderer(Renderable renderable)
{
this.renderable = renderable;
}
@Override
public ScaleImageEnum getScaleImageValue()
{
return getStyleResolver().getScaleImageValue(this);
}
@Override
public ScaleImageEnum getOwnScaleImageValue()
{
return this.scaleImageValue;
}
@Override
public void setScaleImage(ScaleImageEnum scaleImageValue)
{
this.scaleImageValue = scaleImageValue;
}
@Override
public RotationEnum getRotation()
{
return getStyleResolver().getRotation(this);
}
@Override
public RotationEnum getOwnRotation()
{
return rotation;
}
@Override
public void setRotation(RotationEnum rotation)
{
this.rotation = rotation;
}
@Override
public boolean isUsingCache()
{
return isUsingCache == null ? true : isUsingCache;
}
@Override
public void setUsingCache(boolean isUsingCache)
{
this.isUsingCache = isUsingCache;
}
@Override
public HorizontalImageAlignEnum getHorizontalImageAlign()
{
return getStyleResolver().getHorizontalImageAlign(this);
}
@Override
public HorizontalImageAlignEnum getOwnHorizontalImageAlign()
{
return horizontalImageAlign;
}
@Override
public void setHorizontalImageAlign(HorizontalImageAlignEnum horizontalImageAlign)
{
this.horizontalImageAlign = horizontalImageAlign;
}
@Override
public VerticalImageAlignEnum getVerticalImageAlign()
{
return getStyleResolver().getVerticalImageAlign(this);
}
@Override
public VerticalImageAlignEnum getOwnVerticalImageAlign()
{
return verticalImageAlign;
}
@Override
public void setVerticalImageAlign(VerticalImageAlignEnum verticalImageAlign)
{
this.verticalImageAlign = verticalImageAlign;
}
/**
* @deprecated Replaced by {@link ResourceRenderer}.
*/
@Override
public boolean isLazy()
{
return isLazy;
}
/**
* @deprecated Replaced by {@link ResourceRenderer}.
*/
@Override
public void setLazy(boolean isLazy)
{
this.isLazy = isLazy;
}
@Override
public OnErrorTypeEnum getOnErrorTypeValue()
{
return this.onErrorTypeValue;
}
@Override
public void setOnErrorType(OnErrorTypeEnum onErrorTypeValue)
{
this.onErrorTypeValue = onErrorTypeValue;
}
@Override
public JRLineBox getLineBox()
{
return lineBox;
}
/**
*
*/
public void copyBox(JRLineBox lineBox)
{
this.lineBox = lineBox.clone(this);
}
@Override
public Float getDefaultLineWidth()
{
return JRPen.LINE_WIDTH_0;
}
@Override
public String getAnchorName()
{
return anchorName;
}
@Override
public void setAnchorName(String anchorName)
{
this.anchorName = anchorName;
}
@Override
public HyperlinkTypeEnum getHyperlinkTypeValue()
{
return JRHyperlinkHelper.getHyperlinkTypeValue(getLinkType());
}
@Override
public void setHyperlinkType(HyperlinkTypeEnum hyperlinkType)
{
setLinkType(JRHyperlinkHelper.getLinkType(hyperlinkType));
}
@Override
public HyperlinkTargetEnum getHyperlinkTargetValue()
{
return JRHyperlinkHelper.getHyperlinkTargetValue(getLinkTarget());
}
@Override
public void setHyperlinkTarget(HyperlinkTargetEnum hyperlinkTarget)
{
setLinkTarget(JRHyperlinkHelper.getLinkTarget(hyperlinkTarget));
}
@Override
public String getHyperlinkReference()
{
return hyperlinkReference;
}
@Override
public void setHyperlinkReference(String hyperlinkReference)
{
this.hyperlinkReference = hyperlinkReference;
}
@Override
public String getHyperlinkAnchor()
{
return hyperlinkAnchor;
}
@Override
public void setHyperlinkAnchor(String hyperlinkAnchor)
{
this.hyperlinkAnchor = hyperlinkAnchor;
}
@Override
public Integer getHyperlinkPage()
{
return hyperlinkPage;
}
@Override
public void setHyperlinkPage(Integer hyperlinkPage)
{
this.hyperlinkPage = hyperlinkPage;
}
/**
*
*/
public void setHyperlinkPage(String hyperlinkPage)
{
this.hyperlinkPage = Integer.valueOf(hyperlinkPage);
}
@Override
public int getBookmarkLevel()
{
return bookmarkLevel;
}
@Override
public void setBookmarkLevel(int bookmarkLevel)
{
this.bookmarkLevel = bookmarkLevel;
}
@Override
public JRPrintHyperlinkParameters getHyperlinkParameters()
{
return hyperlinkParameters;
}
@Override
public void setHyperlinkParameters(JRPrintHyperlinkParameters hyperlinkParameters)
{
this.hyperlinkParameters = hyperlinkParameters;
}
/**
* Adds a custom hyperlink parameter.
*
* @param parameter the parameter to add
* @see #getHyperlinkParameters()
* @see JRPrintHyperlinkParameters#addParameter(JRPrintHyperlinkParameter)
*/
public void addHyperlinkParameter(JRPrintHyperlinkParameter parameter)
{
if (hyperlinkParameters == null)
{
hyperlinkParameters = new JRPrintHyperlinkParameters();
}
hyperlinkParameters.addParameter(parameter);
}
@Override
public String getLinkType()
{
return linkType;
}
@Override
public void setLinkType(String linkType)
{
this.linkType = linkType;
}
@Override
public String getLinkTarget()
{
return linkTarget;
}
@Override
public void setLinkTarget(String linkTarget)
{
this.linkTarget = linkTarget;
}
@Override
public String getHyperlinkTooltip()
{
return hyperlinkTooltip;
}
@Override
public void setHyperlinkTooltip(String hyperlinkTooltip)
{
this.hyperlinkTooltip = hyperlinkTooltip;
}
/*
* These fields are only for serialization backward compatibility.
*/
private int PSEUDO_SERIAL_VERSION_UID = JRConstants.PSEUDO_SERIAL_VERSION_UID; //NOPMD
/**
* @deprecated
*/
private Byte horizontalAlignment;
/**
* @deprecated
*/
private Byte verticalAlignment;
/**
* @deprecated
*/
private net.sf.jasperreports.engine.type.HorizontalAlignEnum horizontalAlignmentValue;
/**
* @deprecated
*/
private net.sf.jasperreports.engine.type.VerticalAlignEnum verticalAlignmentValue;
/**
* @deprecated
*/
private byte hyperlinkType;
/**
* @deprecated
*/
private byte hyperlinkTarget;
/**
* @deprecated
*/
private Byte scaleImage;
/**
* @deprecated
*/
private byte onErrorType;
/**
* @deprecated
*/
private net.sf.jasperreports.engine.JRRenderable renderer;
/**
* @deprecated
*/
private boolean isLazy;
@SuppressWarnings("deprecation")
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
{
in.defaultReadObject();
if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_3_7_2)
{
horizontalAlignmentValue = net.sf.jasperreports.engine.type.HorizontalAlignEnum.getByValue(horizontalAlignment);
verticalAlignmentValue = net.sf.jasperreports.engine.type.VerticalAlignEnum.getByValue(verticalAlignment);
scaleImageValue = ScaleImageEnum.getByValue(scaleImage);
onErrorTypeValue = OnErrorTypeEnum.getByValue(onErrorType);
horizontalAlignment = null;
verticalAlignment = null;
scaleImage = null;
}
if (linkType == null)
{
linkType = JRHyperlinkHelper.getLinkType(HyperlinkTypeEnum.getByValue(hyperlinkType));
}
if (linkTarget == null)
{
linkTarget = JRHyperlinkHelper.getLinkTarget(HyperlinkTargetEnum.getByValue(hyperlinkTarget));
}
if (renderer != null && renderable == null)
{
if (renderer instanceof Renderable)
{
renderable = (Renderable)renderer;
}
else
{
renderable = net.sf.jasperreports.engine.RenderableUtil.getWrappingRenderable(renderer);
}
}
if (PSEUDO_SERIAL_VERSION_UID < JRConstants.PSEUDO_SERIAL_VERSION_UID_6_0_2)
{
horizontalImageAlign = net.sf.jasperreports.engine.type.HorizontalAlignEnum.getHorizontalImageAlignEnum(horizontalAlignmentValue);
verticalImageAlign = net.sf.jasperreports.engine.type.VerticalAlignEnum.getVerticalImageAlignEnum(verticalAlignmentValue);
horizontalAlignmentValue = null;
verticalAlignmentValue = null;
}
}
@Override
public void accept(PrintElementVisitor visitor, T arg)
{
visitor.visit(this, arg);
}
}