KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openi > web > controller > ProjectListController


1 /*********************************************************************************
2  * The contents of this file are subject to the OpenI Public License Version 1.0
3  * ("License"); You may not use this file except in compliance with the
4  * License. You may obtain a copy of the License at
5  * http://www.openi.org/docs/LICENSE.txt
6  *
7  * Software distributed under the License is distributed on an "AS IS" basis,
8  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
9  * the specific language governing rights and limitations under the License.
10  *
11  * The Original Code is: OpenI Open Source
12  *
13  * The Initial Developer of the Original Code is Loyalty Matrix, Inc.
14  * Portions created by Loyalty Matrix, Inc. are
15  * Copyright (C) 2005 Loyalty Matrix, Inc.; All Rights Reserved.
16  *
17  * Contributor(s): ______________________________________.
18  *
19  ********************************************************************************/

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 JavaDoc;
32 import java.util.Map JavaDoc;
33 import javax.servlet.http.HttpServletRequest JavaDoc;
34 import javax.servlet.http.HttpServletResponse JavaDoc;
35 import javax.servlet.http.HttpSession JavaDoc;
36
37
38 /**
39  * @author Uddhab Pant <br>
40  * @version $Revision: 1.8 $ $Date: 2006/04/12 00:39:12 $ <br>
41  *
42  * This controller initializes all project related to the user
43  * and displays on the page.
44  *
45  */

46 public class ProjectListController extends AbstractController {
47     private static Logger logger = Logger.getLogger(ProjectListController.class);
48
49     /**
50      * Process the request and return a ModelAndView object which the DispatcherServlet will render.
51      *
52      * @param httpServletRequest HttpServletRequest
53      * @param httpServletResponse HttpServletResponse
54      * @return ModelAndView
55      * @throws Exception
56      */

57     protected ModelAndView handleRequestInternal(HttpServletRequest JavaDoc request,
58         HttpServletResponse JavaDoc response) throws Exception JavaDoc {
59         Map JavaDoc model;
60         HttpSession JavaDoc session;
61
62         try {
63             session = request.getSession();
64
65             model = new HashMap JavaDoc();
66
67             String JavaDoc projectsDir = "";
68
69             // projects path = application name-projects.
70
String JavaDoc projectsPath = request.getContextPath() + "-projects";
71
72             // get path of project directory
73
projectsDir = this.getServletContext()
74                               .getRealPath(".." + projectsPath);
75
76             File file = new File(projectsDir);
77
78             // if project directory exist
79
if (file.exists()) {
80                 model.put("projectDirExist", Boolean.TRUE);
81
82                 // if project context is null, initialize project context.
83
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 projects are not intialized
90
if (session.getAttribute("projects") == null) {
91                     String JavaDoc username = request.getUserPrincipal().getName();
92                     ProjectContext projectContext = (ProjectContext) session
93                             .getAttribute("projectContext");
94                         Map JavaDoc projects = null;
95
96                         // for applicatin admin get all projects
97
if (Util.isItemInList(username,
98                                     Application.getInstance()
99                                                    .getApplicationAdmins())) {
100                             projects = ProjectFactory.getProjectsByCategory(projectContext
101                                     .getBaseDirectory());
102
103                             // for other users, get projects related with the user.
104
} else {
105                             projects = ProjectFactory.getProjectsByCategory(projectContext
106                                     .getBaseDirectory(), username);
107                         }
108
109                         session.setAttribute("projects", projects);
110                     }
111
112                     // if user has selected a project, redirect to splash page.
113
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 no project is available.
126
if (((Map JavaDoc) 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 JavaDoc e) {
137                 logger.error("Exception:", e);
138                 throw e;
139             }
140         }
141     }
142
Popular Tags