507 lines
14 KiB
Java
507 lines
14 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import java.awt.Color;
|
|
import java.io.IOException;
|
|
import java.io.ObjectInputStream;
|
|
import net.sf.jasperreports.engine.JRAlignment;
|
|
import net.sf.jasperreports.engine.JRBox;
|
|
import net.sf.jasperreports.engine.JRBoxContainer;
|
|
import net.sf.jasperreports.engine.JRChart;
|
|
import net.sf.jasperreports.engine.JRCommonImage;
|
|
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
|
|
import net.sf.jasperreports.engine.JRElement;
|
|
import net.sf.jasperreports.engine.JRGraphicElement;
|
|
import net.sf.jasperreports.engine.JRHyperlinkHelper;
|
|
import net.sf.jasperreports.engine.JRImage;
|
|
import net.sf.jasperreports.engine.JRLineBox;
|
|
import net.sf.jasperreports.engine.JROrigin;
|
|
import net.sf.jasperreports.engine.JRPen;
|
|
import net.sf.jasperreports.engine.JRPenContainer;
|
|
import net.sf.jasperreports.engine.base.JRBaseLineBox;
|
|
import net.sf.jasperreports.engine.base.JRBasePen;
|
|
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;
|
|
|
|
public class JRTemplateImage extends JRTemplateGraphicElement implements JRAlignment, JRBox, JRCommonImage {
|
|
private static final long serialVersionUID = 10200L;
|
|
|
|
private Byte scaleImage = null;
|
|
|
|
private Boolean isUsingCache = Boolean.TRUE;
|
|
|
|
private Byte horizontalAlignment = null;
|
|
|
|
private Byte verticalAlignment = null;
|
|
|
|
protected boolean isLazy = false;
|
|
|
|
private byte onErrorType = 1;
|
|
|
|
private byte hyperlinkType = 0;
|
|
|
|
private String linkType;
|
|
|
|
private byte hyperlinkTarget = 1;
|
|
|
|
private JRLineBox lineBox = null;
|
|
|
|
private Byte border;
|
|
|
|
private Byte topBorder;
|
|
|
|
private Byte leftBorder;
|
|
|
|
private Byte bottomBorder;
|
|
|
|
private Byte rightBorder;
|
|
|
|
private Color borderColor;
|
|
|
|
private Color topBorderColor;
|
|
|
|
private Color leftBorderColor;
|
|
|
|
private Color bottomBorderColor;
|
|
|
|
private Color rightBorderColor;
|
|
|
|
private Integer padding;
|
|
|
|
private Integer topPadding;
|
|
|
|
private Integer leftPadding;
|
|
|
|
private Integer bottomPadding;
|
|
|
|
private Integer rightPadding;
|
|
|
|
protected JRTemplateImage(JROrigin origin, JRDefaultStyleProvider defaultStyleProvider, JRImage image) {
|
|
super(origin, defaultStyleProvider);
|
|
this.border = null;
|
|
this.topBorder = null;
|
|
this.leftBorder = null;
|
|
this.bottomBorder = null;
|
|
this.rightBorder = null;
|
|
this.borderColor = null;
|
|
this.topBorderColor = null;
|
|
this.leftBorderColor = null;
|
|
this.bottomBorderColor = null;
|
|
this.rightBorderColor = null;
|
|
this.topPadding = null;
|
|
this.leftPadding = null;
|
|
this.bottomPadding = null;
|
|
this.rightPadding = null;
|
|
setImage(image);
|
|
}
|
|
|
|
protected JRTemplateImage(JROrigin origin, JRDefaultStyleProvider defaultStyleProvider, JRChart chart) {
|
|
super(origin, defaultStyleProvider);
|
|
this.border = null;
|
|
this.topBorder = null;
|
|
this.leftBorder = null;
|
|
this.bottomBorder = null;
|
|
this.rightBorder = null;
|
|
this.borderColor = null;
|
|
this.topBorderColor = null;
|
|
this.leftBorderColor = null;
|
|
this.bottomBorderColor = null;
|
|
this.rightBorderColor = null;
|
|
this.topPadding = null;
|
|
this.leftPadding = null;
|
|
this.bottomPadding = null;
|
|
this.rightPadding = null;
|
|
setChart(chart);
|
|
}
|
|
|
|
protected void setImage(JRImage image) {
|
|
setGraphicElement((JRGraphicElement)image);
|
|
this.lineBox = image.getLineBox().clone((JRBoxContainer)this);
|
|
setScaleImage(image.getScaleImage());
|
|
setUsingCache(image.isUsingCache());
|
|
setHorizontalAlignment(image.getHorizontalAlignment());
|
|
setVerticalAlignment(image.getVerticalAlignment());
|
|
setLazy(image.isLazy());
|
|
setOnErrorType(image.getOnErrorType());
|
|
setLinkType(image.getLinkType());
|
|
setHyperlinkTarget(image.getHyperlinkTarget());
|
|
}
|
|
|
|
protected void setChart(JRChart chart) {
|
|
setElement((JRElement)chart);
|
|
this.linePen = (JRPen)new JRBasePen((JRPenContainer)this);
|
|
getLinePen().setLineWidth(0.0F);
|
|
setFill((byte)1);
|
|
this.lineBox = chart.getLineBox().clone((JRBoxContainer)this);
|
|
setLinkType(chart.getLinkType());
|
|
setHyperlinkTarget(chart.getHyperlinkTarget());
|
|
}
|
|
|
|
public JRBox getBox() {
|
|
return (JRBox)new LineBoxWrapper(getLineBox());
|
|
}
|
|
|
|
public JRLineBox getLineBox() {
|
|
return this.lineBox;
|
|
}
|
|
|
|
public void setBox(JRBox box) {
|
|
JRBoxUtil.setBoxToLineBox(box, this.lineBox);
|
|
}
|
|
|
|
public byte getMode() {
|
|
return JRStyleResolver.getMode(this, (byte)2);
|
|
}
|
|
|
|
public byte getScaleImage() {
|
|
return JRStyleResolver.getScaleImage(this);
|
|
}
|
|
|
|
public Byte getOwnScaleImage() {
|
|
return this.scaleImage;
|
|
}
|
|
|
|
protected void setScaleImage(byte scaleImage) {
|
|
this.scaleImage = new Byte(scaleImage);
|
|
}
|
|
|
|
protected void setScaleImage(Byte scaleImage) {
|
|
this.scaleImage = scaleImage;
|
|
}
|
|
|
|
public boolean isUsingCache() {
|
|
return (this.isUsingCache == null) ? true : this.isUsingCache.booleanValue();
|
|
}
|
|
|
|
public void setUsingCache(boolean isUsingCache) {
|
|
this.isUsingCache = isUsingCache ? Boolean.TRUE : Boolean.FALSE;
|
|
}
|
|
|
|
public byte getHorizontalAlignment() {
|
|
return JRStyleResolver.getHorizontalAlignment(this);
|
|
}
|
|
|
|
public Byte getOwnHorizontalAlignment() {
|
|
return this.horizontalAlignment;
|
|
}
|
|
|
|
public void setHorizontalAlignment(byte horizontalAlignment) {
|
|
this.horizontalAlignment = new Byte(horizontalAlignment);
|
|
}
|
|
|
|
public void setHorizontalAlignment(Byte horizontalAlignment) {
|
|
this.horizontalAlignment = horizontalAlignment;
|
|
}
|
|
|
|
public byte getVerticalAlignment() {
|
|
return JRStyleResolver.getVerticalAlignment(this);
|
|
}
|
|
|
|
public Byte getOwnVerticalAlignment() {
|
|
return this.verticalAlignment;
|
|
}
|
|
|
|
public void setVerticalAlignment(byte verticalAlignment) {
|
|
this.verticalAlignment = new Byte(verticalAlignment);
|
|
}
|
|
|
|
public void setVerticalAlignment(Byte verticalAlignment) {
|
|
this.verticalAlignment = verticalAlignment;
|
|
}
|
|
|
|
public boolean isLazy() {
|
|
return this.isLazy;
|
|
}
|
|
|
|
public void setLazy(boolean isLazy) {
|
|
this.isLazy = isLazy;
|
|
}
|
|
|
|
public byte getOnErrorType() {
|
|
return this.onErrorType;
|
|
}
|
|
|
|
public void setOnErrorType(byte onErrorType) {
|
|
this.onErrorType = onErrorType;
|
|
}
|
|
|
|
public byte getHyperlinkType() {
|
|
return JRHyperlinkHelper.getHyperlinkType(getLinkType());
|
|
}
|
|
|
|
protected void setHyperlinkType(byte hyperlinkType) {
|
|
setLinkType(JRHyperlinkHelper.getLinkType(hyperlinkType));
|
|
}
|
|
|
|
public byte getHyperlinkTarget() {
|
|
return this.hyperlinkTarget;
|
|
}
|
|
|
|
protected void setHyperlinkTarget(byte hyperlinkTarget) {
|
|
this.hyperlinkTarget = hyperlinkTarget;
|
|
}
|
|
|
|
public String getLinkType() {
|
|
return this.linkType;
|
|
}
|
|
|
|
public void setLinkType(String linkType) {
|
|
this.linkType = linkType;
|
|
}
|
|
|
|
protected void normalizeLinkType() {
|
|
if (this.linkType == null)
|
|
this.linkType = JRHyperlinkHelper.getLinkType(this.hyperlinkType);
|
|
this.hyperlinkType = 0;
|
|
}
|
|
|
|
public Float getDefaultLineWidth() {
|
|
return JRPen.LINE_WIDTH_0;
|
|
}
|
|
|
|
public byte getBorder() {
|
|
return JRPenUtil.getPenFromLinePen((JRPen)this.lineBox.getPen());
|
|
}
|
|
|
|
public Byte getOwnBorder() {
|
|
return JRPenUtil.getOwnPenFromLinePen((JRPen)this.lineBox.getPen());
|
|
}
|
|
|
|
public void setBorder(byte border) {
|
|
JRPenUtil.setLinePenFromPen(border, (JRPen)this.lineBox.getPen());
|
|
}
|
|
|
|
public void setBorder(Byte border) {
|
|
JRPenUtil.setLinePenFromPen(border, (JRPen)this.lineBox.getPen());
|
|
}
|
|
|
|
public Color getBorderColor() {
|
|
return this.lineBox.getPen().getLineColor();
|
|
}
|
|
|
|
public Color getOwnBorderColor() {
|
|
return this.lineBox.getPen().getOwnLineColor();
|
|
}
|
|
|
|
public void setBorderColor(Color borderColor) {
|
|
this.lineBox.getPen().setLineColor(borderColor);
|
|
}
|
|
|
|
public int getPadding() {
|
|
return this.lineBox.getPadding().intValue();
|
|
}
|
|
|
|
public Integer getOwnPadding() {
|
|
return this.lineBox.getOwnPadding();
|
|
}
|
|
|
|
public void setPadding(int padding) {
|
|
this.lineBox.setPadding(padding);
|
|
}
|
|
|
|
public void setPadding(Integer padding) {
|
|
this.lineBox.setPadding(padding);
|
|
}
|
|
|
|
public byte getTopBorder() {
|
|
return JRPenUtil.getPenFromLinePen((JRPen)this.lineBox.getTopPen());
|
|
}
|
|
|
|
public Byte getOwnTopBorder() {
|
|
return JRPenUtil.getOwnPenFromLinePen((JRPen)this.lineBox.getTopPen());
|
|
}
|
|
|
|
public void setTopBorder(byte topBorder) {
|
|
JRPenUtil.setLinePenFromPen(topBorder, (JRPen)this.lineBox.getTopPen());
|
|
}
|
|
|
|
public void setTopBorder(Byte topBorder) {
|
|
JRPenUtil.setLinePenFromPen(topBorder, (JRPen)this.lineBox.getTopPen());
|
|
}
|
|
|
|
public Color getTopBorderColor() {
|
|
return this.lineBox.getTopPen().getLineColor();
|
|
}
|
|
|
|
public Color getOwnTopBorderColor() {
|
|
return this.lineBox.getTopPen().getOwnLineColor();
|
|
}
|
|
|
|
public void setTopBorderColor(Color topBorderColor) {
|
|
this.lineBox.getTopPen().setLineColor(topBorderColor);
|
|
}
|
|
|
|
public int getTopPadding() {
|
|
return this.lineBox.getTopPadding().intValue();
|
|
}
|
|
|
|
public Integer getOwnTopPadding() {
|
|
return this.lineBox.getOwnTopPadding();
|
|
}
|
|
|
|
public void setTopPadding(int topPadding) {
|
|
this.lineBox.setTopPadding(topPadding);
|
|
}
|
|
|
|
public void setTopPadding(Integer topPadding) {
|
|
this.lineBox.setTopPadding(topPadding);
|
|
}
|
|
|
|
public byte getLeftBorder() {
|
|
return JRPenUtil.getPenFromLinePen((JRPen)this.lineBox.getLeftPen());
|
|
}
|
|
|
|
public Byte getOwnLeftBorder() {
|
|
return JRPenUtil.getOwnPenFromLinePen((JRPen)this.lineBox.getLeftPen());
|
|
}
|
|
|
|
public void setLeftBorder(byte leftBorder) {
|
|
JRPenUtil.setLinePenFromPen(leftBorder, (JRPen)this.lineBox.getLeftPen());
|
|
}
|
|
|
|
public void setLeftBorder(Byte leftBorder) {
|
|
JRPenUtil.setLinePenFromPen(leftBorder, (JRPen)this.lineBox.getLeftPen());
|
|
}
|
|
|
|
public Color getLeftBorderColor() {
|
|
return this.lineBox.getLeftPen().getLineColor();
|
|
}
|
|
|
|
public Color getOwnLeftBorderColor() {
|
|
return this.lineBox.getLeftPen().getOwnLineColor();
|
|
}
|
|
|
|
public void setLeftBorderColor(Color leftBorderColor) {
|
|
this.lineBox.getLeftPen().setLineColor(leftBorderColor);
|
|
}
|
|
|
|
public int getLeftPadding() {
|
|
return this.lineBox.getLeftPadding().intValue();
|
|
}
|
|
|
|
public Integer getOwnLeftPadding() {
|
|
return this.lineBox.getOwnLeftPadding();
|
|
}
|
|
|
|
public void setLeftPadding(int leftPadding) {
|
|
this.lineBox.setLeftPadding(leftPadding);
|
|
}
|
|
|
|
public void setLeftPadding(Integer leftPadding) {
|
|
this.lineBox.setLeftPadding(leftPadding);
|
|
}
|
|
|
|
public byte getBottomBorder() {
|
|
return JRPenUtil.getPenFromLinePen((JRPen)this.lineBox.getBottomPen());
|
|
}
|
|
|
|
public Byte getOwnBottomBorder() {
|
|
return JRPenUtil.getOwnPenFromLinePen((JRPen)this.lineBox.getBottomPen());
|
|
}
|
|
|
|
public void setBottomBorder(byte bottomBorder) {
|
|
JRPenUtil.setLinePenFromPen(bottomBorder, (JRPen)this.lineBox.getBottomPen());
|
|
}
|
|
|
|
public void setBottomBorder(Byte bottomBorder) {
|
|
JRPenUtil.setLinePenFromPen(bottomBorder, (JRPen)this.lineBox.getBottomPen());
|
|
}
|
|
|
|
public Color getBottomBorderColor() {
|
|
return this.lineBox.getBottomPen().getLineColor();
|
|
}
|
|
|
|
public Color getOwnBottomBorderColor() {
|
|
return this.lineBox.getBottomPen().getOwnLineColor();
|
|
}
|
|
|
|
public void setBottomBorderColor(Color bottomBorderColor) {
|
|
this.lineBox.getBottomPen().setLineColor(bottomBorderColor);
|
|
}
|
|
|
|
public int getBottomPadding() {
|
|
return this.lineBox.getBottomPadding().intValue();
|
|
}
|
|
|
|
public Integer getOwnBottomPadding() {
|
|
return this.lineBox.getOwnBottomPadding();
|
|
}
|
|
|
|
public void setBottomPadding(int bottomPadding) {
|
|
this.lineBox.setBottomPadding(bottomPadding);
|
|
}
|
|
|
|
public void setBottomPadding(Integer bottomPadding) {
|
|
this.lineBox.setBottomPadding(bottomPadding);
|
|
}
|
|
|
|
public byte getRightBorder() {
|
|
return JRPenUtil.getPenFromLinePen((JRPen)this.lineBox.getRightPen());
|
|
}
|
|
|
|
public Byte getOwnRightBorder() {
|
|
return JRPenUtil.getOwnPenFromLinePen((JRPen)this.lineBox.getRightPen());
|
|
}
|
|
|
|
public void setRightBorder(byte rightBorder) {
|
|
JRPenUtil.setLinePenFromPen(rightBorder, (JRPen)this.lineBox.getRightPen());
|
|
}
|
|
|
|
public void setRightBorder(Byte rightBorder) {
|
|
JRPenUtil.setLinePenFromPen(rightBorder, (JRPen)this.lineBox.getRightPen());
|
|
}
|
|
|
|
public Color getRightBorderColor() {
|
|
return this.lineBox.getRightPen().getLineColor();
|
|
}
|
|
|
|
public Color getOwnRightBorderColor() {
|
|
return this.lineBox.getRightPen().getOwnLineColor();
|
|
}
|
|
|
|
public void setRightBorderColor(Color rightBorderColor) {
|
|
this.lineBox.getRightPen().setLineColor(rightBorderColor);
|
|
}
|
|
|
|
public int getRightPadding() {
|
|
return this.lineBox.getRightPadding().intValue();
|
|
}
|
|
|
|
public Integer getOwnRightPadding() {
|
|
return this.lineBox.getOwnRightPadding();
|
|
}
|
|
|
|
public void setRightPadding(int rightPadding) {
|
|
this.lineBox.setRightPadding(rightPadding);
|
|
}
|
|
|
|
public void setRightPadding(Integer rightPadding) {
|
|
this.lineBox.setRightPadding(rightPadding);
|
|
}
|
|
|
|
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
|
|
in.defaultReadObject();
|
|
if (this.lineBox == null) {
|
|
this.lineBox = (JRLineBox)new JRBaseLineBox((JRBoxContainer)this);
|
|
JRBoxUtil.setToBox(this.border, this.topBorder, this.leftBorder, this.bottomBorder, this.rightBorder, this.borderColor, this.topBorderColor, this.leftBorderColor, this.bottomBorderColor, this.rightBorderColor, this.padding, this.topPadding, this.leftPadding, this.bottomPadding, this.rightPadding, this.lineBox);
|
|
this.border = null;
|
|
this.topBorder = null;
|
|
this.leftBorder = null;
|
|
this.bottomBorder = null;
|
|
this.rightBorder = null;
|
|
this.borderColor = null;
|
|
this.topBorderColor = null;
|
|
this.leftBorderColor = null;
|
|
this.bottomBorderColor = null;
|
|
this.rightBorderColor = null;
|
|
this.padding = null;
|
|
this.topPadding = null;
|
|
this.leftPadding = null;
|
|
this.bottomPadding = null;
|
|
this.rightPadding = null;
|
|
}
|
|
normalizeLinkType();
|
|
}
|
|
}
|