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