1
22
23 package com.liferay.portlet.calendar.action;
24
25 import com.liferay.portal.kernel.util.ParamUtil;
26 import com.liferay.portal.struts.ActionConstants;
27 import com.liferay.portal.struts.PortletAction;
28 import com.liferay.portal.theme.ThemeDisplay;
29 import com.liferay.portal.util.PortalUtil;
30 import com.liferay.portal.util.WebKeys;
31 import com.liferay.portlet.calendar.service.CalEventServiceUtil;
32 import com.liferay.util.servlet.ServletResponseUtil;
33
34 import java.io.BufferedInputStream;
35 import java.io.File;
36 import java.io.FileInputStream;
37 import java.io.InputStream;
38
39 import javax.portlet.ActionRequest;
40 import javax.portlet.ActionResponse;
41 import javax.portlet.PortletConfig;
42
43 import javax.servlet.http.HttpServletResponse;
44
45 import org.apache.commons.logging.Log;
46 import org.apache.commons.logging.LogFactory;
47 import org.apache.struts.action.ActionForm;
48 import org.apache.struts.action.ActionMapping;
49
50
57 public class ExportEventsAction extends PortletAction {
58
59 public void processAction(
60 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
61 ActionRequest actionRequest, ActionResponse actionResponse)
62 throws Exception {
63
64 InputStream is = null;
65
66 try {
67 ThemeDisplay themeDisplay =
68 (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
69
70 long eventId = ParamUtil.getLong(actionRequest, "eventId");
71
72 String exportFileName = ParamUtil.getString(
73 actionRequest, "exportFileName");
74
75 File file = null;
76
77 if (eventId > 0) {
78 file = CalEventServiceUtil.exportEvent(eventId);
79 }
80 else {
81 file = CalEventServiceUtil.exportGroupEvents(
82 themeDisplay.getPlid(), exportFileName);
83 }
84
85 is = new BufferedInputStream(new FileInputStream(file));
86
87 HttpServletResponse response = PortalUtil.getHttpServletResponse(
88 actionResponse);
89
90 ServletResponseUtil.sendFile(response, file.getName(), is);
91
92 setForward(actionRequest, ActionConstants.COMMON_NULL);
93 }
94 catch (Exception e) {
95 _log.error(e, e);
96 }
97 finally {
98 ServletResponseUtil.cleanUp(is);
99 }
100 }
101
102 private static Log _log = LogFactory.getLog(ExportEventsAction.class);
103
104 }