1 20 package org.openi.web.controller; 21 22 import org.apache.log4j.Logger; 23 import org.openi.application.Application; 24 import org.openi.project.Project; 25 import org.openi.project.ProjectContext; 26 import org.openi.project.ProjectFactory; 27 import org.openi.util.Util; 28 import org.springframework.web.servlet.ModelAndView; 29 import org.springframework.web.servlet.mvc.AbstractController; 30 import java.io.*; 31 import java.util.HashMap ; 32 import java.util.Map ; 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 import javax.servlet.http.HttpSession ; 36 37 38 46 public class ProjectListController extends AbstractController { 47 private static Logger logger = Logger.getLogger(ProjectListController.class); 48 49 57 protected ModelAndView handleRequestInternal(HttpServletRequest request, 58 HttpServletResponse response) throws Exception { 59 Map model; 60 HttpSession session; 61 62 try { 63 session = request.getSession(); 64 65 model = new HashMap (); 66 67 String projectsDir = ""; 68 69 String projectsPath = request.getContextPath() + "-projects"; 71 72 projectsDir = this.getServletContext() 74 .getRealPath(".." + projectsPath); 75 76 File file = new File(projectsDir); 77 78 if (file.exists()) { 80 model.put("projectDirExist", Boolean.TRUE); 81 82 if (session.getAttribute("projectContext") == null) { 84 ProjectContext projectContext = new ProjectContext(null, 85 projectsDir, request.getUserPrincipal().getName()); 86 session.setAttribute("projectContext", projectContext); 87 } 88 89 if (session.getAttribute("projects") == null) { 91 String username = request.getUserPrincipal().getName(); 92 ProjectContext projectContext = (ProjectContext) session 93 .getAttribute("projectContext"); 94 Map projects = null; 95 96 if (Util.isItemInList(username, 98 Application.getInstance() 99 .getApplicationAdmins())) { 100 projects = ProjectFactory.getProjectsByCategory(projectContext 101 .getBaseDirectory()); 102 103 } else { 105 projects = ProjectFactory.getProjectsByCategory(projectContext 106 .getBaseDirectory(), username); 107 } 108 109 session.setAttribute("projects", projects); 110 } 111 112 if (request.getParameter("chooseProject") != null) { 114 ProjectContext projectContext = (ProjectContext) session 115 .getAttribute("projectContext"); 116 Project project = ProjectFactory.getProject(projectContext 117 .getBaseDirectory(), 118 request.getParameter("chooseProject")); 119 projectContext.setProject(project); 120 121 response.sendRedirect(request.getContextPath() 122 + "/splash.htm"); 123 } 124 125 if (((Map ) session.getAttribute("projects")).size() < 1) { 127 model.put("projectAvailable", Boolean.FALSE); 128 } else { 129 model.put("projectAvailable", Boolean.TRUE); 130 } 131 } else { 132 model.put("projectDirExist", Boolean.FALSE); 133 } 134 135 return new ModelAndView("projectListView", "model", model); 136 } catch (Exception e) { 137 logger.error("Exception:", e); 138 throw e; 139 } 140 } 141 } 142 | Popular Tags |