KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > webapp > action > news > NewsListController


1 package com.blandware.atleap.webapp.action.news;
2
3 import com.blandware.atleap.common.Constants;
4 import com.blandware.atleap.common.NewsModuleConstants;
5 import com.blandware.atleap.common.util.QueryInfo;
6 import com.blandware.atleap.model.core.User;
7 import com.blandware.atleap.model.news.NewsItem;
8 import com.blandware.atleap.service.core.UserManager;
9 import com.blandware.atleap.service.news.NewsManager;
10 import com.blandware.atleap.webapp.util.core.GlobalProperties;
11 import com.blandware.atleap.webapp.util.core.WebappConstants;
12 import com.blandware.atleap.webapp.util.core.WebappUtil;
13 import com.blandware.atleap.webapp.util.news.NewsModuleWebConstants;
14 import org.apache.commons.logging.Log;
15 import org.apache.commons.logging.LogFactory;
16 import org.apache.struts.Globals;
17 import org.apache.struts.tiles.ComponentContext;
18 import org.apache.struts.tiles.ControllerSupport;
19 import org.springframework.context.ApplicationContext;
20 import org.springframework.web.context.support.WebApplicationContextUtils;
21
22 import javax.servlet.ServletContext JavaDoc;
23 import javax.servlet.http.HttpServletRequest JavaDoc;
24 import javax.servlet.http.HttpServletResponse JavaDoc;
25 import java.util.HashMap JavaDoc;
26 import java.util.List JavaDoc;
27 import java.util.ListIterator JavaDoc;
28 import java.util.Locale JavaDoc;
29 import java.util.Map JavaDoc;
30
31
32 /**
33  * <p>NewsListController class. This class is used to display list of news items
34  * </p>
35  * <p><a HREF="NewsListController.java.htm"><i>View Source</i></a></p>
36  *
37  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
38  * @version $Revision: 1.16 $ $Date: 2005/06/05 14:03:01 $
39  */

40 public final class NewsListController extends ControllerSupport {
41
42     protected transient final Log log = LogFactory.getLog(NewsListController.class);
43
44     //~ Methods ================================================================
45
/**
46      * Retrieves all menu items and puts them into request
47      *
48      * @param tilesContext Current tile context
49      * @param request Current request
50      * @param response Current response
51      * @param servletContext Current Servlet Context
52      */

53     public void execute(ComponentContext tilesContext,
54                         HttpServletRequest JavaDoc request,
55                         HttpServletResponse JavaDoc response,
56                         ServletContext JavaDoc servletContext) throws Exception JavaDoc {
57
58         ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
59
60         Integer JavaDoc limit = GlobalProperties.getInstance(request.getSession().getServletContext()).getInteger(NewsModuleWebConstants.NEWS_LIST_SIZE, new Integer JavaDoc(5));
61
62         List JavaDoc roles = null;
63         String JavaDoc userName = request.getRemoteUser();
64         UserManager userManager = (UserManager) applicationContext.getBean(Constants.USER_MANAGER_BEAN);
65         if ( userName != null ) {
66             User user = userManager.retrieveUser(userName);
67             roles = user.getRoles();
68         }
69
70         Locale JavaDoc locale = (Locale JavaDoc) request.getSession().getAttribute(Globals.LOCALE_KEY);
71
72         Map JavaDoc queryParameters = new HashMap JavaDoc();
73         queryParameters.put("localeIdentifier", locale.getLanguage());
74         queryParameters.put("roles", roles);
75
76         QueryInfo queryInfo = new QueryInfo();
77         queryInfo.setQueryParameters(queryParameters);
78         queryInfo.setLimit(limit);
79
80         NewsManager newsManager = (NewsManager) applicationContext.getBean(NewsModuleConstants.NEWS_MANAGER_BEAN);
81         List JavaDoc newsList = newsManager.getLastNews(queryInfo);
82
83         // set URI
84
for ( ListIterator JavaDoc i = newsList.listIterator(); i.hasNext(); ) {
85             NewsItem newsItem = (NewsItem) i.next();
86             NewsItem tmp = new NewsItem();
87             WebappUtil.copyProperties(tmp, newsItem, request);
88             tmp.setUri(WebappUtil.getActionMappingURL(newsItem.getUri(), null, request, WebappConstants.URL_TYPE_CONTEXT_RELATIVE));
89             i.set(tmp);
90         }
91
92         request.setAttribute(NewsModuleWebConstants.NEWS_ITEMS_COLLECTION_KEY, newsList);
93     }
94 }
95
Popular Tags