1 16 package com.blandware.atleap.webapp.action.news; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.common.NewsModuleConstants; 20 import com.blandware.atleap.common.util.QueryInfo; 21 import com.blandware.atleap.model.core.Role; 22 import com.blandware.atleap.model.core.User; 23 import com.blandware.atleap.model.news.NewsItem; 24 import com.blandware.atleap.service.core.UserManager; 25 import com.blandware.atleap.service.news.NewsManager; 26 import com.blandware.atleap.webapp.action.core.grid.BaseGridAction; 27 import com.blandware.atleap.webapp.taglib.core.grid.util.FilterConditions; 28 import com.blandware.atleap.webapp.taglib.core.grid.util.Grid; 29 import com.blandware.atleap.webapp.taglib.core.grid.util.SetFilter; 30 import com.blandware.atleap.webapp.taglib.core.grid.util.StringFilter; 31 import com.blandware.atleap.webapp.util.core.WebappConstants; 32 import com.blandware.atleap.webapp.util.core.WebappUtil; 33 import com.blandware.atleap.webapp.util.news.NewsModuleWebConstants; 34 import org.apache.struts.Globals; 35 import org.apache.struts.action.ActionForm; 36 import org.apache.struts.action.ActionForward; 37 import org.apache.struts.action.ActionMapping; 38 39 import javax.servlet.http.HttpServletRequest ; 40 import javax.servlet.http.HttpServletResponse ; 41 import java.util.HashMap ; 42 import java.util.Iterator ; 43 import java.util.List ; 44 import java.util.ListIterator ; 45 import java.util.Locale ; 46 import java.util.Map ; 47 48 61 public final class NewsArchiveAction extends BaseGridAction { 62 71 public ActionForward execute(ActionMapping mapping, ActionForm form, 72 HttpServletRequest request, HttpServletResponse response) throws Exception { 73 74 75 Grid newsGrid = getGridByName(NewsModuleWebConstants.NEWS_ARCHIVE_GRID, request.getSession()); 76 if ( newsGrid == null ) { 77 newsGrid = new Grid(NewsModuleWebConstants.NEWS_ARCHIVE_GRID); 78 } 79 80 QueryInfo queryInfo = new QueryInfo(); 81 StringFilter activeFilter = new StringFilter("item.active"); 82 activeFilter.createFirstClause(FilterConditions.STRING_EQUAL, "T"); 83 newsGrid.addFilter(activeFilter); 84 85 86 SetFilter rolesFilter = new SetFilter("role"); 87 String userName = request.getRemoteUser(); 88 UserManager userManager = (UserManager) getBean(Constants.USER_MANAGER_BEAN); 89 if ( userName != null ) { 90 User user = userManager.retrieveUser(userName); 91 List userRoles = user.getRoles(); 92 if ( userRoles != null ) { 93 HashMap selectedElements = new HashMap (); 94 for ( Iterator i = userRoles.iterator(); i.hasNext(); ) { 95 Role role = (Role) i.next(); 96 selectedElements.put(role.getName(), role.getTitle()); 97 } 98 rolesFilter.setSelectedElements(selectedElements); 99 rolesFilter.createFirstClause(FilterConditions.FIELD_IN_SET); 100 rolesFilter.createSecondClause(FilterConditions.OBJECT_IS_NULL, FilterConditions.LOGIC_COPULA_OR); 101 } 102 } else { 103 rolesFilter.createFirstClause(FilterConditions.OBJECT_IS_NULL); 104 } 105 106 newsGrid.addFilter(rolesFilter); 107 108 queryInfo.setWhereClause(newsGrid.getWhereClause()); 109 110 saveGrid(newsGrid, request.getSession()); 111 112 Map queryParameters = new HashMap (); 113 Locale locale = (Locale ) request.getSession().getAttribute(Globals.LOCALE_KEY); 114 queryParameters.put("localeIdentifier", locale.getLanguage()); 115 queryInfo.setQueryParameters(queryParameters); 116 117 NewsManager newsManager = (NewsManager) getBean(NewsModuleConstants.NEWS_MANAGER_BEAN); 118 List newsItems = newsManager.listNewsItems(queryInfo).asList(); 119 120 for ( ListIterator i = newsItems.listIterator(); i.hasNext(); ) { 122 NewsItem newsItem = (NewsItem) i.next(); 123 NewsItem tmp = new NewsItem(); 124 WebappUtil.copyProperties(tmp, newsItem, request); 125 tmp.setUri(WebappUtil.getActionMappingURL(newsItem.getUri(), null, request, WebappConstants.URL_TYPE_CONTEXT_RELATIVE)); 126 i.set(tmp); 127 } 128 129 request.setAttribute(NewsModuleWebConstants.NEWS_ITEMS_COLLECTION_KEY, newsItems); 130 131 saveToken(request); 133 return mapping.findForward("listNewsItems"); 134 } 135 } | Popular Tags |