View Javadoc

1   package de.tivsource.page.admin.actions.locations.reservation;
2   
3   import java.util.ArrayList;
4   import java.util.Calendar;
5   import java.util.Date;
6   import java.util.List;
7   
8   import org.apache.logging.log4j.LogManager;
9   import org.apache.logging.log4j.Logger;
10  import org.apache.struts2.convention.annotation.Action;
11  import org.apache.struts2.convention.annotation.Actions;
12  import org.apache.struts2.convention.annotation.Result;
13  import org.apache.struts2.tiles.annotation.TilesDefinition;
14  import org.apache.struts2.tiles.annotation.TilesDefinitions;
15  import org.apache.struts2.tiles.annotation.TilesPutAttribute;
16  
17  import de.tivsource.ejb3plugin.InjectEJB;
18  import de.tivsource.page.admin.actions.EmptyAction;
19  import de.tivsource.page.dao.event.EventDaoLocal;
20  import de.tivsource.page.dao.reservation.ReservationDaoLocal;
21  import de.tivsource.page.entity.reservation.Reservation;
22  
23  /**
24   * 
25   * @author Marc Michele
26   *
27   */
28  @TilesDefinitions({
29    @TilesDefinition(name="reservationAddForm",  extend = "adminTemplate", putAttributes = {
30      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
31      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
32      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reservation/add_form.jsp")
33    }),
34    @TilesDefinition(name="reservationEditForm", extend = "adminTemplate", putAttributes = {
35      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
36      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
37      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reservation/edit_form.jsp")
38    }),
39    @TilesDefinition(name="reservationDeleteForm", extend = "adminTemplate", putAttributes = {
40      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
41      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reservation/delete_form.jsp")
42    }),
43    @TilesDefinition(name="reservationView", extend = "adminTemplate", putAttributes = {
44      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
45      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reservation/view.jsp")
46    }),
47    @TilesDefinition(name="reservationConfirmForm", extend = "adminTemplate", putAttributes = {
48      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
49      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reservation/confirm_form.jsp")
50    })
51  })
52  public class FormAction extends EmptyAction {
53  
54  	/**
55  	 * Serial Version UID.
56  	 */
57      private static final long serialVersionUID = 5016702612179192055L;
58  
59      /**
60       * Statischer Logger der Klasse.
61       */
62      private static final Logger LOGGER = LogManager.getLogger(FormAction.class);
63  
64      @InjectEJB(name="EventDao")
65      private EventDaoLocal eventDaoLocal;
66  
67      @InjectEJB(name="ReservationDao")
68      private ReservationDaoLocal reservationDaoLocal;
69  
70      private String uncheckedEvent;
71      
72      private Reservation reservation;
73  
74      private String uncheckedReservation;
75  
76      public void setEvent(String uncheckedEvent) {
77          this.uncheckedEvent = uncheckedEvent;
78      }
79  
80      public Reservation getReservation() {
81          return reservation;
82      }
83  
84      public void setReservation(String uncheckedReservation) {
85          this.uncheckedReservation = uncheckedReservation;
86      }
87  
88      @Override
89      @Actions({
90          @Action(
91          		value = "editForm", 
92          		results = { @Result(name = "success", type="tiles", location = "reservationEditForm") }
93          ),
94          @Action(
95          		value = "addForm", 
96          		results = { @Result(name = "success", type="tiles", location = "reservationAddForm") }
97          ),
98          @Action(
99          		value = "deleteForm", 
100         		results = { @Result(name = "success", type="tiles", location = "reservationDeleteForm") }
101         ),
102         @Action(
103                 value = "view", 
104                 results = { @Result(name = "success", type="tiles", location = "reservationView") }
105         ),
106         @Action(
107                 value = "confirmForm", 
108                 results = { @Result(name = "success", type="tiles", location = "reservationConfirmForm") }
109         )
110     })
111     public String execute() throws Exception {
112     	LOGGER.info("execute() aufgerufen.");
113     	
114     	this.loadPageParameter();
115     	return SUCCESS;
116     }// Ende execute()
117 
118     public List<Date> getTimes() {
119         LOGGER.info("getTimes() aufgerufen.");
120         if(reservation == null) {
121             loadPageParameter();
122         }
123 
124         List<Date> times = new ArrayList<Date>();
125 
126         // Anfangs Punkt der Zeitreihe
127         Calendar calendarStart = Calendar.getInstance();
128         calendarStart.setTime(reservation.getEvent().getBeginning());
129         times.add(calendarStart.getTime());
130                 
131         // Endpunkt der Zeitreihe 
132         Calendar calendar = Calendar.getInstance();
133         calendar.setTime(reservation.getEvent().getEnding());
134         calendar.add(Calendar.MINUTE, -30);
135         Date end = calendar.getTime();
136 
137         // Datum mit dem gerechnet wird
138         Date time = reservation.getEvent().getBeginning();
139         while (time.before(end)) {
140             Calendar calendarTime = Calendar.getInstance();
141             calendarTime.setTime(time);
142             calendarTime.add(Calendar.MINUTE, 15);
143             time = calendarTime.getTime();
144             times.add(time);
145         }
146 
147         LOGGER.info("inhalt der Liste: " + times.size());
148 
149         return times;
150     }
151     
152     private void loadPageParameter() {
153 
154         if( uncheckedEvent != null && uncheckedEvent != "" && uncheckedEvent.length() > 0) {
155             reservation = new Reservation();
156             reservation.setEvent(eventDaoLocal.findByUuid(uncheckedEvent));
157         }
158 
159 	    if( uncheckedReservation != null && uncheckedReservation != "" && uncheckedReservation.length() > 0) {
160 	        reservation = reservationDaoLocal.findByUuid(uncheckedReservation);
161             Calendar calendarTime = Calendar.getInstance();
162             calendarTime.setTime(reservation.getTime());
163             reservation.setTime(calendarTime.getTime());
164 	    }
165 
166 	}// Ende loadPageParameter()
167 	
168 }// Ende class