package com.arrgsocal.servlets;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.HttpMethodConstraint;
import javax.servlet.annotation.ServletSecurity;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.arrgsocal.entities.Event;
import com.arrgsocal.managers.CalendarManager;
import com.arrgsocal.managers.EventManager;
/**
* Servlet implementation class Calendar
*/
@WebServlet("/calendars")
@DeclareRoles("users")
@ServletSecurity(httpMethodConstraints = {
@HttpMethodConstraint(value = "GET", rolesAllowed = { "users" }),
@HttpMethodConstraint(value = "POST", rolesAllowed = { "users" }) })
public class CalendarServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
EventManager em;
@EJB
CalendarManager cm;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
java.util.Calendar firstcal = java.util.Calendar.getInstance();
DateFormat df = DateFormat.getDateInstance();
java.util.Calendar cal = new GregorianCalendar(firstcal.get(java.util.Calendar.YEAR), firstcal.get(java.util.Calendar.MONTH), 1);
Date date = new Date();
SimpleDateFormat month = new SimpleDateFormat("MMMM");
month.format(date);
// Event myevent = new Event();
// myevent.setStartDate(new Date("06/05/2012"));
// myevent.setEndDate(new Date("06/05/2012"));
// myevent.setTitle("WAT");
//
// em.create(myevent);
request.setAttribute("maxweeks", cal.getActualMaximum(java.util.Calendar.WEEK_OF_MONTH));
request.setAttribute("weekstart", cal.get(java.util.Calendar.DAY_OF_WEEK));
request.setAttribute("month", month.format(date));
request.setAttribute("maxday", df.getCalendar().getActualMaximum(java.util.Calendar.DAY_OF_MONTH));
java.util.Calendar date2 = (Calendar) cal.clone();
date2.set(Calendar.DAY_OF_MONTH, df.getCalendar().getActualMaximum(java.util.Calendar.DAY_OF_MONTH));
List<Event> events = em.getEvents(cal.getTime(), date2.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("dd");
ArrayList<Integer> eventdays = new ArrayList<Integer>();
for(int i =0; i < events.size(); i++)
{
System.out.println("[DEBUG][TIME] - " + events.get(i).getStartDate().getTime());
System.out.println("[DEBUG][TITLE] - " + events.get(i).getTitle());
System.out.println("[DEBUG][FORMATIME] - " + sdf.format(events.get(i).getStartDate().getTime()));
eventdays.add(Integer.parseInt(sdf.format(events.get(i).getStartDate().getTime())));
}
System.out.println(events);
System.out.println(eventdays);
request.setAttribute("eventdays", eventdays);
request.setAttribute("events", events);
request.getRequestDispatcher("/WEB-INF/Calendar/index.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}