1 16 package com.blandware.atleap.webapp.action.core.menuItem; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.MenuItem; 20 import com.blandware.atleap.service.core.MenuManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.MenuItemForm; 23 import com.blandware.atleap.webapp.util.core.LocaleUtil; 24 import com.blandware.atleap.webapp.util.core.MenuUtil; 25 import com.blandware.atleap.webapp.util.core.WebappConstants; 26 import com.blandware.atleap.webapp.util.core.WebappUtil; 27 import org.apache.commons.validator.GenericValidator; 28 import org.apache.struts.action.ActionForm; 29 import org.apache.struts.action.ActionForward; 30 import org.apache.struts.action.ActionMapping; 31 import org.apache.struts.action.ActionMessage; 32 import org.apache.struts.action.ActionMessages; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import java.util.LinkedList ; 37 import java.util.List ; 38 39 59 public final class ViewMenuItemAction extends BaseAction { 60 69 public ActionForward execute(ActionMapping mapping, ActionForm form, 70 HttpServletRequest request, HttpServletResponse response) throws Exception { 71 72 String redirectUrl = request.getParameter("redirectUrl"); 73 if (!GenericValidator.isBlankOrNull(redirectUrl)) { 74 request.getSession().setAttribute(WebappConstants.REDIRECT_URL_KEY, redirectUrl); 75 } 76 77 MenuItemForm menuItemForm = (MenuItemForm) form; 78 79 Long ownerId = null; 80 if ( !GenericValidator.isBlankOrNull(menuItemForm.getOwnerId()) ) { 81 ownerId = Long.valueOf(menuItemForm.getOwnerId()); 82 } else { 83 if ( log.isWarnEnabled() ) { 84 log.warn("Missing owner ID. Returning to index..."); 85 } 86 return mapping.findForward("admin"); 87 } 88 89 request.getSession().setAttribute(WebappConstants.OWNER_ID_KEY, ownerId); 90 91 Long menuItemId = null; 92 if ( !GenericValidator.isBlankOrNull(menuItemForm.getId()) ) { 93 menuItemId = Long.valueOf(menuItemForm.getId()); 94 } else { 95 if ( log.isWarnEnabled() ) { 96 log.warn("Missing menu item ID. Returning to list..."); 97 } 98 return mapping.findForward("listMenuItems"); 99 } 100 101 MenuManager menuManager = (MenuManager) getBean(Constants.MENU_MANAGER_BEAN); 102 MenuItem menuItem = menuManager.retrieveMenuItem(menuItemId); 103 104 if ( menuItem == null ) { 105 ActionMessages errors = new ActionMessages(); 107 errors.add("menuItemNotFound", new ActionMessage("core.menuItem.errors.notFound")); 108 saveErrors(request, errors); 109 return mapping.findForward("listMenuItems"); 110 } 111 112 Boolean canUpdate = Boolean.TRUE; 113 if ( menuItem.isRedefinition() || !menuItem.isDynamic() || !menuItem.getOwner().getId().equals(ownerId) ) { 114 canUpdate = Boolean.FALSE; 115 } 116 117 request.setAttribute("canUpdate", canUpdate); 118 119 MenuItem tmp = new MenuItem(); 121 WebappUtil.copyProperties(tmp, menuItem, request); 122 tmp.setLocation(new MenuUtil(request).getLocation(menuItem, WebappConstants.URL_TYPE_CONTEXT_RELATIVE)); 123 124 request.setAttribute("menuItem", tmp); 125 126 List contentLocales = LocaleUtil.getInstance(servlet.getServletContext()).getAvailableLocales(); 128 129 request.getSession().setAttribute(WebappConstants.CONTENT_LOCALES_COLLECTION_KEY, contentLocales); 130 131 if ( menuItem.getOwner() != null ) { 133 request.setAttribute(WebappConstants.OWNER_INFO_KEY, WebappUtil.getLocalizableInfo(menuItem.getOwner(), request)); 134 request.setAttribute(WebappConstants.MENU_ITEM_OWNER_ID_KEY, menuItem.getOwner().getId()); 135 } 136 137 MenuItem parentItem = menuItem.getParentItem(); 139 if ( parentItem != null ) { 140 LinkedList parents = new LinkedList (); 142 while ( parentItem != null ) { 143 parents.addFirst(parentItem); 144 parentItem = parentItem.getParentItem(); 145 } 146 request.setAttribute(WebappConstants.MENU_ITEM_PARENTS_LIST_KEY, parents); 147 } 148 149 return mapping.findForward("viewMenuItem"); 150 } 151 } | Popular Tags |