KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > war > action > hyperlinks > ReportExecutionHyperlinkProducerFactory


1 /*
2  * Copyright (C) 2006 JasperSoft http://www.jaspersoft.com
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed WITHOUT ANY WARRANTY; and without the
10  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
15  * or write to:
16  *
17  * Free Software Foundation, Inc.,
18  * 59 Temple Place - Suite 330,
19  * Boston, MA USA 02111-1307
20  */

21 package com.jaspersoft.jasperserver.war.action.hyperlinks;
22
23 import java.util.Locale JavaDoc;
24
25 import javax.servlet.http.HttpServletRequest JavaDoc;
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 /**
36  * @author Lucian Chirita (lucianc@users.sourceforge.net)
37  * @version $Id: ReportExecutionHyperlinkProducerFactory.java 4313 2006-08-24 16:15:40Z lucian $
38  */

39 public class ReportExecutionHyperlinkProducerFactory extends BaseReportExecutionHyperlinkProducerFactory implements HyperlinkProducerFlowFactory {
40     
41     private static final long serialVersionUID = 1L;
42     
43     public JRHyperlinkProducer getHyperlinkProducer(HttpServletRequest JavaDoc 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 JavaDoc contextPath;
53         private String JavaDoc flowExecutionKey;
54
55         public HyperlinkProducer(final HttpServletRequest JavaDoc request) {
56             this.flowExecutionKey = (String JavaDoc) request.getAttribute("flowExecutionKey");
57             this.contextPath = request.getContextPath();
58         }
59
60         protected void appendSubflowParams(StringBuffer JavaDoc 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 JavaDoc sb) {
69             if (hyperlink.getHyperlinkTarget() == JRHyperlink.HYPERLINK_TARGET_SELF) {
70                 appendSubflowParams(sb);
71             }
72         }
73
74         protected void appendHyperlinkStart(JRPrintHyperlink hyperlink, StringBuffer JavaDoc sb) {
75             sb.append(contextPath);
76         }
77
78         protected Locale JavaDoc getLocale() {
79             return LocaleContextHolder.getLocale();
80         }
81     }
82
83 }
84
Popular Tags