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
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
56
57 private static final long serialVersionUID = 5016702612179192055L;
58
59
60
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 }
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
127 Calendar calendarStart = Calendar.getInstance();
128 calendarStart.setTime(reservation.getEvent().getBeginning());
129 times.add(calendarStart.getTime());
130
131
132 Calendar calendar = Calendar.getInstance();
133 calendar.setTime(reservation.getEvent().getEnding());
134 calendar.add(Calendar.MINUTE, -30);
135 Date end = calendar.getTime();
136
137
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 }
167
168 }