package org.akaza.openclinica.controller;
import java.util.List;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
/**
* A simple example of an annotated Spring Controller. Notice that it is a POJO; it
* does not implement any Spring interfaces or extend Spring classes.
*/
@Controller("userController")
public class UserController {
//Autowire the class that handles the sidebar structure with a configured
//bean named "sidebarInit"
@Autowired
@Qualifier("sidebarInit")
private SidebarInit sidebarInit;
public UserController(){}
/**
* The method is mapped to the URL /user.htm
* @param request The HttpServletRequest for storing attributes.
* @param userId The id of the user.
* @return The return value is a ModelMap (instead of ModelAndView object),
* because the view name automatically resolves to "user"
*/
@RequestMapping("/user")
public ModelMap userHandler(HttpServletRequest request,
@RequestParam("id") int userId) {
ModelMap map = new ModelMap();
List<String> userList = new ArrayList<String>();
//set up request attributes for sidebar
setUpSidebar(request);
userList.add("Bruce");
userList.add("Yufang");
userList.add("Krikor");
userList.add("Tom");
//TODO: Get user from Hibernate DAO class
//userList.add(userDao.loadUser(userId).getName())
map.addAllAttributes(userList);
return map;
}
private void setUpSidebar(HttpServletRequest request){
if(sidebarInit.getAlertsBoxSetup() ==
SidebarEnumConstants.OPENALERTS){
request.setAttribute("alertsBoxSetup",true);
}
if(sidebarInit.getInfoBoxSetup() == SidebarEnumConstants.OPENINFO){
request.setAttribute("infoBoxSetup",true);
}
if(sidebarInit.getInstructionsBoxSetup() == SidebarEnumConstants.OPENINSTRUCTIONS){
request.setAttribute("instructionsBoxSetup",true);
}
if(! (sidebarInit.getEnableIconsBoxSetup() ==
SidebarEnumConstants.DISABLEICONS)){
request.setAttribute("enableIconsBoxSetup",true);
}
}
public SidebarInit getSidebarInit() {
return sidebarInit;
}
public void setSidebarInit(SidebarInit sidebarInit) {
this.sidebarInit = sidebarInit;
}
}