KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > war > control > CreateRUController


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.control;
22
23 import javax.servlet.ServletException JavaDoc;
24 import javax.servlet.http.HttpServletRequest JavaDoc;
25 import javax.servlet.http.HttpServletResponse JavaDoc;
26
27 import org.springframework.validation.BindException;
28 import org.springframework.web.bind.ServletRequestDataBinder;
29 import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
30 import org.springframework.web.servlet.ModelAndView;
31 import org.springframework.web.servlet.mvc.SimpleFormController;
32
33 import com.jaspersoft.jasperserver.api.common.domain.impl.ExecutionContextImpl;
34 import com.jaspersoft.jasperserver.api.metadata.common.domain.FileResource;
35 import com.jaspersoft.jasperserver.api.metadata.common.domain.ResourceLookup;
36 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryService;
37 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit;
38 import com.jaspersoft.jasperserver.api.metadata.view.domain.FilterCriteria;
39 import com.jaspersoft.jasperserver.war.common.JasperServerConst;
40 import com.jaspersoft.jasperserver.war.common.JasperServerUtil;
41
42 /**
43  * TODO delete
44  *
45  * @author aztec
46  * @version $Id: JdbcDataSourceService.java 2331 2006-03-08 15:06:12Z lucian $
47  */

48 public class CreateRUController extends SimpleFormController {
49
50     //variable to store repo-service
51
private RepositoryService repository;
52
53     /*
54      * method to get the reposervice object
55      * arguments: none
56      * returns: RepositoryService
57      */

58     public RepositoryService getRepository() {
59         return repository;
60     }
61
62     /*
63      * method to set the reposervice object
64      * arguments: RepositoryService
65      * returns: void
66      */

67     public void setRepository(RepositoryService repository) {
68         this.repository = repository;
69     }
70
71
72     /*
73     * overridden method for commandobject initialization
74     * during formView
75     * arguments: HttpServletRequest
76     * returns: Object
77     */

78     protected Object JavaDoc formBackingObject(HttpServletRequest JavaDoc request) {
79         ReportUnit reportUnit = (ReportUnit) repository.newResource(null, ReportUnit.class);
80         FileResource mainReport = (FileResource) repository.newResource(null, FileResource.class);
81         mainReport.setFileType(FileResource.TYPE_JRXML);
82         reportUnit.setMainReport(mainReport);
83         return reportUnit;
84     }
85
86     /*
87      * overridden lifecycle method on form submission
88      * arguments: HttpServletRequest, HttpServletResponse, Object, BindException
89      * returns: ModelAndView
90      */

91     protected ModelAndView onSubmit(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response,
92             Object JavaDoc command, BindException errors) throws Exception JavaDoc {
93
94         ReportUnit reportUnit = (ReportUnit)command;
95         if(reportUnit == null)
96             throw new Exception JavaDoc(" Insufficient Data. Cannot continue SAVE. ");
97 /* MultipartHttpServletRequest mreq = (MultipartHttpServletRequest)request;
98         String fileName = mreq.getFile("jrxml").getOriginalFilename();
99         fileName = parseFileNameWOExtn(fileName);
100 */

101         if(!JasperServerUtil.createNewReportUnit(repository, reportUnit))
102             throw new RuntimeException JavaDoc(" Exception occurred in ReportUnit DB update. Cannot continue SAVE. ");
103
104 /* if(!JasperServerUtil.uploadToRepository(reportUnit, fileName))
105             throw new RuntimeException(" Error uploading files to Repository. ");
106 */

107         request.setAttribute("reportUnits", getReportUnits());
108         return new ModelAndView(getSuccessView());
109     }
110
111     /*
112      * function to bind to a custom editor
113      * arguments: HttpServletRequest, ServletRequestDataBinder
114      * returns: void
115      */

116     protected void initBinder(HttpServletRequest JavaDoc request, ServletRequestDataBinder binder)
117                                             throws ServletException JavaDoc {
118         binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
119     }
120
121     /*
122      * function to parse the filename without extension
123      * arguments: string
124      * returns: string
125      */

126      private String JavaDoc parseFileNameWOExtn(String JavaDoc fileName) throws Exception JavaDoc {
127         if(fileName == null || fileName.trim().length()==0 || fileName.indexOf(JasperServerConst.FILE_JRXML_EXTN)==-1) {
128             throw new Exception JavaDoc(" Invalid Jrxml filename. Cannot continue SAVE. ");
129         }
130
131         int indx = fileName.lastIndexOf(".");
132         return fileName.substring(0, indx);
133      }
134
135     /*
136      * method to fetch list of reports
137      * sets the list of reportUnits in request scope
138      * Arguments: none
139      * returns: ReportUnit[]
140      */

141     protected ResourceLookup[] getReportUnits() {
142         ExecutionContextImpl executionContext = new ExecutionContextImpl();
143         ResourceLookup[] reportUnits = repository.findResource(executionContext, FilterCriteria.createFilter(ReportUnit.class));
144         return reportUnits;
145     }
146
147 }
148
Popular Tags