1 16 package com.blandware.atleap.webapp.action.core.layout; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.Layout; 20 import com.blandware.atleap.service.core.LayoutManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.LayoutForm; 23 import com.blandware.atleap.webapp.struts.HeritableComponentDefinition; 24 import com.blandware.atleap.webapp.util.core.WebappConstants; 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionForward; 27 import org.apache.struts.action.ActionMapping; 28 import org.apache.struts.action.ActionMessage; 29 import org.apache.struts.action.ActionMessages; 30 import org.apache.struts.tiles.TilesUtil; 31 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 35 55 public final class ViewLayoutAction extends BaseAction { 56 65 public ActionForward execute(ActionMapping mapping, ActionForm form, 66 HttpServletRequest request, HttpServletResponse response) throws Exception { 67 68 LayoutForm layoutForm = (LayoutForm) form; 69 Long layoutId = null; 70 if ( layoutForm.getId() != null ) { 71 layoutId = Long.valueOf(layoutForm.getId()); 72 } else if ( request.getSession().getAttribute(WebappConstants.LAYOUT_ID_KEY) != null ) { 73 layoutId = (Long ) request.getSession().getAttribute(WebappConstants.LAYOUT_ID_KEY); 74 } else { 75 if ( log.isWarnEnabled() ) { 76 log.warn("Missing layout ID. Returning to list..."); 77 } 78 return mapping.findForward("listLayouts"); 79 } 80 LayoutManager layoutManager = (LayoutManager) getBean(Constants.LAYOUT_MANAGER_BEAN); 81 Layout layout = layoutManager.retrieveLayout(layoutId); 82 if ( layout == null ) { 83 ActionMessages errors = new ActionMessages(); 85 errors.add("layoutNotFound", new ActionMessage("core.layout.errors.notFound")); 86 saveErrors(request, errors); 87 return mapping.findForward("listLayouts"); 88 } 89 90 String parentDefinition = layout.getDefinition(); 91 Layout parentLayout = null; 92 93 do { 94 parentDefinition = ((HeritableComponentDefinition) TilesUtil.getDefinition(parentDefinition, request, getServlet().getServletContext())).getExtends(); 95 if ( parentDefinition != null ) { 96 parentLayout = layoutManager.findLayoutByDefinition(parentDefinition); 97 if ( parentLayout != null ) { 98 break; 99 } 100 } 101 } while ( parentDefinition != null ); 102 103 if ( parentLayout != null ) { 104 request.setAttribute("parentLayoutId", parentLayout.getId()); 105 } 106 107 request.getSession().setAttribute(WebappConstants.OWNER_ID_KEY, layout.getId()); 109 110 request.setAttribute("layout", layout); 111 saveToken(request); 112 return mapping.findForward("viewLayout"); 113 } 114 } | Popular Tags |