View Javadoc

1   /*
2    * Created on 22.04.2004
3    *
4    * To change the template for this generated file go to
5    * Window - Preferences - Java - Code Generation - Code and Comments
6    */
7   package net.stff.ical.gui.struts.actions;
8   
9   import java.io.IOException;
10  import java.util.Calendar;
11  import java.util.Date;
12  import java.util.Iterator;
13  import java.util.Vector;
14  
15  import javax.servlet.ServletException;
16  import javax.servlet.http.HttpServletResponse;
17  
18  import net.stff.ical.beans.CalendarData;
19  import net.stff.ical.beans.IEvent;
20  import net.stff.ical.beans.Recurrence;
21  import net.stff.ical.beans.VEvent;
22  import net.stff.ical.gui.struts.formbeans.RecurrenceFormBean;
23  import net.stff.util.SessionObject;
24  
25  import org.apache.struts.action.ActionForm;
26  import org.apache.struts.action.ActionForward;
27  import org.apache.struts.action.ActionMapping;
28  import org.apache.struts.actions.DispatchAction;
29  
30  /***
31   * @author buntekuh
32   *
33   */
34  public class EditRecurrenceAction extends DispatchAction {
35  
36  	public ActionForward edit(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
37  		
38  		//EventFormBean f= (EventFormBean)form;
39  		
40  	    SessionObject so = SessionObject.get(request);
41  		CalendarData data = (CalendarData)so.getObject("icalData", request);
42  		data.setUser(request.getRemoteUser());
43  
44  		RecurrenceFormBean bean= (RecurrenceFormBean)form;
45  		int freq= bean.getRecurrence().getFrequency();
46  		bean.getEvent().setRecurs(bean.isRepeats());
47  		
48  		if (freq == Recurrence.DAILY){
49  			bean.getRecurrence().setByLabel(null);
50  		}
51  		else if (freq == Recurrence.WEEKLY){
52  			bean.getRecurrence().setByLabel("BYDAY");
53  			Vector v= new Vector(4);
54  			StringBuffer byV= new StringBuffer();
55  			if (bean.isMonday()) v.add("MO");
56  			if (bean.isTuesday()) v.add("TU");
57  			if (bean.isWednesday()) v.add("WE");
58  			if (bean.isThursday()) v.add("TH");
59  			if (bean.isFriday()) v.add("FR");
60  			if (bean.isSaturday()) v.add("SA");
61  			if (bean.isSunday()) v.add("SU");
62  			Iterator i= v.iterator();
63  			while (i.hasNext()){
64  				if (byV.length() != 0) byV.append(",");
65  				byV.append((String)i.next());
66  			}
67  			bean.getRecurrence().setByValue(byV.toString());
68  		}
69  		else if (freq == Recurrence.MONTHLY){
70  			if ((bean.getByday() != null) && (!bean.getByday().equals("none"))){
71  				bean.getRecurrence().setByLabel("BYDAY");
72  				bean.getRecurrence().setByValue(bean.getByday());
73  			}
74  			else{
75  				bean.getRecurrence().setByLabel(null);
76  			}
77  			
78  		}
79  		else if (freq == Recurrence.YEARLY){
80  			bean.getRecurrence().setByLabel(null);
81  		}
82  
83  		String exc= bean.getExcept();
84  		if ((exc != null) && (!exc.equals(" "))){
85  		    try{
86  			    String[] d= exc.split(VEvent.REGEX);
87  			    if (d.length == 3){
88  			    	Calendar c= IEvent.getStartOfDay(new Date()); 
89  			        c.set(Integer.parseInt(d[2]), Integer.parseInt(d[1])-1, Integer.parseInt(d[0]));
90  					bean.addException(c.getTime());
91  			    }
92  		    }
93  		    catch(NumberFormatException e){
94  		        System.out.println("Variable "+exc+" must represent Integers instead!");
95  		    }
96  		    bean.setExcept(null);
97  		}
98  		bean.setExcept("");
99  		exc= bean.getExceptToRemove();
100 		if ((exc != null) && (!exc.equals(" "))){
101 		    try{
102 			    String[] d= exc.split(VEvent.REGEX);
103 			    if (d.length == 3){
104 			    	Calendar c= IEvent.getStartOfDay(new Date()); 
105 			        c.set(Integer.parseInt(d[2]), Integer.parseInt(d[1])-1, Integer.parseInt(d[0]));
106 					bean.removeException(c.getTime());
107 			    }
108 		    }
109 		    catch(NumberFormatException e){
110 		        System.out.println("Variable "+exc+" must represent Integers instead!");
111 		    }
112 		}
113 		bean.setExceptToRemove("");
114 		data.getManager().editEvent(bean.getEvent());
115 		
116 		//System.out.println(bean.getRecurrence().getRule());
117 		
118 		
119 		
120 	    return mapping.findForward("success");
121 	}
122 	
123 	public ActionForward editrec(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
124 	    return mapping.findForward("success");
125 	}
126 	
127 			
128 }