View Javadoc

1   package net.stff.ical.gui.struts.actions;
2   
3   import java.io.IOException;
4   
5   import javax.servlet.ServletException;
6   import javax.servlet.ServletOutputStream;
7   import javax.servlet.http.HttpServletResponse;
8   
9   import net.stff.ical.beans.CalendarData;
10  import net.stff.ical.beans.ICal;
11  import net.stff.util.SessionObject;
12  
13  import org.apache.struts.action.Action;
14  import org.apache.struts.action.ActionForm;
15  import org.apache.struts.action.ActionForward;
16  import org.apache.struts.action.ActionMapping;
17  
18  /***
19   *  A struts action class that displays a Calendar
20   *
21   * @author     Bernd Eickhoff
22   * @created    9. Juni 2003
23   * @company    <a href="www.stoffwechsel.net">stoffwechsel</a>
24   */
25  public final class IcalAction extends Action {
26  
27  	public ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
28  	
29  		String name= request.getParameter("cal");
30  		SessionObject so = SessionObject.get(request);
31  		CalendarData data = (CalendarData)so.getObject("icalData", request);
32  		data.setUser(request.getRemoteUser());
33  		ICal cal= data.getManager().getCalendar(name, request.getRemoteUser());
34  
35  		
36  		String representation= cal.toString();
37  		response.reset();
38  		response.setHeader("Content-Type", "text/calendar");
39  		response.setHeader("Content-Disposition", "attachment; filename="+name+".ics");
40  		response.setHeader("Content-length", Long.toString(representation.length()));
41  		
42  		ServletOutputStream sos= response.getOutputStream();
43  		sos.print(representation);
44  		return null;
45  	}
46  }
47