package controller; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import domain.Project; import domain.User; import repository.ProjectDAO; import repository.UserDAO; /* * @author Aishwarya Srinivasan * @author Siddhesh Jaiswal */ /* * Information class that contains all the features of ManagingProjects */ public class ManageProject extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; private <T> ArrayList<T> subtract(ArrayList<T> list1, ArrayList<T> list2) { ArrayList<T> result = new ArrayList<T>(); Set<T> set2 = new HashSet<T>(list2); for (T t1 : list1) { if( !set2.contains(t1) ) { result.add(t1); } } return result; } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Renders manageProject.jsp System.out.println("enters manage project servlet"); RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/JSP/manageProject.jsp"); //dispatcher.forward(request, response); ArrayList<Project> allProjects; ArrayList<Project> activeProjects; ArrayList<Project> inactiveProjects; ArrayList<Integer> inactiveUserIds; try { allProjects = ProjectDAO.getAllProjects(); activeProjects = new ArrayList<>(); inactiveProjects = new ArrayList<>(); inactiveUserIds = new ArrayList<>(); inactiveUserIds = this.subtract(UserDAO.getAllUser("user"),UserDAO.getAllUser("userproject")); ArrayList <User> inactiveUsers = new ArrayList<>(); for (int i: inactiveUserIds){ inactiveUsers.add(UserDAO.getUser(i)); } for(Project p: allProjects){ if(p.getEnabled()){ activeProjects.add(p); }else{ inactiveProjects.add(p); } request.setAttribute("inactiveusers", inactiveUsers); request.setAttribute("activeprojects", activeProjects); request.setAttribute("inactiveprojects", inactiveProjects); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // sends list of users to manage project.jsp ArrayList<User> allUser; try { allUser = UserDAO.getAllUser(); ArrayList<Object> activeUsers = new ArrayList<>(); for(User u: allUser){ activeUsers.add(u); } request.setAttribute("activeusers", activeUsers); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } dispatcher.forward(request, response); } }