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 ; 23 import javax.servlet.http.HttpServletRequest ; 24 import javax.servlet.http.HttpServletResponse ; 25 import java.util.HashMap ; 26 import java.util.List ; 27 import java.util.ListIterator ; 28 import java.util.Locale ; 29 import java.util.Map ; 30 31 32 40 public final class NewsListController extends ControllerSupport { 41 42 protected transient final Log log = LogFactory.getLog(NewsListController.class); 43 44 53 public void execute(ComponentContext tilesContext, 54 HttpServletRequest request, 55 HttpServletResponse response, 56 ServletContext servletContext) throws Exception { 57 58 ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); 59 60 Integer limit = GlobalProperties.getInstance(request.getSession().getServletContext()).getInteger(NewsModuleWebConstants.NEWS_LIST_SIZE, new Integer (5)); 61 62 List roles = null; 63 String 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 locale = (Locale ) request.getSession().getAttribute(Globals.LOCALE_KEY); 71 72 Map queryParameters = new HashMap (); 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 newsList = newsManager.getLastNews(queryInfo); 82 83 for ( ListIterator 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 |