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.ActionPage; 20 import com.blandware.atleap.model.core.ContentPage; 21 import com.blandware.atleap.model.core.Layout; 22 import com.blandware.atleap.model.core.Localizable; 23 import com.blandware.atleap.model.core.MenuItem; 24 import com.blandware.atleap.service.core.LookupManager; 25 import com.blandware.atleap.service.core.MenuManager; 26 import com.blandware.atleap.webapp.action.core.BaseAction; 27 import com.blandware.atleap.webapp.form.MenuItemForm; 28 import com.blandware.atleap.webapp.util.core.WebappConstants; 29 import org.apache.commons.validator.GenericValidator; 30 import org.apache.struts.action.ActionForm; 31 import org.apache.struts.action.ActionForward; 32 import org.apache.struts.action.ActionMapping; 33 import org.apache.struts.action.ActionMessage; 34 import org.apache.struts.action.ActionMessages; 35 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 39 63 public final class ListMenuItemsAction extends BaseAction { 64 73 public ActionForward execute(ActionMapping mapping, ActionForm form, 74 HttpServletRequest request, HttpServletResponse response) { 75 76 Long ownerId = null; 77 MenuItemForm menuItemForm = (MenuItemForm) form; 78 if ( !GenericValidator.isBlankOrNull(menuItemForm.getOwnerId()) ) { 79 ownerId = Long.valueOf(menuItemForm.getOwnerId()); 80 } else if ( request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY) != null ) { 81 ownerId = (Long ) request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY); 82 } else { 83 if ( log.isWarnEnabled() ) { 84 log.warn("Missing owner ID. Returning to index..."); 85 } 86 return mapping.findForward("admin"); 87 } 88 89 if ( request.getParameter("showParent") != null || request.getParameter("parentItemId") != null ) { 90 Long parentItemId = (Long ) request.getSession().getAttribute(WebappConstants.MENU_ITEM_PARENT_ID_KEY); 91 if ( request.getParameter("showParent") != null ) { 92 if ( parentItemId != null ) { 93 MenuManager menuManager = (MenuManager) getBean(Constants.MENU_MANAGER_BEAN); 94 MenuItem parentItem = menuManager.retrieveMenuItem(parentItemId); 95 parentItemId = null; 96 if ( parentItem != null ) { 97 if ( parentItem.getParentItem() != null ) { 98 parentItemId = parentItem.getParentItem().getId(); 99 } 100 } 101 } 102 } else { 103 try { 104 parentItemId = Long.valueOf(request.getParameter("parentItemId")); 105 } catch ( NumberFormatException e ) { 106 parentItemId = null; 107 } 108 } 109 request.getSession().setAttribute(WebappConstants.MENU_ITEM_PARENT_ID_KEY, parentItemId); 110 } 111 112 LookupManager lookupManager = (LookupManager) getBean(Constants.LOOKUP_MANAGER_BEAN); 113 Localizable owner = lookupManager.retrieveLocalizable(ownerId); 114 115 if ( owner == null ) { 116 ActionMessages errors = new ActionMessages(); 118 errors.add("ownerNotFound", new ActionMessage("core.menuItem.errors.ownerNotFound")); 119 saveErrors(request, errors); 120 return mapping.findForward("admin"); 121 } 122 123 String key = new String (); 124 ActionForward forward = null; 125 126 if ( owner instanceof Layout ) { 127 forward = mapping.findForward("viewLayout"); 128 key = WebappConstants.LAYOUT_ID_KEY; 129 } else if ( owner instanceof ContentPage ) { 130 forward = mapping.findForward("viewContentPage"); 131 key = WebappConstants.CONTENT_PAGE_ID_KEY; 132 } else if ( owner instanceof ActionPage ) { 133 forward = mapping.findForward("viewActionPage"); 134 key = WebappConstants.ACTION_PAGE_ID_KEY; 135 } 136 137 request.getSession().setAttribute(key, ownerId); 138 139 saveToken(request); 141 142 return forward; 143 } 144 } | Popular Tags |