protected JRBaseHyperlink(JRHyperlink link, JRBaseObjectFactory factory) { factory.put(link, this); linkType = link.getLinkType(); linkTarget = link.getLinkTarget(); hyperlinkReferenceExpression = factory.getExpression(link.getHyperlinkReferenceExpression()); hyperlinkAnchorExpression = factory.getExpression(link.getHyperlinkAnchorExpression()); hyperlinkPageExpression = factory.getExpression(link.getHyperlinkPageExpression()); hyperlinkTooltipExpression = factory.getExpression(link.getHyperlinkTooltipExpression()); hyperlinkParameters = copyHyperlinkParameters(link, factory); }
public void collectHyperlink(JRHyperlink hyperlink) { if (hyperlink != null) { addExpression(hyperlink.getHyperlinkReferenceExpression()); addExpression(hyperlink.getHyperlinkAnchorExpression()); addExpression(hyperlink.getHyperlinkPageExpression()); addExpression(hyperlink.getHyperlinkTooltipExpression()); JRHyperlinkParameter[] hyperlinkParameters = hyperlink.getHyperlinkParameters(); if (hyperlinkParameters != null) { for (int i = 0; i < hyperlinkParameters.length; i++) { JRHyperlinkParameter parameter = hyperlinkParameters[i]; collectHyperlinkParameter(parameter); } } } }
/** * Decides whether a hyperlink is empty or not. * <p> * The hyperlink is considered empty when it's <code>null</code> or when * its type is {@link JRHyperlink#HYPERLINK_TYPE_NONE HYPERLINK_TYPE_NONE} * and it doesn't include a tooltip expression * </p> * @param hyperlink the hyperlink * @return whether the hyperlink is empty */ public static boolean isEmpty(JRHyperlink hyperlink) { return hyperlink == null || (hyperlink.getHyperlinkType() == JRHyperlink.HYPERLINK_TYPE_NONE && hyperlink.getHyperlinkTooltipExpression() == null); } }
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; }
/** * Returns the built-in hyperlink type, or {@link JRHyperlink#HYPERLINK_TYPE_CUSTOM JRHyperlink.HYPERLINK_TYPE_CUSTOM} * if the type is not a built-in type. * * @param hyperlink the hyperlink object * @return the hyperlink type */ public static byte getHyperlinkType(JRHyperlink hyperlink) { return getHyperlinkType(hyperlink.getLinkType()); }
/** * Returns the built-in hyperlink target, or {@link JRHyperlink#HYPERLINK_TARGET_CUSTOM JRHyperlink.HYPERLINK_TARGET_CUSTOM} * if the target name is not a built-in one. * * @param hyperlink the hyperlink object * @return the hyperlink target */ public static byte getHyperlinkTarget(JRHyperlink hyperlink) { return getHyperlinkTarget(hyperlink.getLinkTarget()); }
byte evaluationType) throws JRException JRHyperlinkParameter[] hyperlinkParameters = hyperlink.getHyperlinkParameters(); JRPrintHyperlinkParameters printParameters; if (hyperlinkParameters == null)
public void writeHyperlink(String tagName, XmlNamespace namespace, JRHyperlink hyperlink) throws IOException { if (hyperlink != null) { writer.startElement(tagName, namespace); writer.addEncodedAttribute(JRXmlConstants.ATTRIBUTE_hyperlinkType, hyperlink.getLinkType(), JRHyperlinkHelper.HYPERLINK_TYPE_NONE); writer.addEncodedAttribute(JRXmlConstants.ATTRIBUTE_hyperlinkTarget, hyperlink.getLinkTarget(), JRHyperlinkHelper.HYPERLINK_TARGET_SELF); writer.writeExpression(JRXmlConstants.ELEMENT_hyperlinkReferenceExpression, JASPERREPORTS_NAMESPACE, hyperlink.getHyperlinkReferenceExpression(), false); writer.writeExpression(JRXmlConstants.ELEMENT_hyperlinkAnchorExpression, JASPERREPORTS_NAMESPACE, hyperlink.getHyperlinkAnchorExpression(), false); writer.writeExpression(JRXmlConstants.ELEMENT_hyperlinkPageExpression, JASPERREPORTS_NAMESPACE, hyperlink.getHyperlinkPageExpression(), false); writer.writeExpression(JRXmlConstants.ELEMENT_hyperlinkTooltipExpression, JASPERREPORTS_NAMESPACE, hyperlink.getHyperlinkTooltipExpression(), false); writeHyperlinkParameters(hyperlink.getHyperlinkParameters()); writer.closeElement(true); } }
JRExpression expression = hyperlink.getHyperlinkReferenceExpression(); expression = hyperlink.getHyperlinkAnchorExpression(); expression = hyperlink.getHyperlinkPageExpression(); expression = hyperlink.getHyperlinkTooltipExpression(); JRHyperlinkParameter[] parameters = hyperlink.getHyperlinkParameters(); if (parameters != null)
/** * Evaluate a hyperlink specification. * * @param hyperlink the hyperlink specification * @param expressionEvaluator the expression evaluator to use for evaluation the hyperlink expressions * @param evaluationType the evaluation type, as in {@link JRFillExpressionEvaluator#evaluate(JRExpression, byte) JRFillExpressionEvaluator.evaluate(JRExpression, byte)} * @return a {@link JRPrintHyperlink print hyperlink} resulted from the expression evaluations. * @throws JRException */ public static JRPrintHyperlink evaluateHyperlink(JRHyperlink hyperlink, JRFillExpressionEvaluator expressionEvaluator, byte evaluationType) throws JRException { if (hyperlink == null) { return null; } JRBasePrintHyperlink printHyperlink = new JRBasePrintHyperlink(); printHyperlink.setLinkType(hyperlink.getLinkType()); printHyperlink.setLinkTarget(hyperlink.getLinkTarget()); printHyperlink.setHyperlinkReference((String) expressionEvaluator.evaluate(hyperlink.getHyperlinkReferenceExpression(), evaluationType)); printHyperlink.setHyperlinkAnchor((String) expressionEvaluator.evaluate(hyperlink.getHyperlinkAnchorExpression(), evaluationType)); printHyperlink.setHyperlinkPage((Integer) expressionEvaluator.evaluate(hyperlink.getHyperlinkPageExpression(), evaluationType)); printHyperlink.setHyperlinkTooltip((String) expressionEvaluator.evaluate(hyperlink.getHyperlinkTooltipExpression(), evaluationType)); printHyperlink.setHyperlinkParameters(evaluateHyperlinkParameters(hyperlink, expressionEvaluator, evaluationType)); return printHyperlink; } }