weaver 2005/01/04 08:01:59 Modified: layout-portlets/src/java/org/apache/jetspeed/portlets/layout MultiColumnPortlet.java LayoutPortlet.java Log: see: http://issues.apache.org/jira/browse/JS2-183 & http://issues.apache.org/jira/browse/JS2-182 Revision Changes Path 1.7 +4 -4 jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Index: MultiColumnPortlet.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MultiColumnPortlet.java 15 Oct 2004 21:47:25 -0000 1.6 +++ MultiColumnPortlet.java 4 Jan 2005 16:01:58 -0000 1.7 @@ -68,12 +68,12 @@ public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException { - RequestContext context = Jetspeed.getCurrentRequestContext(); + RequestContext context = getRequestContext(request); PortletWindow window = context.getPortalURL().getNavigationalState().getMaximizedWindow(); if (request.getParameter("moveBy") != null && request.getParameter("fragmentId") != null) { - Page page = getPage(request); + Page page = getRequestContext(request).getPage(); Fragment f = getFragment(request, false); ArrayList tempFrags = new ArrayList(f.getFragments()); doMoveFragment(page.getFragmentById(request.getParameter("fragmentId")), request.getParameter("moveBy"), @@ -105,7 +105,7 @@ // now invoke the JSP associated with this portlet super.doView(request, response); - + request.removeAttribute("columns"); request.removeAttribute("numberOfColumns"); } @@ -212,7 +212,7 @@ { try { - pm.updatePage(getPage(request)); + pm.updatePage(getRequestContext(request).getPage()); } catch (Exception e) { 1.7 +100 -79 jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java Index: LayoutPortlet.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- LayoutPortlet.java 15 Oct 2004 21:47:25 -0000 1.6 +++ LayoutPortlet.java 4 Jan 2005 16:01:58 -0000 1.7 @@ -22,17 +22,12 @@ import javax.portlet.PortletPreferences; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.jetspeed.Jetspeed; import org.apache.jetspeed.PortalReservedParameters; -import org.apache.jetspeed.aggregator.ContentDispatcher; import org.apache.jetspeed.locator.TemplateLocatorException; import org.apache.jetspeed.om.page.Fragment; -import org.apache.jetspeed.om.page.Page; import org.apache.jetspeed.request.RequestContext; import org.apache.jetspeed.velocity.JetspeedPowerTool; import org.apache.pluto.om.window.PortletWindow; @@ -43,62 +38,56 @@ { /** Commons logging */ protected final static Log log = LogFactory.getLog(LayoutPortlet.class); - - public void init(PortletConfig config) throws PortletException + public void init( PortletConfig config ) throws PortletException { super.init(config); } - public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException + public void doHelp( RenderRequest request, RenderResponse response ) throws PortletException, IOException { response.setContentType("text/html"); - JetspeedPowerTool jpt = new JetspeedPowerTool(request, response, getPortletConfig()); + JetspeedPowerTool jpt = getJetspeedPowerTool(request); + PortletPreferences prefs = request.getPreferences(); String absHelpPage = ""; - - request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY, getPage(request)); - request.setAttribute("fragment", getFragment(request, false)); - request.setAttribute("dispatcher", getDispatcher(request)); - + + // request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE, getPage(request)); + // request.setAttribute("fragment", getFragment(request, false)); + if (prefs != null) { - + try { String helpPage = prefs.getValue(PARAM_VIEW_PAGE, "columns"); - - // TODO: Need to retreive layout.properties instead of hard-coding ".vm" - absHelpPage = jpt.getTemplate(helpPage+"/"+JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE+"-help.vm", - JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); + + // TODO: Need to retreive layout.properties instead of + // hard-coding ".vm" + absHelpPage = jpt.getTemplate(helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + "-help.vm", + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); log.debug("Path to help page for LayoutPortlet " + absHelpPage); - request.setAttribute(PARAM_VIEW_PAGE, absHelpPage); + request.setAttribute(PARAM_VIEW_PAGE, absHelpPage); } catch (TemplateLocatorException e) { throw new PortletException("Unable to locate view page " + absHelpPage, e); - } + } } super.doView(request, response); - - request.removeAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY); - request.removeAttribute("fragment"); - request.removeAttribute("layout"); - request.removeAttribute("dispatcher"); - - + + // request.removeAttribute(PortalReservedParameters.PAGE_ATTRIBUTE); + // request.removeAttribute("fragment"); + // request.removeAttribute("layout"); + // request.removeAttribute("dispatcher"); } - - public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException + + public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException { response.setContentType("text/html"); - - RequestContext context = Jetspeed.getCurrentRequestContext(); + RequestContext context = getRequestContext(request); PortletWindow window = context.getPortalURL().getNavigationalState().getMaximizedWindow(); boolean maximized = (window != null); - - request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY, getPage(request)); - request.setAttribute("fragment", getFragment(request, maximized)); - request.setAttribute("dispatcher", getDispatcher(request)); + if (maximized) { request.setAttribute("layout", getMaximizedLayout(request)); @@ -107,31 +96,33 @@ { request.setAttribute("layout", getFragment(request, false)); } - // now invoke the JSP associated with this portlet - JetspeedPowerTool jpt = new JetspeedPowerTool(request, response, getPortletConfig()); + PortletPreferences prefs = request.getPreferences(); if (prefs != null) { String absViewPage = null; try { + JetspeedPowerTool jpt = getJetspeedPowerTool(request); if (maximized) { String viewPage = prefs.getValue(PARAM_MAX_PAGE, "maximized"); - - // TODO: Need to retreive layout.properties instead of hard-coding ".vm" - absViewPage = jpt.getTemplate(viewPage+"/"+JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE+".vm", - JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); + + // TODO: Need to retreive layout.properties instead of + // hard-coding ".vm" + absViewPage = jpt.getTemplate(viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + ".vm", + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); } else { String viewPage = prefs.getValue(PARAM_VIEW_PAGE, "columns"); - - // TODO: Need to retreive layout.properties instead of hard-coding ".vm" - absViewPage = jpt.getTemplate(viewPage+"/"+JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE+".vm", - JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); + + // TODO: Need to retreive layout.properties instead of + // hard-coding ".vm" + absViewPage = jpt.getTemplate(viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + ".vm", + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath(); } - log.debug("Path to view page for LayoutPortlet "+absViewPage); + log.debug("Path to view page for LayoutPortlet " + absViewPage); request.setAttribute(PARAM_VIEW_PAGE, absViewPage); } catch (TemplateLocatorException e) @@ -142,57 +133,87 @@ super.doView(request, response); - request.removeAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY); - request.removeAttribute("fragment"); + request.removeAttribute(PortalReservedParameters.PAGE_ATTRIBUTE); + request.removeAttribute("fragment"); request.removeAttribute("layout"); request.removeAttribute("dispatcher"); } - protected Fragment getFragment(RenderRequest request, boolean maximized) + /** + * <p> + * initJetspeedPowerTool + * </p> + * + * @param request + * @param response + * @return + * @throws PortletException + */ + protected JetspeedPowerTool getJetspeedPowerTool( RenderRequest request ) throws PortletException { - // Very ugly and Pluto dependant but I don't see anything better right now - ServletRequest innerRequest = ((HttpServletRequestWrapper) request).getRequest(); - String attribute = (maximized) ? "org.apache.jetspeed.maximized.Fragment" : "org.apache.jetspeed.Fragment"; - Fragment fragment = (Fragment) innerRequest.getAttribute(attribute); + JetspeedPowerTool tool = (JetspeedPowerTool) (RequestContext) request.getAttribute(PortalReservedParameters.JETSPEED_POWER_TOOL_REQ_ATTRIBUTE); + RequestContext requestContext = (RequestContext) request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); + + if (tool == null) + { + + try + { + if (requestContext == null) + { + throw new IllegalStateException( + "LayoutPortlet unable to handle request because there is no RequestContext in " + + "the HttpServletRequest."); + } - return fragment; + tool = new JetspeedPowerTool(requestContext); + request.setAttribute(PortalReservedParameters.JETSPEED_POWER_TOOL_REQ_ATTRIBUTE, tool); + } + + catch (Exception e1) + { + throw new PortletException("Unable to init JetspeedPowerTool: " + e1.toString(), e1); + } + } + + return tool; } - protected Fragment getMaximizedLayout(RenderRequest request) + protected Fragment getFragment( RenderRequest request, boolean maximized ) { - // Very ugly and Pluto dependant but I don't see anything better right now - ServletRequest innerRequest = ((HttpServletRequestWrapper) request).getRequest(); - String attribute = "org.apache.jetspeed.maximized.Layout" ; - Fragment fragment = (Fragment) innerRequest.getAttribute(attribute); - return fragment; - } - - protected Page getPage(RenderRequest request) - { - // Very ugly and Pluto dependant but I don't see anything better right now - ServletRequest innerRequest = ((HttpServletRequestWrapper) request).getRequest(); - Page page = (Page) innerRequest.getAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY); - - return page; + String attribute = (maximized) + ? PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE + : PortalReservedParameters.FRAGMENT_ATTRIBUTE; + return (Fragment) request.getAttribute(attribute); } - protected ContentDispatcher getDispatcher(RenderRequest request) + protected Fragment getMaximizedLayout( RenderRequest request ) { - // Very ugly and Pluto dependant but I don't see anything better right now - ServletRequest innerRequest = ((HttpServletRequestWrapper) request).getRequest(); - ContentDispatcher dispatcher = (ContentDispatcher) innerRequest.getAttribute("org.apache.jetspeed.ContentDispatcher"); + return (Fragment) request.getAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE); + } - return dispatcher; + protected RequestContext getRequestContext( RenderRequest request ) + { + RequestContext requestContext = (RequestContext) request + .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); + if (requestContext != null) + { + return requestContext; + } + else + { + throw new IllegalStateException( + "getRequestContext() failed as it appears that now RenderRequest is available within the RenderRequest"); + } } - - /** * <p> * doEdit * </p> - * - * @see javax.portlet.GenericPortlet#doEdit(javax.portlet.RenderRequest, javax.portlet.RenderResponse) + * + * @see javax.portlet.GenericPortlet#doEdit(javax.portlet.RenderRequest, + * javax.portlet.RenderResponse) * @param request * @param response * @throws PortletException
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]