Step back in refactoring, case sensitive ignored in autocomplite, adding lesson type...
[SkiSchool.git] / SkiSchool-war / src / java / org / cvut / skischool / back / AvailabilityBean.java
blob159a84d0896e28a322526ade34b5d208d5766543
1 package org.cvut.skischool.back;
3 import java.io.Serializable;
4 import java.util.Date;
5 import javax.ejb.EJB;
6 import javax.faces.application.FacesMessage;
7 import javax.faces.bean.ManagedBean;
8 import javax.faces.bean.SessionScoped;
9 import javax.faces.context.FacesContext;
10 import javax.faces.event.ActionEvent;
11 import javax.faces.model.DataModel;
12 import javax.faces.model.ListDataModel;
13 import org.cvut.skischool.beans.AvailabilityManagementLocal;
14 import org.cvut.skischool.beans.UserManagementLocal;
15 import org.cvut.skischool.core.DateTools;
16 import org.cvut.skischool.core.NumberConstants;
17 import org.cvut.skischool.model.Availability;
18 import org.cvut.skischool.model.Instructor;
19 import org.primefaces.event.DateSelectEvent;
21 /**
23 * @author sabolmi1
25 @ManagedBean(name = "availabilityBean")
26 @SessionScoped
27 public class AvailabilityBean implements Serializable {
29 @EJB
30 private AvailabilityManagementLocal availabilityManagement;
31 @EJB
32 private UserManagementLocal userManagement;
33 private Availability availability;
34 private DataModel<Availability> availabilities;
35 private Instructor instructor;
36 private int startHour;
37 private int startMinutes;
38 private int endHour;
39 private int endMinutes;
40 private Date date;
41 private int interval;
43 public AvailabilityBean() {
44 date = new Date();
47 public Date getDate() {
48 return date;
51 public void setDate(Date date) {
52 this.date = date;
55 public int getEndHour() {
56 return endHour;
59 public void setEndHour(int endHour) {
60 this.endHour = endHour;
63 public int getEndMinutes() {
64 return endMinutes;
67 public void setEndMinutes(int endMinutes) {
68 this.endMinutes = endMinutes;
71 public int getStartHour() {
72 return startHour;
75 public void setStartHour(int startHour) {
76 this.startHour = startHour;
79 public int getStartMinutes() {
80 return startMinutes;
83 public void setStartMinutes(int startMinutes) {
84 this.startMinutes = startMinutes;
87 public Instructor getInstructor() {
88 return instructor;
91 public void setInstructor(Instructor instructor) {
92 this.instructor = instructor;
96 public int getInterval() {
97 return interval;
100 public void setInterval(int interval) {
101 this.interval = interval;
104 public DataModel<Availability> getAllAvailabilities() {
105 availabilities = new ListDataModel<Availability>(availabilityManagement.getAvailabilityByDate(instructor, date));
106 return availabilities;
109 public Availability getAvailability() {
110 return availability;
113 public void setAvailability(Availability availability) {
114 this.availability = availability;
117 public void handleDateSelect(DateSelectEvent event) {
118 date = event.getDate();
121 public String newAvailability() {
122 availability = new Availability();
123 return "availabilities?faces-redirect=true";
126 public void setWholeDay(ActionEvent event) {
127 startHour = NumberConstants.DAY_START_HOUR;
128 startMinutes = NumberConstants.DAY_START_MINUTES;
129 endHour = NumberConstants.DAY_END_HOUR;
130 endMinutes = NumberConstants.DAY_END_MINUTES;
133 public void createAvailabilityInterval(Date startDate, int interval) {
134 Date nextDay = date;
135 for (int i = 0; i < interval + 1; i++) {
136 nextDay = DateTools.addDays(date, i);
138 availability.setStartTime(DateTools.makeDateTime(nextDay, startHour, startMinutes));
139 availability.setEndTime(DateTools.makeDateTime(nextDay, endHour, endMinutes));
140 instructor.getAvailability().add(availability);
141 userManagement.updateInstructor(instructor);
145 public String editAvailability() {
146 availability = availabilities.getRowData();
147 return "availabislities?faces-redirect=true";
150 public void saveAvailability(ActionEvent event) {
151 Date time1 = DateTools.makeDateTime(date, startHour, startMinutes);
152 Date time2 = DateTools.makeDateTime(date, endHour, endMinutes);
153 if (time2.before(time1)) {
154 // showErrorMessage("End time is before start time");
155 showErrorMessage("Koniec je pred začiatkom");
156 return;
158 if (time2.equals(time1)) {
159 // showErrorMessage("Start time and end time are equal");
160 showErrorMessage("Začiatok a koniec sú rovnaké");
161 return;
163 if (availabilityManagement.getConflictAvailabilities(instructor, time1, time2).size() > 0) {
164 // showErrorMessage("Conflict availability");
165 showErrorMessage("Dostupnosť koliduje s inou dostupnosťou");
166 return;
168 availability.setInstructor(instructor);
169 createAvailabilityInterval(date, interval);
170 // showInfoMessage("Availability created");
171 showInfoMessage("Dostupnosť vytvorená");
174 public void deleteAvailability(ActionEvent event) {
175 availabilityManagement.deleteAvailability(availabilities.getRowData());
176 // showWarnMessage("Availability deleted");
177 showWarnMessage("Dostupnosť zmazaná");
180 private void showInfoMessage(String message) {
181 FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, message, "");
182 FacesContext.getCurrentInstance().addMessage(null, msg);
185 private void showWarnMessage(String message) {
186 FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, message, "");
187 FacesContext.getCurrentInstance().addMessage(null, msg);
190 private void showErrorMessage(String message) {
191 FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, message, "");
192 FacesContext.getCurrentInstance().addMessage(null, msg);