1 21 package com.jaspersoft.jasperserver.war.action.hyperlinks; 22 23 import java.util.Locale ; 24 25 import javax.servlet.http.HttpServletRequest ; 26 27 import net.sf.jasperreports.engine.JRHyperlink; 28 import net.sf.jasperreports.engine.JRPrintHyperlink; 29 import net.sf.jasperreports.engine.export.JRHyperlinkProducer; 30 31 import org.springframework.context.i18n.LocaleContextHolder; 32 33 import com.jaspersoft.jasperserver.api.engine.jasperreports.util.BaseReportExecutionHyperlinkProducerFactory; 34 35 39 public class ReportExecutionHyperlinkProducerFactory extends BaseReportExecutionHyperlinkProducerFactory implements HyperlinkProducerFlowFactory { 40 41 private static final long serialVersionUID = 1L; 42 43 public JRHyperlinkProducer getHyperlinkProducer(HttpServletRequest request) { 44 HyperlinkProducer hyperlinkProducer = new HyperlinkProducer(request); 45 return hyperlinkProducer; 46 } 47 48 49 public class HyperlinkProducer extends BaseHyperlinkProducer { 50 private static final long serialVersionUID = 1L; 51 52 private String contextPath; 53 private String flowExecutionKey; 54 55 public HyperlinkProducer(final HttpServletRequest request) { 56 this.flowExecutionKey = (String ) request.getAttribute("flowExecutionKey"); 57 this.contextPath = request.getContextPath(); 58 } 59 60 protected void appendSubflowParams(StringBuffer sb) { 61 if (flowExecutionKey != null) { 62 sb.append("&_eventId_drillReport="); 63 sb.append("&_flowExecutionKey="); 64 sb.append(encode(flowExecutionKey)); 65 } 66 } 67 68 protected void appendAdditionalParameters(JRPrintHyperlink hyperlink, StringBuffer sb) { 69 if (hyperlink.getHyperlinkTarget() == JRHyperlink.HYPERLINK_TARGET_SELF) { 70 appendSubflowParams(sb); 71 } 72 } 73 74 protected void appendHyperlinkStart(JRPrintHyperlink hyperlink, StringBuffer sb) { 75 sb.append(contextPath); 76 } 77 78 protected Locale getLocale() { 79 return LocaleContextHolder.getLocale(); 80 } 81 } 82 83 } 84 | Popular Tags |