108 lines
3.9 KiB
Java
108 lines
3.9 KiB
Java
package net.sf.jasperreports.engine.base;
|
|
|
|
import java.io.Serializable;
|
|
import net.sf.jasperreports.engine.JRExpression;
|
|
import net.sf.jasperreports.engine.JRHyperlink;
|
|
import net.sf.jasperreports.engine.JRHyperlinkHelper;
|
|
import net.sf.jasperreports.engine.JRHyperlinkParameter;
|
|
import net.sf.jasperreports.engine.JRRuntimeException;
|
|
|
|
public class JRBaseHyperlink implements JRHyperlink, Serializable {
|
|
private static final long serialVersionUID = 10200L;
|
|
|
|
protected String linkType;
|
|
|
|
protected byte hyperlinkTarget = 1;
|
|
|
|
protected JRExpression hyperlinkReferenceExpression;
|
|
|
|
protected JRExpression hyperlinkAnchorExpression;
|
|
|
|
protected JRExpression hyperlinkPageExpression;
|
|
|
|
protected JRExpression hyperlinkTooltipExpression;
|
|
|
|
protected JRHyperlinkParameter[] hyperlinkParameters;
|
|
|
|
public JRBaseHyperlink() {}
|
|
|
|
protected JRBaseHyperlink(JRHyperlink link, JRBaseObjectFactory factory) {
|
|
factory.put(link, this);
|
|
this.linkType = link.getLinkType();
|
|
this.hyperlinkTarget = link.getHyperlinkTarget();
|
|
this.hyperlinkReferenceExpression = factory.getExpression(link.getHyperlinkReferenceExpression());
|
|
this.hyperlinkAnchorExpression = factory.getExpression(link.getHyperlinkAnchorExpression());
|
|
this.hyperlinkPageExpression = factory.getExpression(link.getHyperlinkPageExpression());
|
|
this.hyperlinkTooltipExpression = factory.getExpression(link.getHyperlinkTooltipExpression());
|
|
this.hyperlinkParameters = copyHyperlinkParameters(link, factory);
|
|
}
|
|
|
|
public static JRHyperlinkParameter[] copyHyperlinkParameters(JRHyperlink link, JRBaseObjectFactory factory) {
|
|
JRHyperlinkParameter[] linkParameters = link.getHyperlinkParameters();
|
|
JRHyperlinkParameter[] parameters = null;
|
|
if (linkParameters != null && linkParameters.length > 0) {
|
|
parameters = new JRHyperlinkParameter[linkParameters.length];
|
|
for (int i = 0; i < linkParameters.length; i++) {
|
|
JRHyperlinkParameter parameter = linkParameters[i];
|
|
parameters[i] = factory.getHyperlinkParameter(parameter);
|
|
}
|
|
}
|
|
return parameters;
|
|
}
|
|
|
|
public JRExpression getHyperlinkAnchorExpression() {
|
|
return this.hyperlinkAnchorExpression;
|
|
}
|
|
|
|
public JRExpression getHyperlinkPageExpression() {
|
|
return this.hyperlinkPageExpression;
|
|
}
|
|
|
|
public JRHyperlinkParameter[] getHyperlinkParameters() {
|
|
return this.hyperlinkParameters;
|
|
}
|
|
|
|
public JRExpression getHyperlinkReferenceExpression() {
|
|
return this.hyperlinkReferenceExpression;
|
|
}
|
|
|
|
public byte getHyperlinkTarget() {
|
|
return this.hyperlinkTarget;
|
|
}
|
|
|
|
public byte getHyperlinkType() {
|
|
return JRHyperlinkHelper.getHyperlinkType(this);
|
|
}
|
|
|
|
public String getLinkType() {
|
|
return this.linkType;
|
|
}
|
|
|
|
public JRExpression getHyperlinkTooltipExpression() {
|
|
return this.hyperlinkTooltipExpression;
|
|
}
|
|
|
|
public Object clone() {
|
|
JRBaseHyperlink clone = null;
|
|
try {
|
|
clone = (JRBaseHyperlink)super.clone();
|
|
} catch (CloneNotSupportedException e) {
|
|
throw new JRRuntimeException(e);
|
|
}
|
|
if (this.hyperlinkParameters != null) {
|
|
clone.hyperlinkParameters = new JRHyperlinkParameter[this.hyperlinkParameters.length];
|
|
for (int i = 0; i < this.hyperlinkParameters.length; i++)
|
|
clone.hyperlinkParameters[i] = (JRHyperlinkParameter)this.hyperlinkParameters[i].clone();
|
|
}
|
|
if (this.hyperlinkReferenceExpression != null)
|
|
clone.hyperlinkReferenceExpression = (JRExpression)this.hyperlinkReferenceExpression.clone();
|
|
if (this.hyperlinkAnchorExpression != null)
|
|
clone.hyperlinkAnchorExpression = (JRExpression)this.hyperlinkAnchorExpression.clone();
|
|
if (this.hyperlinkPageExpression != null)
|
|
clone.hyperlinkPageExpression = (JRExpression)this.hyperlinkPageExpression.clone();
|
|
if (this.hyperlinkTooltipExpression != null)
|
|
clone.hyperlinkTooltipExpression = (JRExpression)this.hyperlinkTooltipExpression.clone();
|
|
return clone;
|
|
}
|
|
}
|