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.model.core.Role; 21 import com.blandware.atleap.model.news.NewsItem; 22 import com.blandware.atleap.service.core.RoleManager; 23 import com.blandware.atleap.service.news.NewsManager; 24 import com.blandware.atleap.webapp.action.core.BaseAction; 25 import com.blandware.atleap.webapp.form.core.SelectRolesForm; 26 import com.blandware.atleap.webapp.util.news.NewsModuleWebConstants; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionForward; 29 import org.apache.struts.action.ActionMapping; 30 import org.apache.struts.action.ActionMessage; 31 import org.apache.struts.action.ActionMessages; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 import java.util.ArrayList ; 36 import java.util.Iterator ; 37 import java.util.List ; 38 39 57 public final class CallAssignNewsItemRolesAction extends BaseAction { 58 67 public ActionForward execute(ActionMapping mapping, ActionForm form, 68 HttpServletRequest request, HttpServletResponse response) throws Exception { 69 70 Long newsItemId = null; 71 if ( request.getParameter("newsItemId") != null ) { 72 newsItemId = Long.valueOf(request.getParameter("newsItemId")); 73 } else if ( request.getAttribute(NewsModuleWebConstants.NEWS_ITEM_ID_KEY) != null ) { 74 newsItemId = (Long ) request.getAttribute(NewsModuleWebConstants.NEWS_ITEM_ID_KEY); 75 } else { 76 if ( log.isWarnEnabled() ) { 77 log.warn("Missing news item ID. Returning to list..."); 78 } 79 return mapping.findForward("listNewsItems"); 80 } 81 82 SelectRolesForm selectRolesForm = (SelectRolesForm) form; 83 NewsManager newsManager = (NewsManager) getBean(NewsModuleConstants.NEWS_MANAGER_BEAN); 84 NewsItem newsItem = newsManager.retrieveNewsItem(newsItemId); 85 if ( newsItem == null ) { 86 ActionMessages errors = new ActionMessages(); 88 errors.add("newsItemNotFound", new ActionMessage("news.errors.notFound")); 89 saveErrors(request, errors); 90 return mapping.findForward("listNewsItems"); 91 } 92 93 selectRolesForm.setVersion(newsItem.getVersion().toString()); 94 95 List newsItemRoles = new ArrayList (); 96 for ( Iterator i = newsItem.getRoles().iterator(); i.hasNext(); ) { 97 Role role = (Role) i.next(); 98 newsItemRoles.add(role); 99 } 100 101 RoleManager roleManager = (RoleManager) getBean(Constants.ROLE_MANAGER_BEAN); 102 List availableRoles = roleManager.listRoles(null).asList(); 103 List allRoles = new ArrayList (availableRoles); 104 availableRoles.removeAll(newsItemRoles); 105 106 selectRolesForm.setAvailableRolesList(availableRoles); 107 selectRolesForm.setSelectedRolesList(newsItemRoles); 108 request.getSession().setAttribute(NewsModuleWebConstants.NEWS_ITEM_ID_KEY, newsItem.getId()); 109 110 request.setAttribute("allRoles", allRoles); 111 112 saveToken(request); 114 return mapping.findForward("assignRoles"); 115 } 116 } | Popular Tags |