Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.rr.wabshs.ui.dashboard; import com.registryKit.calendar.calendarEventTypes; import com.registryKit.calendar.calendarEvents; import com.registryKit.calendar.calendarManager; import com.registryKit.dashboard.dashboardManager; import com.registryKit.hierarchy.hierarchyManager; import com.registryKit.hierarchy.programHierarchyDetails; import com.registryKit.user.User; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.json.simple.JSONArray; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; /** * * @author chadmccue */ @Controller @RequestMapping("/dashboard") public class dashboardController { private static final Integer moduleId = 15; @Autowired private dashboardManager dashboardmanager; @Autowired private hierarchyManager hierarchymanager; @Autowired private calendarManager calendarmanager; @Value("${programId}") private Integer programId; @Value("${programName}") private String registryName; @Value("${topSecret}") private String topSecret; @RequestMapping(value = "", method = RequestMethod.GET) public ModelAndView dashboardHome(HttpSession session) throws Exception { ModelAndView mav = new ModelAndView(); mav.setViewName("/dashboard"); /* Get a list of completed surveys the logged in user has access to */ User userDetails = (User) session.getAttribute("userDetails"); Integer userId = 0; if (userDetails.getRoleId() == 2) { } else { userId = userDetails.getId(); } List<Object[]> entities = hierarchymanager.getProgramHierarchyTitles(programId); List<programHierarchyDetails> level1Items = hierarchymanager .getProgramHierarchyItems((Integer) entities.get(0)[0], userId); mav.addObject("level1Items", level1Items); mav.addObject("level1Name", entities.get(0)[1]); mav.addObject("level2Name", entities.get(1)[1]); mav.addObject("level3Name", entities.get(2)[1]); if (null == session.getAttribute("selectedEntity1") || "".equals(session.getAttribute("selectedEntity1"))) { session.setAttribute("selectedEntity1", level1Items.get(0).getId()); } mav.addObject("savedSearchEntity1", session.getAttribute("selectedEntity1")); mav.addObject("savedSearchEntity2", session.getAttribute("selectedEntity2")); mav.addObject("savedSearchEntity3", session.getAttribute("selectedEntity3")); //List<calendarEventTypes> eventTypes = calendarManager.getEventTypeColors(0); List<calendarEventTypes> eventTypes = calendarmanager.getEventCategories(programId); mav.addObject("eventTypes", eventTypes); return mav; } /** * The 'getGenderValues.do' GET request will return the view containing the table that will list * the gender values found for the selected Entities and project. * @return * @throws Exception */ @RequestMapping(value = "/getGenderValues.do", method = RequestMethod.GET) public @ResponseBody ModelAndView genderValues(HttpSession session, @RequestParam(value = "selectedEntity1", required = true) Integer selectedEntity1, @RequestParam(value = "selectedEntity2", required = true) Integer selectedEntity2, @RequestParam(value = "selectedEntity3", required = true) Integer selectedEntity3) throws Exception { session.setAttribute("selectedEntity1", selectedEntity1); session.setAttribute("selectedEntity2", selectedEntity2); session.setAttribute("selectedEntity3", selectedEntity3); ModelAndView mav = new ModelAndView(); mav.setViewName("/dashboard/widgets/gender/inc_genderValues"); /* Get Gender Values */ List genderValues = dashboardmanager.getGenderValuesList(programId, selectedEntity1, selectedEntity2, selectedEntity3); mav.addObject("genderValues", genderValues); return mav; } /** * The 'getGenderValuesJSON.do' GET request will return the JSON containing the gender values that will populate * the pie chart found for the selected Entities and project. * @return * @throws Exception */ @RequestMapping(value = "/getGenderValuesJSON.do", method = RequestMethod.GET) public @ResponseBody JSONArray getGenderValuesJSON(HttpSession session, HttpServletRequest request, @RequestParam(value = "selectedEntity1", required = true) Integer selectedEntity1, @RequestParam(value = "selectedEntity2", required = true) Integer selectedEntity2, @RequestParam(value = "selectedEntity3", required = true) Integer selectedEntity3) throws Exception { JSONArray eventsJSON = dashboardmanager.getGenderValuesJSON(programId, selectedEntity1, selectedEntity2, selectedEntity3); return eventsJSON; } /** * The 'getUpcomingEvents.do' GET request will return the table view for any upcoming events. * @return * @throws Exception */ @RequestMapping(value = "/getUpcomingEvents.do", method = RequestMethod.GET) public @ResponseBody ModelAndView upcomingEvents(HttpSession session, @RequestParam(value = "eventCategory", required = false) String eventCategory) throws Exception { ModelAndView mav = new ModelAndView(); mav.setViewName("/dashboard/widgets/events/inc_upcomingEvents"); /* Get a list of completed surveys the logged in user has access to */ User userDetails = (User) session.getAttribute("userDetails"); Calendar today = Calendar.getInstance(); String from = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime()); today.add(Calendar.MONTH, 3); String to = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime()); /* Get Gender Values */ List<calendarEvents> upcomingEvents = calendarmanager.getEvents(programId, from, to, eventCategory, userDetails); if (upcomingEvents != null && upcomingEvents.size() > 0) { calendarEventTypes eventTypeObject; for (calendarEvents event : upcomingEvents) { eventTypeObject = calendarmanager.getEventType(event.getEventTypeId()); event.setEventColor(eventTypeObject.getEventTypeColor()); } } mav.addObject("upcomingEvents", upcomingEvents); return mav; } }