JBoss Portal SVN: r6876 - in trunk/theme/src/main/org/jboss/portal: theme and 7 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-03-30 08:16:16 -0400 (Fri, 30 Mar 2007)
New Revision: 6876
Added:
trunk/theme/src/main/org/jboss/portal/theme/page/render/
trunk/theme/src/main/org/jboss/portal/theme/page/render/DecorationRenderContextImpl.java
trunk/theme/src/main/org/jboss/portal/theme/page/render/PageRenderContextImpl.java
trunk/theme/src/main/org/jboss/portal/theme/page/render/PortletRenderContextImpl.java
trunk/theme/src/main/org/jboss/portal/theme/page/render/RegionRenderContextImpl.java
trunk/theme/src/main/org/jboss/portal/theme/page/render/WindowRenderContextImpl.java
trunk/theme/src/main/org/jboss/portal/theme/render/PageRenderContext.java
Modified:
trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java
trunk/theme/src/main/org/jboss/portal/theme/LayoutServiceInfo.java
trunk/theme/src/main/org/jboss/portal/theme/PortalLayout.java
trunk/theme/src/main/org/jboss/portal/theme/impl/LayoutServiceImpl.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/page/Region.java
trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/tag/PortletTagHandler.java
trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java
Log:
decouple RenderContex from the page object model and use the XXXRenderContext instead
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -39,6 +39,7 @@
import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.page.PageResult;
+import org.jboss.portal.theme.page.render.PageRenderContextImpl;
import org.jboss.portal.theme.render.PortalRenderSet;
import org.jboss.portal.theme.render.RenderContext;
@@ -128,7 +129,7 @@
}
// set the renderctx and req/res attr
- RenderContext renderCtx = new RenderContext(layout, markupInfo, pageResult, serverRequest);
+ RenderContext renderCtx = new RenderContext(layout, markupInfo, new PageRenderContextImpl(pageResult), serverRequest);
response.setContentType(renderCtx.getContentType().toString());
response.setCharacterEncoding(renderCtx.getCharset());
request.setAttribute(LayoutConstants.ATTR_RENDERCONTEXT, renderCtx);
Modified: trunk/theme/src/main/org/jboss/portal/theme/LayoutServiceInfo.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/LayoutServiceInfo.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/LayoutServiceInfo.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -91,5 +91,5 @@
*/
Collection getRenderSets();
- PortalRenderSet getRenderSet(LayoutInfo info, ContentInfo streamInfo, PageResult result);
+ PortalRenderSet getRenderSet(LayoutInfo info, ContentInfo streamInfo, String renderSetName);
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/PortalLayout.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/PortalLayout.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/PortalLayout.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -24,9 +24,9 @@
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.server.ServerRequest;
-import org.jboss.portal.common.util.ContentInfo;
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.theme.render.RenderContext;
+import org.jboss.portal.theme.page.render.PageRenderContextImpl;
import org.jboss.portal.theme.page.PageResult;
import javax.servlet.ServletException;
@@ -103,6 +103,6 @@
*/
public RenderContext getRenderContext(MarkupInfo markupInfo, ServerRequest request, PageResult markupResult)
{
- return new RenderContext(this, markupInfo, markupResult, request);
+ return new RenderContext(this, markupInfo, new PageRenderContextImpl(markupResult), request);
}
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/LayoutServiceImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/LayoutServiceImpl.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/LayoutServiceImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -32,8 +32,6 @@
import org.jboss.portal.theme.PortalLayout;
import org.jboss.portal.theme.RuntimeContext;
import org.jboss.portal.theme.ServerRegistrationID;
-import org.jboss.portal.theme.ThemeConstants;
-import org.jboss.portal.theme.page.PageResult;
import org.jboss.portal.theme.metadata.PortalLayoutMetaData;
import org.jboss.portal.theme.metadata.RenderSetMetaData;
import org.jboss.portal.theme.metadata.RendererSetMetaData;
@@ -155,7 +153,6 @@
}
}
- /** @see LayoutService#setDefaultLayout(String) */
public void setDefaultLayoutName(String name) throws LayoutException
{
log.debug("setting default: " + name);
@@ -412,44 +409,14 @@
* specifically for a layout, a page, or a portal. The one defined for the layout overwrites the one defined for the
* page, which in turn overwrites the one defined for the portal. The render set is defined for a specific content
* type (media type), which will be determined from the provided HttpStreamInfo.</p>
- *
- * @param info
- * @param result
- * @return a renderSet to decorate the markup fragments on the page with
*/
- public PortalRenderSet getRenderSet(LayoutInfo info, ContentInfo streamInfo, PageResult result)
+ public PortalRenderSet getRenderSet(LayoutInfo info, ContentInfo streamInfo, String renderSetName)
{
- if (info == null || result == null || streamInfo == null)
+ if (info == null || renderSetName == null || streamInfo == null)
{
- throw new IllegalArgumentException("No null arguments allowed [" + info + "] [" + result + "] [" + streamInfo + "]");
+ throw new IllegalArgumentException("No null arguments allowed [" + info + "] [" + renderSetName + "] [" + streamInfo + "]");
}
MediaType contentType = streamInfo.getContentType();
- PortalRenderSet renderSet = getRenderSetFromProperties(contentType, result.getPageProperties());
- if (renderSet == null)
- {
- renderSet = getRenderSetFromProperties(contentType, result.getPortalProperties());
- }
- return renderSet;
+ return getRenderSet(renderSetName, contentType);
}
-
- /**
- * Get the render set property from the provided properties (if one is present), and then get the render set for that
- * property and media type from the layout service.
- *
- * @param contentType
- * @param properties
- * @return the PortalRenderSet that was defined for the provided params
- */
- private PortalRenderSet getRenderSetFromProperties(MediaType contentType, Map properties)
- {
- if (properties != null)
- {
- String renderSetName = (String)properties.get(ThemeConstants.PORTAL_PROP_RENDERSET);
- if (renderSetName != null)
- {
- return getRenderSet(renderSetName, contentType);
- }
- }
- return null;
- }
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -57,18 +57,21 @@
}
else
{
- if (renderContext.getRegionId() != null)
+ if (rrc.getCSSId() != null)
{
- markup.append(" id='").append(renderContext.getRegionId()).append("'>");
+ markup.append(" id='").append(rrc.getCSSId()).append("'>");
}
}
+
//
for (Iterator i = rrc.getWindowRenderContexts().iterator(); i.hasNext();)
{
WindowRenderContext wrc = (WindowRenderContext)i.next();
renderContext.render(wrc);
}
+
+ //
markup.append("</div>");
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -23,16 +23,12 @@
package org.jboss.portal.theme.impl.render.dynamic;
-import org.jboss.logging.Logger;
import org.jboss.portal.theme.ThemeConstants;
import org.jboss.portal.theme.render.RegionRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
import org.jboss.portal.theme.render.RegionRenderContext;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* Implementation of a drag and drop Region renderer.
*
@@ -42,16 +38,13 @@
*/
public class DynaRegionRenderer implements RegionRenderer
{
- private Map portletPos = new HashMap(); //<String, Integer>
- private Map windowIds = new HashMap();
+ /** . */
+ private static final ThreadLocal enabledLocal = new ThreadLocal();
- private final static Logger log = Logger.getLogger(DynaRegionRenderer.class);
-
+ /** . */
private RegionRenderer delegate;
- private static final ThreadLocal enabledLocal = new ThreadLocal();
-
public static boolean isEnabled()
{
return Boolean.TRUE == enabledLocal.get();
@@ -65,17 +58,14 @@
}
/** @see RegionRenderer#render */
- public void render(RenderContext renderContext, RegionRenderContext rrc) throws RenderException
+ public void render(RenderContext renderContext, final RegionRenderContext rrc) throws RenderException
{
- Map pageProps = renderContext.getPageProperties();
-
-
StringBuffer markup = renderContext.getMarkupFragment();
- String jsBase = (String)pageProps.get(ThemeConstants.PORTAL_AJAX_JAVASCRIPT_BASE);
- String remoteURL = (String)pageProps.get(ThemeConstants.PORTAL_AJAX_REMOTE_URL);
+ String jsBase = renderContext.getProperty(ThemeConstants.PORTAL_AJAX_JAVASCRIPT_BASE);
+ String remoteURL = renderContext.getProperty(ThemeConstants.PORTAL_AJAX_REMOTE_URL);
//
- Object onPage = renderContext.getPageProperties().get(ThemeConstants.PORTAL_AJAX_OBJECT_ENABLED);
+ Object onPage = renderContext.getProperty(ThemeConstants.PORTAL_AJAX_OBJECT_ENABLED);
boolean pageEnabled = onPage != null && "true".equals(onPage);
//
@@ -216,9 +206,10 @@
//
if (regionEnabled)
{
+ // Keep a map of logical regions to div containers
markup.append("<script>").
append("regions_on_page[\"").
- append(renderContext.getRegionId()).
+ append(rrc.getCSSId()).
append("\"]=\"").
append(rrc.getId()).
append("\";").
@@ -237,12 +228,6 @@
{
enabledLocal.set(null);
}
-
- //
- if (portletPos.get(renderContext.getRegionId()) != null && ((Integer)portletPos.get(renderContext.getRegionId())).intValue() > 0)
- {
- portletPos.put(renderContext.getRegionId(), new Integer(0));
- }
}
/** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
@@ -256,22 +241,4 @@
{
delegate.renderEnd(ctx);
}
-
- public int getPortletNumber(String regionId)
- {
- int number = 0;
- if (portletPos.get(regionId) != null)
- {
- number = ((Integer)portletPos.get(regionId)).intValue();
- }
-
- portletPos.put(regionId, new Integer(++number));
-
- return number - 1;
- }
-
- public void setWindowId(String portletId, String windowId)
- {
- windowIds.put(portletId, windowId);
- }
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/page/Region.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/Region.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/Region.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -22,8 +22,6 @@
******************************************************************************/
package org.jboss.portal.theme.page;
-import org.jboss.portal.theme.Orientation;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -50,12 +48,6 @@
private final ArrayList windows;
/** . */
- private String cssId;
-
- /** . */
- private Orientation orientation;
-
- /** . */
private Map properties;
/**
@@ -66,27 +58,9 @@
*/
public Region(String name)
{
- this(name, null, null);
- }
-
- /**
- * Create a region with the provided properties.
- *
- * @param name the name of the region to create
- * @param cssId the id attribute value that can be used by css selectors to identify this region
- * @param orientation arrange portlet windows inside this region in this orientation
- */
- public Region(String name, String cssId, Orientation orientation)
- {
- if (name == null)
- {
- throw new NullPointerException();
- }
this.name = name;
- windows = new ArrayList();
- sorted = false;
- this.cssId = (cssId == null ? name : cssId);
- this.orientation = (orientation == null ? Orientation.DEFAULT : orientation);
+ this.windows = new ArrayList();
+ this.sorted = false;
}
public String getProperty(String name)
@@ -116,29 +90,10 @@
return name;
}
- /** @return the attribute value to use in the markup to allow a css selector to select this region */
- public String getCssId()
- {
- return cssId;
- }
-
- /** @return the orientation of this region */
- public Orientation getOrientation()
- {
- return orientation;
- }
-
/** @return if there are any portlet windows in this region */
public boolean isEmpty()
{
- if (windows == null)
- {
- return true;
- }
- else
- {
- return windows.isEmpty();
- }
+ return windows == null || windows.isEmpty();
}
/**
@@ -174,6 +129,6 @@
public String toString()
{
- return "Region: " + name + " [" + orientation + "] [" + cssId + "]";
+ return "Region[name" + name + "]";
}
}
Added: trunk/theme/src/main/org/jboss/portal/theme/page/render/DecorationRenderContextImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/render/DecorationRenderContextImpl.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/render/DecorationRenderContextImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,73 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.page.render;
+
+import org.jboss.portal.theme.render.DecorationRenderContext;
+import org.jboss.portal.theme.render.WindowRenderContext;
+
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class DecorationRenderContextImpl implements DecorationRenderContext
+{
+
+ final WindowRenderContextImpl wrc;
+
+ public DecorationRenderContextImpl(WindowRenderContextImpl wrc)
+ {
+ this.wrc = wrc;
+ }
+
+ public String getId()
+ {
+ return wrc.getId();
+ }
+
+ public String getTitle()
+ {
+ return wrc.result.getTitle();
+ }
+
+ public Collection getTriggerableActions(String familyName)
+ {
+ return wrc.result.getTriggerableActions(familyName);
+ }
+
+ public String getProperty(String name)
+ {
+ return wrc.getProperty(name);
+ }
+
+ public String getProperty(String name, int scope)
+ {
+ return getProperty(name);
+ }
+
+ public WindowRenderContext getWindow()
+ {
+ return wrc;
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/page/render/PageRenderContextImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/render/PageRenderContextImpl.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/render/PageRenderContextImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,56 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.page.render;
+
+import org.jboss.portal.theme.page.PageResult;
+import org.jboss.portal.theme.render.PageRenderContext;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PageRenderContextImpl implements PageRenderContext
+{
+
+ /** . */
+ final PageResult page;
+
+ public PageRenderContextImpl(PageResult page)
+ {
+ this.page = page;
+ }
+
+ public String getProperty(String name)
+ {
+ String s = (String)page.getPageProperties().get(name);
+
+ //
+ if (s == null)
+ {
+ s = (String)page.getPortalProperties().get(name);
+ }
+
+ //
+ return s;
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/page/render/PortletRenderContextImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/render/PortletRenderContextImpl.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/render/PortletRenderContextImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,61 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.page.render;
+
+import org.jboss.portal.theme.render.PortletRenderContext;
+import org.jboss.portal.theme.render.WindowRenderContext;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PortletRenderContextImpl implements PortletRenderContext
+{
+
+ final WindowRenderContextImpl wrc;
+
+ public PortletRenderContextImpl(WindowRenderContextImpl wrc)
+ {
+ this.wrc = wrc;
+ }
+
+ public String getMarkup()
+ {
+ return wrc.result.getContent();
+ }
+
+ public String getProperty(String name)
+ {
+ return wrc.getProperty(name);
+ }
+
+ public String getProperty(String name, int scope)
+ {
+ return getProperty(name);
+ }
+
+ public WindowRenderContext getWindow()
+ {
+ return wrc;
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/page/render/RegionRenderContextImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/render/RegionRenderContextImpl.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/render/RegionRenderContextImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,101 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.page.render;
+
+import org.jboss.portal.theme.page.Region;
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.Orientation;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.theme.render.WindowRenderContext;
+import org.jboss.portal.theme.render.PageRenderContext;
+
+import java.util.Collection;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class RegionRenderContextImpl implements RegionRenderContext
+{
+
+ final PageRenderContextImpl page;
+ final Region region;
+ final Collection wrcs;
+ final String cssId;
+ final Orientation orientation;
+
+ public RegionRenderContextImpl(PageRenderContextImpl page, Region region, String cssId, Orientation orientation)
+ {
+ this.page = page;
+ this.region = region;
+ this.cssId = cssId;
+ this.orientation = orientation;
+
+ this.wrcs = new ArrayList(region.getWindows().size());
+ for (Iterator i = region.getWindows().iterator(); i.hasNext();)
+ {
+ WindowContext wc = (WindowContext)i.next();
+ WindowResult wr = page.page.getWindowResult(wc.getId());
+ WindowRenderContext wrc = new WindowRenderContextImpl(this, wc, wr);
+ wrcs.add(wrc);
+ }
+ }
+
+ public String getId()
+ {
+ return region.getId();
+ }
+
+ public Collection getWindowRenderContexts()
+ {
+ return wrcs;
+ }
+
+ public String getProperty(String name)
+ {
+ return region.getProperty(name);
+ }
+
+ public String getProperty(String name, int scope)
+ {
+ return getProperty(name);
+ }
+
+ public PageRenderContext getPage()
+ {
+ return page;
+ }
+
+ public Orientation getOrientation()
+ {
+ return orientation;
+ }
+
+ public String getCSSId()
+ {
+ return cssId;
+ }
+}
Added: trunk/theme/src/main/org/jboss/portal/theme/page/render/WindowRenderContextImpl.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/render/WindowRenderContextImpl.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/render/WindowRenderContextImpl.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,98 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.page.render;
+
+import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.WindowResult;
+import org.jboss.portal.theme.render.WindowRenderContext;
+import org.jboss.portal.theme.render.DecorationRenderContext;
+import org.jboss.portal.theme.render.PortletRenderContext;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.Mode;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class WindowRenderContextImpl implements WindowRenderContext
+{
+
+ final RegionRenderContextImpl region;
+ final WindowContext context;
+ final WindowResult result;
+ private final DecorationRenderContextImpl drc = new DecorationRenderContextImpl(this);
+ private final PortletRenderContextImpl prc = new PortletRenderContextImpl(this);
+
+ public WindowRenderContextImpl(RegionRenderContextImpl region, WindowContext context, WindowResult result)
+ {
+ this.region = region;
+ this.context = context;
+ this.result = result;
+ }
+
+ public String getId()
+ {
+ return context.getId().toString();
+ }
+
+ public int getOrder()
+ {
+ return context.getOrder();
+ }
+
+ public WindowState getWindowState()
+ {
+ return result.getWindowState();
+ }
+
+ public Mode getMode()
+ {
+ return result.getMode();
+ }
+
+ public DecorationRenderContext getDecoration()
+ {
+ return drc;
+ }
+
+ public PortletRenderContext getPortlet()
+ {
+ return prc;
+ }
+
+ public String getProperty(String name)
+ {
+ return (String)result.getWindowProperties().get(name);
+ }
+
+ public String getProperty(String name, int scope)
+ {
+ return getProperty(name);
+ }
+
+ public RegionRenderContext getRegion()
+ {
+ return region;
+ }
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -36,5 +36,4 @@
String getTitle();
Collection getTriggerableActions(String familyName);
-
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/PageRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/PageRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/PageRenderContext.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -0,0 +1,31 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface PageRenderContext extends ObjectRenderContext
+{
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -22,6 +22,8 @@
******************************************************************************/
package org.jboss.portal.theme.render;
+import org.jboss.portal.theme.Orientation;
+
import java.util.Collection;
/**
@@ -35,4 +37,7 @@
Collection getWindowRenderContexts();
+ Orientation getOrientation();
+
+ String getCSSId();
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -28,19 +28,9 @@
import org.jboss.portal.theme.LayoutInfo;
import org.jboss.portal.theme.PortalLayout;
import org.jboss.portal.theme.ThemeConstants;
-import org.jboss.portal.theme.Orientation;
-import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.page.PageResult;
-import org.jboss.portal.WindowState;
-import org.jboss.portal.Mode;
import java.util.List;
import java.util.Locale;
-import java.util.Map;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.ArrayList;
/**
@@ -54,48 +44,55 @@
public final class RenderContext
{
+ /** . */
private PortalRenderSet renderSet;
+
+ /** . */
private ServerRequest request;
- private PageResult pageResult;
- private PortalLayout layout;
- private String regionCssId;
- private Orientation orientation;
+ /** . */
+ private PageRenderContext pageRenderContext;
+ /** . */
+ private PortalLayout layout;
+
+ /** . */
private StringBuffer markup;
- private Object fragment;
+
+ /** . */
+ private ObjectRenderContext targetRenderContext;
+
+ /** . */
private MarkupInfo markupInfo;
+ /** . */
+ private ArrayList stack;
+
// initialize
- private void init(PortalLayout layout, Object fragment, MarkupInfo markupInfo, PageResult result, ServerRequest request)
+ private void init(PortalLayout layout, ObjectRenderContext fragment, MarkupInfo markupInfo, PageRenderContext pageRenderContext, ServerRequest request)
{
- this.renderSet = layout.getServiceInfo().getRenderSet(layout.getLayoutInfo(), markupInfo, result);
+ String renderSetName = pageRenderContext.getProperty(ThemeConstants.PORTAL_PROP_RENDERSET);
+ PortalRenderSet renderSet = layout.getServiceInfo().getRenderSet(layout.getLayoutInfo(), markupInfo, renderSetName);
if (renderSet == null)
{
throw new IllegalStateException("No RenderSet determined");
}
- markup = new StringBuffer();
-
+ //
+ this.renderSet = renderSet;
this.layout = layout;
- this.pageResult = result;
+ this.pageRenderContext = pageRenderContext;
this.request = request;
- this.fragment = fragment;
+ this.targetRenderContext = fragment;
this.markupInfo = markupInfo;
+ this.stack = new ArrayList(6);
+ this.markup = new StringBuffer();
- if (fragment != null && fragment instanceof Region)
- {
- orientation = ((Region)fragment).getOrientation();
- regionCssId = ((Region)fragment).getCssId();
- }
- else
- {
- orientation = null;
- regionCssId = null;
- }
+ //
+ stack.add(pageRenderContext);
}
- private RenderContext(PortalLayout layout, Object markupContainer, MarkupInfo streamInfo, PageResult result, ServerRequest request)
+ private RenderContext(PortalLayout layout, ObjectRenderContext markupContainer, MarkupInfo streamInfo, PageRenderContext result, ServerRequest request)
{
init(layout, markupContainer, streamInfo, result, request);
}
@@ -109,7 +106,7 @@
* @param result the rendered result(s) from the portlet container (PageResult, RegionResult, WindowResult)
* @param request the current server request
*/
- public RenderContext(PortalLayout layout, MarkupInfo markupInfo, PageResult result, ServerRequest request)
+ public RenderContext(PortalLayout layout, MarkupInfo markupInfo, PageRenderContext result, ServerRequest request)
{
if (layout == null)
{
@@ -133,27 +130,12 @@
}
/**
- * copy constructor. <p>Get a render context for a region, based on the state of this render context, but with the
+ * Copy constructor. <p>Get a render context for a region, based on the state of this render context, but with the
* provided css id and orientation (which overwrite the values in the provided region)</p>
- *
- * @param region the region to get the render context for
- * @param cssId the id attribute value to generate for this region (needs to be unique in the page for the css
- * to be able to select this region to style)
- * @param orientation the orintation of multiple windows in this region (arranged horizontally or vertically)
- * @return a new render context for the provided region
*/
- public RenderContext getContext(Region region, String cssId, Orientation orientation)
+ public RenderContext getContext(RegionRenderContext region)
{
- RenderContext context = new RenderContext(this.layout, region, this.markupInfo, this.pageResult, this.request);
- if (cssId != null)
- {
- context.regionCssId = cssId;
- }
- if (orientation != null)
- {
- context.orientation = orientation;
- }
- return context;
+ return new RenderContext(this.layout, region, this.markupInfo, this.pageRenderContext, this.request);
}
/**
@@ -163,9 +145,9 @@
* @param windowContext the window (context) to get the render context for
* @return a render context that can render the markup for the provided window context
*/
- public RenderContext getContext(WindowContext windowContext)
+ public RenderContext getContext(WindowRenderContext windowContext)
{
- return new RenderContext(layout, windowContext, markupInfo, pageResult, request);
+ return new RenderContext(layout, windowContext, markupInfo, pageRenderContext, request);
}
/** @return a markup fragment */
@@ -186,12 +168,6 @@
return markupInfo.getCharset();
}
- /** @return the region orientation */
- public Orientation getRegionOrientation()
- {
- return orientation;
- }
-
/** @return metadata about the layout used for this render context */
public LayoutInfo getLayoutInfo()
{
@@ -243,32 +219,51 @@
* name for the window renderer to use
* @return a window renderer
*/
- public WindowRenderer getWindowRenderer(WindowResult result)
+ public WindowRenderer getWindowRenderer(WindowRenderContext result)
{
String renderSetName = null;
if (result != null)
{
- renderSetName = (String)result.getWindowProperties().get(ThemeConstants.PORTAL_PROP_WINDOW_RENDERER);
+ renderSetName = result.getProperty(ThemeConstants.PORTAL_PROP_WINDOW_RENDERER);
}
+ //
if (result != null && renderSetName == null)
{
- renderSetName = (String)pageResult.getPageProperties().get(ThemeConstants.PORTAL_PROP_WINDOW_RENDERER);
+ renderSetName = getProperty(ThemeConstants.PORTAL_PROP_WINDOW_RENDERER);
}
+ //
if (renderSetName != null)
{
PortalRenderSet renderSet = layout.getServiceInfo().getRenderSet(renderSetName, markupInfo.getContentType());
+ //
if (renderSet != null)
{
return renderSet.getWindowRenderer();
}
}
+ //
return getWindowRenderer();
}
+ public String getProperty(String propertyName)
+ {
+ for (int i = stack.size() - 1;i >= 0;i--)
+ {
+ ObjectRenderContext ctx = (ObjectRenderContext)stack.get(i);
+ String propertyValue = ctx.getProperty(propertyName);
+ if (propertyValue != null)
+ {
+ return propertyValue;
+ }
+ }
+ return null;
+ }
+
+
/** @return a decoration renderer from the determined render set */
public DecorationRenderer getDecorationRenderer()
{
@@ -284,30 +279,34 @@
* name for the decoration renderer to use
* @return a decoration renderer
*/
- public DecorationRenderer getDecorationRenderer(WindowResult result)
+ public DecorationRenderer getDecorationRenderer(DecorationRenderContext result)
{
String renderSetName = null;
if (result != null)
{
- renderSetName = (String)result.getWindowProperties().get(ThemeConstants.PORTAL_PROP_DECORATION_RENDERER);
+ renderSetName = result.getProperty(ThemeConstants.PORTAL_PROP_DECORATION_RENDERER);
}
+ //
if (result != null && renderSetName == null)
{
- renderSetName = (String)pageResult.getPageProperties().get(ThemeConstants.PORTAL_PROP_DECORATION_RENDERER);
+ renderSetName = getProperty(ThemeConstants.PORTAL_PROP_DECORATION_RENDERER);
}
+ //
if (renderSetName != null)
{
PortalRenderSet renderSet = layout.getServiceInfo().getRenderSet(renderSetName, markupInfo.getContentType());
+ //
if (renderSet != null)
{
return renderSet.getDecorationRenderer();
}
}
+ //
return getDecorationRenderer();
}
@@ -330,74 +329,44 @@
* portlet renderer from
* @return a portlet renderer
*/
- public PortletRenderer getPortletRenderer(WindowResult result)
+ public PortletRenderer getPortletRenderer(PortletRenderContext result)
{
String renderSetName = null;
+ //
if (result != null)
{
- renderSetName = (String)result.getWindowProperties().get(ThemeConstants.PORTAL_PROP_PORTLET_RENDERER);
+ renderSetName = result.getProperty(ThemeConstants.PORTAL_PROP_PORTLET_RENDERER);
}
+ //
if (result != null && renderSetName == null)
{
- renderSetName = (String)pageResult.getPageProperties().get(ThemeConstants.PORTAL_PROP_PORTLET_RENDERER);
+ renderSetName = getProperty(ThemeConstants.PORTAL_PROP_PORTLET_RENDERER);
}
+ //
if (renderSetName != null)
{
PortalRenderSet renderSet = layout.getServiceInfo().getRenderSet(renderSetName, markupInfo.getContentType());
+ //
if (renderSet != null)
{
return renderSet.getPortletRenderer();
}
}
+ //
return getPortletRenderer();
}
- /** @return the region CSS id */
- public String getRegionId()
- {
- return regionCssId;
- }
-
- /** @return the page properties */
- public Map getPageProperties()
- {
- return pageResult.getPageProperties();
- }
-
/** @return the names of all the regions as defined in the layout */
public List getLayoutRegionNames()
{
return layout.getLayoutInfo().getRegionNames();
}
- /**
- * Get the proerty value that matches the property with the provided key in the provided window properties
- *
- * @param result the window result containing the window properties to introspect
- * @param key the property key
- * @return a property value or null if the property is not present
- */
- public String getProperty(WindowResult result, String key)
- {
- String value = null;
- if (result != null)
- {
- value = (String)result.getWindowProperties().get(key);
- }
-
- if (result != null && value == null)
- {
- value = (String)pageResult.getPageProperties().get(key);
- }
-
- return value;
- }
-
public Locale getLocale()
{
return request.getLocale();
@@ -418,61 +387,48 @@
*/
public void render() throws RenderException
{
- if (fragment != null)
+ render(targetRenderContext);
+ }
+
+
+ public void render(ObjectRenderContext ctx) throws RenderException
+ {
+ stack.add(ctx);
+
+ //
+ try
{
- if (fragment instanceof WindowContext)
+ if (ctx instanceof WindowRenderContext)
{
- WindowContext wc = (WindowContext)fragment;
- WindowResult windowResult = pageResult.getWindowResult(wc.getId());
- WindowRenderContext wrc = new WindowRenderContextImpl(wc, windowResult);
- render(wrc);
+ WindowRenderContext wrc = (WindowRenderContext)ctx;
+ WindowRenderer renderer = getWindowRenderer(wrc);
+ renderer.render(this, wrc);
}
- else if (fragment instanceof Region)
+ else if (ctx instanceof RegionRenderContext)
{
- RegionRenderContext rrc = new RegionRenderContextImpl(pageResult, (Region)fragment);
- render(rrc);
+ RegionRenderContext rrc = (RegionRenderContext)ctx;
+ RegionRenderer renderer = getRegionRenderer();
+ renderer.render(this, rrc);
}
- else
+ else if (ctx instanceof PortletRenderContext)
{
- throw new UnsupportedOperationException("Markup fragment of unknown type: " + fragment);
+ PortletRenderContext prc = (PortletRenderContext)ctx;
+ PortletRenderer renderer = getPortletRenderer(prc);
+ renderer.render(this, prc);
}
+ else if (ctx instanceof DecorationRenderContext)
+ {
+ DecorationRenderContext drc = (DecorationRenderContext)ctx;
+ DecorationRenderer renderer = getDecorationRenderer(drc);
+ renderer.render(this, drc);
+ }
}
- else
+ finally
{
- // for full page rendering the fragment is set to null!
- throw new IllegalStateException("This context can only render page fragments, not the entire page");
+ stack.remove(stack.size() - 1);
}
}
-
- public void render(ObjectRenderContext ctx) throws RenderException
- {
- if (ctx instanceof WindowRenderContext)
- {
- WindowRenderContextImpl wrc = (WindowRenderContextImpl)ctx;
- WindowRenderer renderer = getWindowRenderer(wrc.result);
- renderer.render(this, wrc);
- }
- else if (ctx instanceof RegionRenderContext)
- {
- RegionRenderContext rrc = (RegionRenderContext)ctx;
- RegionRenderer renderer = getRegionRenderer();
- renderer.render(this, rrc);
- }
- else if (ctx instanceof PortletRenderContext)
- {
- PortletRenderContextImpl prc = (PortletRenderContextImpl)ctx;
- PortletRenderer renderer = getPortletRenderer(prc.wrc.result);
- renderer.render(this, prc);
- }
- else if (ctx instanceof DecorationRenderContext)
- {
- DecorationRenderContextImpl drc = (DecorationRenderContextImpl)ctx;
- DecorationRenderer renderer = getDecorationRenderer(drc.wrc.result);
- renderer.render(this, drc);
- }
- }
-
public ServerRequest getRequest()
{
return request;
@@ -482,143 +438,4 @@
{
this.request = request;
}
-
- private static class RegionRenderContextImpl implements RegionRenderContext
- {
-
- private final Region region;
- private final Collection wrcs;
-
- public RegionRenderContextImpl(PageResult page, Region region)
- {
- this.region = region;
-
- this.wrcs = new ArrayList(region.getWindows().size());
- for (Iterator i = region.getWindows().iterator();i.hasNext();)
- {
- WindowContext wc = (WindowContext)i.next();
- WindowResult wr = page.getWindowResult(wc.getId());
- WindowRenderContext wrc = new WindowRenderContextImpl(wc, wr);
- wrcs.add(wrc);
- }
- }
-
- public String getId()
- {
- return region.getId();
- }
-
- public Collection getWindowRenderContexts()
- {
- return wrcs;
- }
-
- public String getProperty(String name)
- {
- return region.getProperty(name);
- }
- }
-
- private static class WindowRenderContextImpl implements WindowRenderContext
- {
-
- private final WindowContext context;
- private final WindowResult result;
- private final DecorationRenderContextImpl drc = new DecorationRenderContextImpl(this);
- private final PortletRenderContextImpl prc = new PortletRenderContextImpl(this);
-
- public WindowRenderContextImpl(WindowContext context, WindowResult result)
- {
- this.context = context;
- this.result = result;
- }
-
- public String getId()
- {
- return context.getId().toString();
- }
-
- public int getOrder()
- {
- return context.getOrder();
- }
-
- public WindowState getWindowState()
- {
- return result.getWindowState();
- }
-
- public Mode getMode()
- {
- return result.getMode();
- }
-
- public DecorationRenderContext getDecoration()
- {
- return drc;
- }
-
- public PortletRenderContext getPortlet()
- {
- return prc;
- }
-
- public String getProperty(String name)
- {
- return (String)result.getWindowProperties().get(name);
- }
- }
-
- private static class DecorationRenderContextImpl implements DecorationRenderContext
- {
-
- final WindowRenderContextImpl wrc;
-
- public DecorationRenderContextImpl(WindowRenderContextImpl wrc)
- {
- this.wrc = wrc;
- }
-
- public String getId()
- {
- return wrc.getId();
- }
-
- public String getTitle()
- {
- return wrc.result.getTitle();
- }
-
- public Collection getTriggerableActions(String familyName)
- {
- return wrc.result.getTriggerableActions(familyName);
- }
-
- public String getProperty(String name)
- {
- return wrc.getProperty(name);
- }
- }
-
- private static class PortletRenderContextImpl implements PortletRenderContext
- {
-
- final WindowRenderContextImpl wrc;
-
- public PortletRenderContextImpl(WindowRenderContextImpl wrc)
- {
- this.wrc = wrc;
- }
-
- public String getMarkup()
- {
- return wrc.result.getContent();
- }
-
- public String getProperty(String name)
- {
- return wrc.getProperty(name);
- }
- }
-
}
\ No newline at end of file
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -44,4 +44,6 @@
PortletRenderContext getPortlet();
+ RegionRenderContext getRegion();
+
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/tag/PortletTagHandler.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/tag/PortletTagHandler.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/tag/PortletTagHandler.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -26,8 +26,13 @@
import org.jboss.portal.theme.LayoutConstants;
import org.jboss.portal.theme.page.PageResult;
import org.jboss.portal.theme.page.WindowContext;
+import org.jboss.portal.theme.page.Region;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.page.render.PageRenderContextImpl;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.theme.page.render.RegionRenderContextImpl;
+import org.jboss.portal.theme.render.WindowRenderContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
@@ -131,19 +136,28 @@
}
WindowContext windowContext = page.getWindowContext(windowID);
- RenderContext renderContext = (RenderContext) request
- .getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
+ RenderContext renderContext = (RenderContext)request.getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
- renderContext = renderContext.getContext(windowContext);
-
- try {
- renderContext.render();
- out.write(renderContext.getMarkupFragment().toString());
- out.flush();
- } catch (RenderException e) {
- throw new JspException(e);
+ PageRenderContextImpl prc = new PageRenderContextImpl(page);
+ String regionName = windowContext.getRegionName();
+ Region region = page.getRegion(regionName);
+ RegionRenderContext rrc = new RegionRenderContextImpl(prc, region, null, null);
+ for (Iterator i = rrc.getWindowRenderContexts().iterator();i.hasNext();)
+ {
+ WindowRenderContext wrc = (WindowRenderContext)i.next();
+ if (wrc.getId().equals(windowContext.getId()))
+ {
+ try {
+ renderContext.render(wrc);
+ out.write(renderContext.getMarkupFragment().toString());
+ out.flush();
+ } catch (RenderException e) {
+ throw new JspException(e);
+ }
+ break;
+ }
}
- }
+ }
public String getWindowName()
{
Modified: trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java 2007-03-29 23:49:25 UTC (rev 6875)
+++ trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java 2007-03-30 12:16:16 UTC (rev 6876)
@@ -27,8 +27,12 @@
import org.jboss.portal.theme.Orientation;
import org.jboss.portal.theme.page.PageResult;
import org.jboss.portal.theme.page.Region;
+import org.jboss.portal.theme.page.render.PageRenderContextImpl;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.theme.page.render.RegionRenderContextImpl;
+import org.jboss.portal.theme.render.PageRenderContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
@@ -36,6 +40,8 @@
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
/**
* Tag handler for the region tag. <p>A region represents a subsection of a portal page. A region can host several
@@ -52,7 +58,8 @@
{
private static Logger log = Logger.getLogger(RegionTagHandler.class);
//default to vertical
- private Orientation orientation = Orientation.DEFAULT;
+
+ private Orientation regionOrientation;
private String regionName = null;
private String regionCssId = null;
@@ -68,7 +75,7 @@
{
regionCssId = regionName;
}
- log.debug("rendering " + regionName + " [" + orientation + "] cssId[" + regionCssId + "]");
+ log.debug("rendering " + regionName + " [" + regionOrientation + "] cssId[" + regionCssId + "]");
// get page and region
PageContext app = (PageContext)getJspContext();
@@ -84,15 +91,45 @@
out.flush();
return;
}
+
+ final String cssId = regionCssId == null ? regionName : regionCssId;
+ final Orientation orientation = this.regionOrientation == null ? Orientation.DEFAULT : this.regionOrientation;
+
if (page.getRegion(regionName) == null) // non-window display of content
{
- // create a new region obj, based on region name
- Region newRegion = new Region(regionName, regionCssId, Orientation.DEFAULT);
+ // Create a dummy region obj, based on region name
+ RegionRenderContext rrc = new RegionRenderContext()
+ {
+ public String getId()
+ {
+ return regionName;
+ }
+ public Collection getWindowRenderContexts()
+ {
+ return Collections.EMPTY_LIST;
+ }
+ public PageRenderContext getPage()
+ {
+ return null;
+ }
+ public Orientation getOrientation()
+ {
+ return orientation;
+ }
+ public String getCSSId()
+ {
+ return cssId;
+ }
+ public String getProperty(String name)
+ {
+ return null;
+ }
+ };
+
RenderContext renderContext = (RenderContext)request.getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
- renderContext = renderContext.getContext(newRegion, regionCssId, orientation);
try
{
- renderContext.render();
+ renderContext.render(rrc);
out.write(renderContext.getMarkupFragment().toString());
out.flush();
}
@@ -100,31 +137,41 @@
{
throw new JspException(e);
}
- return;
+ finally
+ {
+ renderContext.getMarkupFragment().setLength(0);
+ }
}
-
- // window-centric display of content
- RenderContext renderContext = (RenderContext)request.getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
- if (renderContext == null)
+ else
{
- log.debug("no render context available in request");
- return;
- }
+ // window-centric display of content
+ RenderContext renderContext = (RenderContext)request.getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
+ if (renderContext == null)
+ {
+ log.debug("no render context available in request");
+ return;
+ }
- Region region = page.getRegion(regionName);
- renderContext = renderContext.getContext(region, regionCssId, orientation);
- try
- {
- renderContext.render();
- out.write(renderContext.getMarkupFragment().toString());
- out.flush();
+ Region region = page.getRegion(regionName);
+ PageRenderContextImpl prc = new PageRenderContextImpl(page);
+ RegionRenderContext rrc = new RegionRenderContextImpl(prc, region, cssId, orientation);
+ try
+ {
+ renderContext.render(rrc);
+ out.write(renderContext.getMarkupFragment().toString());
+ out.flush();
+ }
+ catch (RenderException e)
+ {
+ throw new JspException(e);
+ }
+ finally
+ {
+ renderContext.getMarkupFragment().setLength(0);
+ }
+
+ log.debug("done rendering page region [" + regionName + "]");
}
- catch (RenderException e)
- {
- throw new JspException(e);
- }
-
- log.debug("done rendering page region [" + regionName + "]");
}
// ------ attribute handlers
@@ -143,12 +190,12 @@
try
{
- this.orientation = Orientation.parse(orientation);
+ this.regionOrientation = Orientation.parse(orientation);
}
catch (IllegalArgumentException e)
{
log.error(e);
- this.orientation = Orientation.DEFAULT;
+ this.regionOrientation = Orientation.DEFAULT;
}
}
17 years, 3 months
JBoss Portal SVN: r6875 - in trunk/wsrp/src/main/org/jboss/portal: test/wsrp/other and 1 other directories.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-03-29 19:49:25 -0400 (Thu, 29 Mar 2007)
New Revision: 6875
Added:
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BehaviorBackedServiceFactory.java
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/other/ProducerInfoTestCase.java
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
Log:
- Fixed a bug in ProducerInfo where cache would always be bypassed if no POPs where offered.
- Started adding tests for ProducerInfo.
Added: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BehaviorBackedServiceFactory.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BehaviorBackedServiceFactory.java (rev 0)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BehaviorBackedServiceFactory.java 2007-03-29 23:49:25 UTC (rev 6875)
@@ -0,0 +1,149 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2007, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+
+package org.jboss.portal.test.wsrp.framework.support;
+
+import org.jboss.portal.common.NotYetImplemented;
+import org.jboss.portal.test.wsrp.framework.BehaviorRegistry;
+import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType;
+import org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType;
+import org.jboss.portal.wsrp.core.WSRP_v1_Registration_PortType;
+import org.jboss.portal.wsrp.core.WSRP_v1_ServiceDescription_PortType;
+import org.jboss.portal.wsrp.services.ServiceFactory;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.6
+ */
+public class BehaviorBackedServiceFactory implements ServiceFactory
+{
+ private BehaviorRegistry registry;
+ private final static String MARKUP = "markup";
+ private final static String SD_URL = "sd";
+ private final static String M_URL = "m";
+ private final static String PM_URL = "pm";
+ private final static String R_URL = "r";
+
+
+ public BehaviorBackedServiceFactory()
+ {
+ registry = new BehaviorRegistry();
+ }
+
+ public Object getService(Class clazz) throws Exception
+ {
+ if (WSRP_v1_ServiceDescription_PortType.class.isAssignableFrom(clazz))
+ {
+ return registry.getServiceDescriptionBehavior();
+ }
+ if (WSRP_v1_Markup_PortType.class.isAssignableFrom(clazz))
+ {
+ return registry.getMarkupBehaviorFor(MARKUP);
+ }
+ if (WSRP_v1_PortletManagement_PortType.class.isAssignableFrom(clazz))
+ {
+ return registry.getPortletManagementBehavior();
+ }
+ if (WSRP_v1_Registration_PortType.class.isAssignableFrom(clazz))
+ {
+ return registry.getRegistrationBehavior();
+ }
+ return null;
+ }
+
+ public BehaviorRegistry getRegistry()
+ {
+ return registry;
+ }
+
+ public void setRegistry(BehaviorRegistry registry)
+ {
+ this.registry = registry;
+ }
+
+ public boolean isAvailable()
+ {
+ return true;
+ }
+
+ public String getServiceDescriptionURL()
+ {
+ return SD_URL;
+ }
+
+ public String getMarkupURL()
+ {
+ return M_URL;
+ }
+
+ public String getRegistrationURL()
+ {
+ return R_URL;
+ }
+
+ public String getPortletManagementURL()
+ {
+ return PM_URL;
+ }
+
+ public void setServiceDescriptionURL(String serviceDescriptionURL)
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void setMarkupURL(String markupURL)
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void setRegistrationURL(String registrationURL)
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void setPortletManagementURL(String portletManagementURL)
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void create() throws Exception
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void start() throws Exception
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void stop()
+ {
+ throw new NotYetImplemented();
+ }
+
+ public void destroy()
+ {
+ throw new NotYetImplemented();
+ }
+}
Property changes on: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/framework/support/BehaviorBackedServiceFactory.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/other/ProducerInfoTestCase.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/other/ProducerInfoTestCase.java (rev 0)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/other/ProducerInfoTestCase.java 2007-03-29 23:49:25 UTC (rev 6875)
@@ -0,0 +1,71 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2007, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+
+package org.jboss.portal.test.wsrp.other;
+
+import junit.framework.TestCase;
+import org.jboss.portal.test.wsrp.framework.ServiceDescriptionBehavior;
+import org.jboss.portal.test.wsrp.framework.support.BehaviorBackedServiceFactory;
+import org.jboss.portal.test.wsrp.framework.support.MockConsumerRegistry;
+import org.jboss.portal.wsrp.consumer.EndpointConfigurationInfo;
+import org.jboss.portal.wsrp.consumer.ProducerInfo;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.6
+ */
+public class ProducerInfoTestCase extends TestCase
+{
+ private ProducerInfo info;
+ private BehaviorBackedServiceFactory serviceFactory;
+
+
+ protected void setUp() throws Exception
+ {
+ info = new ProducerInfo();
+ info.setId("test");
+ serviceFactory = new BehaviorBackedServiceFactory();
+ new EndpointConfigurationInfo(info, serviceFactory);
+ info.setRegistry(new MockConsumerRegistry());
+ }
+
+ public void testRefreshAndCache() throws Exception
+ {
+ serviceFactory.getRegistry().setServiceDescriptionBehavior(new ServiceDescriptionBehavior());
+
+ assertNull(info.getExpirationCacheSeconds());
+
+ assertTrue(info.refresh(false));
+ assertTrue(info.refresh(false));
+
+ info.setExpirationCacheSeconds(new Integer(1));
+ assertEquals(new Integer(1), info.getExpirationCacheSeconds());
+ assertTrue(info.refresh(false));
+ assertFalse(info.refresh(false));
+
+ // wait for cache expiration
+ Thread.sleep(1500);
+ assertTrue(info.refresh(false));
+ }
+}
Property changes on: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/other/ProducerInfoTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-03-29 21:31:50 UTC (rev 6874)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-03-29 23:49:25 UTC (rev 6875)
@@ -146,7 +146,6 @@
return persistentEndpointInfo;
}
-
void setEndpointConfigurationInfo(EndpointConfigurationInfo endpointConfigurationInfo)
{
this.persistentEndpointInfo = endpointConfigurationInfo;
@@ -221,8 +220,7 @@
return justRefreshed;
}
- private boolean internalRefresh(boolean forceRefresh)
- throws PortletInvokerException
+ private boolean internalRefresh(boolean forceRefresh) throws PortletInvokerException
{
ServiceDescription serviceDescription;
// might neeed a different cache value: right now, we cache the whole producer info but we might want to cache
@@ -308,6 +306,7 @@
else
{
popsMap = Collections.EMPTY_MAP;
+ portletGroups = Collections.EMPTY_MAP;
}
//todo: could extract more information here... and rename method more appropriately
17 years, 3 months
JBoss Portal SVN: r6874 - trunk/wsrp/src/resources/portal-wsrp-sar.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-03-29 17:31:50 -0400 (Thu, 29 Mar 2007)
New Revision: 6874
Modified:
trunk/wsrp/src/resources/portal-wsrp-sar/wsrp-aop.xml
Log:
- destroyConsumer should also use a transaction.
Modified: trunk/wsrp/src/resources/portal-wsrp-sar/wsrp-aop.xml
===================================================================
--- trunk/wsrp/src/resources/portal-wsrp-sar/wsrp-aop.xml 2007-03-29 21:31:22 UTC (rev 6873)
+++ trunk/wsrp/src/resources/portal-wsrp-sar/wsrp-aop.xml 2007-03-29 21:31:50 UTC (rev 6874)
@@ -38,6 +38,9 @@
<method name="createConsumer">
<trans-attribute>Required</trans-attribute>
</method>
+ <method name="destroyConsumer">
+ <trans-attribute>Required</trans-attribute>
+ </method>
</metadata>
<!-- TRANSACTIONS -->
17 years, 3 months
JBoss Portal SVN: r6873 - trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-03-29 17:31:22 -0400 (Thu, 29 Mar 2007)
New Revision: 6873
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
Log:
- Use register method in internalRefresh.
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-03-29 20:04:41 UTC (rev 6872)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-03-29 21:31:22 UTC (rev 6873)
@@ -232,65 +232,22 @@
log.debug("ProducerInfo refresh needed for producer '" + persistentId + "'");
serviceDescription = getServiceDescription();
- // todo: use register() here!
-
// do we need to call initCookie or not?
requiresInitCookie = serviceDescription.getRequiresInitCookie();
// do we need to register?
if (serviceDescription.isRequiresRegistration())
{
- // only process service description if consumer is not already registered
- if (!persistentRegistrationInfo.isRegistrationValid())
+ // attempt to register and determine if the current service description can be used to extract POPs
+ if (register(serviceDescription))
{
- // if this producer info was set up without any registration information, create one
- if (registry.getDefaultRegistrationInfo().equals(persistentRegistrationInfo))
- {
- persistentRegistrationInfo = new RegistrationInfo(this);
- }
-
- // check if the configured registration information is correct and if we can get the service description
- if (persistentRegistrationInfo.initialize(serviceDescription, getId()))
- {
- try
- {
- log.debug("Attempting registration");
- RegistrationContext registrationContext = persistentEndpointInfo.getRegistrationService()
- .register(persistentRegistrationInfo.getRegistrationData());
-
- if (registrationContext == null)
- {
- setActive(false);
- throw new PortletInvokerException("Received null response after registration from producer '" + persistentId + "'");
- }
-
- persistentRegistrationInfo.setRegistrationContext(registrationContext);
- log.info("Successfully registered with handle: '" + registrationContext.getRegistrationHandle() + "'");
- }
- catch (Exception e)
- {
- persistentRegistrationInfo.resetRegistration();
- setActive(false);
- throw new PortletInvokerException("Couldn't register with producer '" + persistentId + "'", e);
- }
-
- log.debug("Requesting service description after registration");
- extractOfferedPortlets(getServiceDescription());
- return true;
- }
- else
- {
- log.info("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
- setActive(false);
- throw new PortletInvokerException("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
- }
+ // registration occurred, so we should ask for a new service description
+ serviceDescription = getServiceDescription();
}
- else
- {
- // registration is valid: just refresh the offered portlets
- extractOfferedPortlets(serviceDescription);
- return true;
- }
+
+ // extract the POPs
+ extractOfferedPortlets(serviceDescription);
+ return true;
}
else
{
@@ -625,7 +582,16 @@
registry.updateProducerInfo(this);
}
- private void register(ServiceDescription serviceDescription) throws PortletInvokerException
+ /**
+ * Attempts to register with the producer.
+ *
+ * @param serviceDescription
+ * @return <code>true</code> if the client code should ask for a new service description, <code>false</code> if the
+ * specified description is good to be further processed
+ * @throws PortletInvokerException
+ * @since 2.6
+ */
+ private boolean register(ServiceDescription serviceDescription) throws PortletInvokerException
{
if (persistentRegistrationInfo == null)
{
@@ -640,38 +606,44 @@
serviceDescription = getServiceDescription();
}
- // check if the configured registration information is correct and if we can get the service description
- if (persistentRegistrationInfo.initialize(serviceDescription, getId()))
+ if (serviceDescription.isRequiresRegistration())
{
- try
+ // check if the configured registration information is correct and if we can get the service description
+ if (persistentRegistrationInfo.initialize(serviceDescription, getId()))
{
- log.debug("Attempting registration");
- RegistrationContext registrationContext = persistentEndpointInfo.getRegistrationService()
- .register(persistentRegistrationInfo.getRegistrationData());
+ try
+ {
+ log.debug("Attempting registration");
+ RegistrationContext registrationContext = persistentEndpointInfo.getRegistrationService()
+ .register(persistentRegistrationInfo.getRegistrationData());
- if (registrationContext == null)
+ if (registrationContext == null)
+ {
+ setActive(false);
+ throw new PortletInvokerException("Received null response after registration from producer '" + persistentId + "'");
+ }
+
+ persistentRegistrationInfo.setRegistrationContext(registrationContext);
+ log.info("Successfully registered with handle: '" + registrationContext.getRegistrationHandle() + "'");
+ return true;
+ }
+ catch (Exception e)
{
+ persistentRegistrationInfo.resetRegistration();
setActive(false);
- throw new PortletInvokerException("Received null response after registration from producer '" + persistentId + "'");
+ throw new PortletInvokerException("Couldn't register with producer '" + persistentId + "'", e);
}
-
- persistentRegistrationInfo.setRegistrationContext(registrationContext);
- log.info("Successfully registered with handle: '" + registrationContext.getRegistrationHandle() + "'");
}
- catch (Exception e)
+ else
{
- persistentRegistrationInfo.resetRegistration();
+ log.info("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
setActive(false);
- throw new PortletInvokerException("Couldn't register with producer '" + persistentId + "'", e);
+ throw new PortletInvokerException("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
}
}
- else
- {
- log.info("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
- setActive(false);
- throw new PortletInvokerException("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
- }
}
+
+ return false;
}
public void deregister() throws PortletInvokerException
17 years, 3 months
JBoss Portal SVN: r6872 - in trunk/theme/src/main/org/jboss/portal/theme: page and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-03-29 16:04:41 -0400 (Thu, 29 Mar 2007)
New Revision: 6872
Added:
trunk/theme/src/main/org/jboss/portal/theme/Orientation.java
Removed:
trunk/theme/src/main/org/jboss/portal/theme/page/RegionOrientation.java
Modified:
trunk/theme/src/main/org/jboss/portal/theme/page/Region.java
trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java
Log:
made RegionOrientation class independant of the region concept as it is just an orientation.
Copied: trunk/theme/src/main/org/jboss/portal/theme/Orientation.java (from rev 6867, trunk/theme/src/main/org/jboss/portal/theme/page/RegionOrientation.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/Orientation.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/Orientation.java 2007-03-29 20:04:41 UTC (rev 6872)
@@ -0,0 +1,103 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme;
+
+/**
+ * Type safe enumeration of allowed orientations.
+ *
+ * @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ */
+public final class Orientation
+{
+
+ /** Vertical. */
+ public static final Orientation VERTICAL = new Orientation("vertical");
+
+ /** Horizontal. */
+ public static final Orientation HORIZONTAL = new Orientation("horizontal");
+
+ /** The default value which is vertical. */
+ public static final Orientation DEFAULT = VERTICAL;
+
+ /** The literal value. */
+ private final String value;
+
+ private Orientation(String value)
+ {
+ if (value == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ this.value = value;
+ }
+
+ public String toString()
+ {
+ return value;
+ }
+
+ public boolean equals(Object o)
+ {
+ if (this == o)
+ {
+ return true;
+ }
+ if (o instanceof Orientation)
+ {
+ Orientation that = (Orientation)o;
+ return this.value.equals(that.value);
+ }
+ return false;
+ }
+
+ public int hashCode()
+ {
+ return value.hashCode();
+ }
+
+ /**
+ * Parse a string representation of an orientation into a defined type.
+ *
+ * @param orientation the string representation of the orientation
+ * @return the defined type for the string
+ * @throws IllegalArgumentException if the provided orientation String is invalid
+ */
+ public static Orientation parse(String orientation)
+ {
+ if (orientation != null)
+ {
+ if (orientation.equalsIgnoreCase(VERTICAL.toString()))
+ {
+ return VERTICAL;
+ }
+ if (orientation.equalsIgnoreCase(HORIZONTAL.toString()))
+ {
+ return HORIZONTAL;
+ }
+ }
+
+ //
+ throw new IllegalArgumentException("Invalid orientation: " + orientation);
+ }
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/Orientation.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/theme/src/main/org/jboss/portal/theme/page/Region.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/Region.java 2007-03-29 20:00:51 UTC (rev 6871)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/Region.java 2007-03-29 20:04:41 UTC (rev 6872)
@@ -22,6 +22,8 @@
******************************************************************************/
package org.jboss.portal.theme.page;
+import org.jboss.portal.theme.Orientation;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -51,7 +53,7 @@
private String cssId;
/** . */
- private RegionOrientation orientation;
+ private Orientation orientation;
/** . */
private Map properties;
@@ -74,7 +76,7 @@
* @param cssId the id attribute value that can be used by css selectors to identify this region
* @param orientation arrange portlet windows inside this region in this orientation
*/
- public Region(String name, String cssId, RegionOrientation orientation)
+ public Region(String name, String cssId, Orientation orientation)
{
if (name == null)
{
@@ -84,7 +86,7 @@
windows = new ArrayList();
sorted = false;
this.cssId = (cssId == null ? name : cssId);
- this.orientation = (orientation == null ? RegionOrientation.DEFAULT : orientation);
+ this.orientation = (orientation == null ? Orientation.DEFAULT : orientation);
}
public String getProperty(String name)
@@ -121,7 +123,7 @@
}
/** @return the orientation of this region */
- public RegionOrientation getOrientation()
+ public Orientation getOrientation()
{
return orientation;
}
Deleted: trunk/theme/src/main/org/jboss/portal/theme/page/RegionOrientation.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/RegionOrientation.java 2007-03-29 20:00:51 UTC (rev 6871)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/RegionOrientation.java 2007-03-29 20:04:41 UTC (rev 6872)
@@ -1,104 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.theme.page;
-
-/**
- * Type save enumeration of allowed region orientations.
- *
- * @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.page.Region
- */
-public final class RegionOrientation
-{
-
- /** Place portlets in one region in vertical order. */
- public static final RegionOrientation VERTICAL = new RegionOrientation("vertical");
-
- /** Place portlets in one region in horizontal order. */
- public static final RegionOrientation HORIZONTAL = new RegionOrientation("horizontal");
-
- /** The default value which is vertical. */
- public static final RegionOrientation DEFAULT = VERTICAL;
-
- /** The literal value. */
- private final String value;
-
- private RegionOrientation(String value)
- {
- if (value == null)
- {
- throw new IllegalArgumentException();
- }
- this.value = value;
- }
-
- public String toString()
- {
- return value;
- }
-
- public boolean equals(Object o)
- {
- if (this == o)
- {
- return true;
- }
- if (o instanceof RegionOrientation)
- {
- RegionOrientation that = (RegionOrientation)o;
- return this.value.equals(that.value);
- }
- return false;
- }
-
- public int hashCode()
- {
- return value.hashCode();
- }
-
- /**
- * Parse a string representation of a region orientation into a defined type.
- *
- * @param orientation the string representation of the orientation
- * @return the defined type for the string
- * @throws IllegalArgumentException if the provided orientation String is invalid
- */
- public static RegionOrientation parse(String orientation)
- {
- if (orientation != null)
- {
- if (orientation.equalsIgnoreCase(VERTICAL.toString()))
- {
- return VERTICAL;
- }
- if (orientation.equalsIgnoreCase(HORIZONTAL.toString()))
- {
- return HORIZONTAL;
- }
- }
-
- //
- throw new IllegalArgumentException("Invalid orientation: " + orientation);
- }
-}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-29 20:00:51 UTC (rev 6871)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-29 20:04:41 UTC (rev 6872)
@@ -28,8 +28,8 @@
import org.jboss.portal.theme.LayoutInfo;
import org.jboss.portal.theme.PortalLayout;
import org.jboss.portal.theme.ThemeConstants;
+import org.jboss.portal.theme.Orientation;
import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.RegionOrientation;
import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.page.PageResult;
@@ -60,7 +60,7 @@
private PortalLayout layout;
private String regionCssId;
- private RegionOrientation orientation;
+ private Orientation orientation;
private StringBuffer markup;
private Object fragment;
@@ -142,7 +142,7 @@
* @param orientation the orintation of multiple windows in this region (arranged horizontally or vertically)
* @return a new render context for the provided region
*/
- public RenderContext getContext(Region region, String cssId, RegionOrientation orientation)
+ public RenderContext getContext(Region region, String cssId, Orientation orientation)
{
RenderContext context = new RenderContext(this.layout, region, this.markupInfo, this.pageResult, this.request);
if (cssId != null)
@@ -187,7 +187,7 @@
}
/** @return the region orientation */
- public RegionOrientation getRegionOrientation()
+ public Orientation getRegionOrientation()
{
return orientation;
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java 2007-03-29 20:00:51 UTC (rev 6871)
+++ trunk/theme/src/main/org/jboss/portal/theme/tag/RegionTagHandler.java 2007-03-29 20:04:41 UTC (rev 6872)
@@ -24,9 +24,9 @@
import org.jboss.logging.Logger;
import org.jboss.portal.theme.LayoutConstants;
+import org.jboss.portal.theme.Orientation;
import org.jboss.portal.theme.page.PageResult;
import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.RegionOrientation;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
@@ -52,7 +52,7 @@
{
private static Logger log = Logger.getLogger(RegionTagHandler.class);
//default to vertical
- private RegionOrientation orientation = RegionOrientation.DEFAULT;
+ private Orientation orientation = Orientation.DEFAULT;
private String regionName = null;
private String regionCssId = null;
@@ -87,7 +87,7 @@
if (page.getRegion(regionName) == null) // non-window display of content
{
// create a new region obj, based on region name
- Region newRegion = new Region(regionName, regionCssId, RegionOrientation.DEFAULT);
+ Region newRegion = new Region(regionName, regionCssId, Orientation.DEFAULT);
RenderContext renderContext = (RenderContext)request.getAttribute(LayoutConstants.ATTR_RENDERCONTEXT);
renderContext = renderContext.getContext(newRegion, regionCssId, orientation);
try
@@ -143,12 +143,12 @@
try
{
- this.orientation = RegionOrientation.parse(orientation);
+ this.orientation = Orientation.parse(orientation);
}
catch (IllegalArgumentException e)
{
log.error(e);
- this.orientation = RegionOrientation.DEFAULT;
+ this.orientation = Orientation.DEFAULT;
}
}
17 years, 3 months
JBoss Portal SVN: r6871 - trunk/theme/src/main/org/jboss/portal/theme/page.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-03-29 16:00:51 -0400 (Thu, 29 Mar 2007)
New Revision: 6871
Removed:
trunk/theme/src/main/org/jboss/portal/theme/page/RegionNames.java
Log:
removed unused interface defining obsolete constants
Deleted: trunk/theme/src/main/org/jboss/portal/theme/page/RegionNames.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/page/RegionNames.java 2007-03-29 19:59:58 UTC (rev 6870)
+++ trunk/theme/src/main/org/jboss/portal/theme/page/RegionNames.java 2007-03-29 20:00:51 UTC (rev 6871)
@@ -1,32 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.theme.page;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-public interface RegionNames
-{
- String LEFT = "left", RIGHT = "right", BOTTOM = "bottom", USER_1 = "user1", USER_2 = "user2", INSET = "inset";
-}
17 years, 3 months
JBoss Portal SVN: r6869 - in trunk/theme/src/main/org/jboss/portal/theme: impl/render/div and 3 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-03-29 15:56:02 -0400 (Thu, 29 Mar 2007)
New Revision: 6869
Added:
trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java
Removed:
trunk/theme/src/main/org/jboss/portal/theme/render/Renderer.java
Modified:
trunk/theme/src/main/org/jboss/portal/theme/PortalTheme.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java
trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderer.java
trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderer.java
Log:
decoupled theme renderers from page object structure by providing XXXRenderContext for XXXRenderer where the context provides what the renderer needs to know in order to properly do its rendition task. Also the choice of rendering a context is now a responsibility of the Renderer only as a renderer should not care about how to chose the correct renderer from a specific context.
Modified: trunk/theme/src/main/org/jboss/portal/theme/PortalTheme.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/PortalTheme.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/PortalTheme.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -37,7 +37,7 @@
*
* @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
* @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.Renderer
+ * @see org.jboss.portal.theme.render.ObjectRenderer
* @see org.jboss.portal.theme.PortalLayout
*/
public abstract class PortalTheme
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -25,11 +25,11 @@
import org.jboss.logging.Logger;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.DecorationRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.DecorationRenderContext;
import java.util.Collection;
import java.util.Collections;
@@ -51,47 +51,46 @@
{
private static Logger log = Logger.getLogger(DivDecorationRenderer.class);
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
}
/** @see DecorationRenderer#render */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result)
- throws RenderException
+ public void render(RenderContext renderContext, DecorationRenderContext drc) throws RenderException
{
- log.debug("decorate " + result.getTitle());
+ log.debug("decorate " + drc.getTitle());
StringBuffer markup = renderContext.getMarkupFragment();
markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
markup.append("<td class=\"portlet-titlebar-center\">");
- renderTitle(renderContext, result);
+ renderTitle(renderContext, drc);
markup.append("<div class=\"portlet-mode-container\">");
- renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
- renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
+ renderModeAndStateLinks(renderContext, drc, WindowResult.MODES_KEY);
+ renderModeAndStateLinks(renderContext, drc, WindowResult.WINDOWSTATES_KEY);
markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
log.debug("decoration is done");
}
- private static void renderTitle(RenderContext ctx, WindowResult result)
+ private static void renderTitle(RenderContext ctx, DecorationRenderContext drc)
{
ctx.getMarkupFragment().append("<div class=\"portlet-titlebar-decoration\">");
ctx.getMarkupFragment().append("<span class=\"portlet-titlebar-title\">");
- ctx.getMarkupFragment().append(result.getTitle());
+ ctx.getMarkupFragment().append(drc.getTitle());
ctx.getMarkupFragment().append("</span></div>");
}
- private static void renderModeAndStateLinks(RenderContext ctx, WindowResult result, String selector)
+ private static void renderModeAndStateLinks(RenderContext ctx, DecorationRenderContext drc, String selector)
{
log.debug("render " + selector + "s");
- Collection modesOrStates = result.getTriggerableActions(selector);
+ Collection modesOrStates = drc.getTriggerableActions(selector);
if (modesOrStates == null)
{
return;
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivPortletRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -22,11 +22,10 @@
******************************************************************************/
package org.jboss.portal.theme.impl.render.div;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.PortletRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.PortletRenderContext;
/**
* Implementation of a Portlet renderer, based on div tags.
@@ -38,23 +37,23 @@
public class DivPortletRenderer
implements PortletRenderer
{
+
/** @see PortletRenderer#render */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
+ public void render(RenderContext renderContext, PortletRenderContext prc) throws RenderException
{
renderStart(renderContext);
- renderContext.getMarkupFragment().append(result.getContent());
+ renderContext.getMarkupFragment().append(prc.getMarkup());
renderEnd(renderContext);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
ctx.getMarkupFragment().append("<tr><td class=\"portlet-content-left\"></td>");
ctx.getMarkupFragment().append("<td class=\"portlet-body\"><div class=\"portlet-content-center\">");
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
ctx.getMarkupFragment().append("</div></td><td class=\"portlet-content-right\"></td></tr>");
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivRegionRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -23,15 +23,13 @@
package org.jboss.portal.theme.impl.render.div;
import org.jboss.logging.Logger;
-import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.RegionRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.theme.render.WindowRenderContext;
import java.util.Iterator;
-import java.util.Map;
/**
* Implementation of a Region renderer, based on div tags.
@@ -47,12 +45,12 @@
private static Logger log = Logger.getLogger(DivRegionRenderer.class);
/** @see RegionRenderer#render */
- public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
+ public void render(RenderContext renderContext, RegionRenderContext rrc) throws RenderException
{
StringBuffer markup = renderContext.getMarkupFragment();
markup.append("<div");
- if (region == null) // || region.getWindows().size() <= 0)
+ if (rrc == null) // || region.getWindows().size() <= 0)
{
markup.append(" class='empty-region' />");
return;
@@ -66,27 +64,20 @@
}
//
- for (Iterator i = region.getWindows().iterator(); i.hasNext();)
+ for (Iterator i = rrc.getWindowRenderContexts().iterator(); i.hasNext();)
{
- WindowContext window = (WindowContext)i.next();
- WindowContext portletContext = (WindowContext)portletContexts.get(window.getId());
- WindowResult result = (WindowResult)windowResults.get(window.getId());
-
- // The result may be null if it has not been added to the page for some reason
- if (result != null)
- {
- renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
- }
+ WindowRenderContext wrc = (WindowRenderContext)i.next();
+ renderContext.render(wrc);
}
markup.append("</div>");
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
public void renderStart(RenderContext ctx)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
public void renderEnd(RenderContext ctx)
{
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/div/DivWindowRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -24,13 +24,12 @@
import org.jboss.logging.Logger;
import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-import org.jboss.portal.theme.render.DecorationRenderer;
-import org.jboss.portal.theme.render.PortletRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
import org.jboss.portal.theme.render.WindowRenderer;
+import org.jboss.portal.theme.render.WindowRenderContext;
+import org.jboss.portal.theme.render.DecorationRenderContext;
+import org.jboss.portal.theme.render.PortletRenderContext;
/**
* Implementation of a WindowRenderer, based on div tags.
@@ -45,25 +44,27 @@
private static Logger log = Logger.getLogger(DivWindowRenderer.class);
/** @see WindowRenderer#render */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, WindowRenderContext wrc) throws RenderException
{
renderStart(renderContext);
// try
// {
- DecorationRenderer decorationRenderer = renderContext.getDecorationRenderer(result);
+ DecorationRenderContext decorationRenderer = wrc.getDecoration();
if (decorationRenderer != null)
{
- decorationRenderer.render(renderContext, portletContext, result);
+ renderContext.render(decorationRenderer);
+// decorationRenderer.render(renderContext, portletContext, result);
}
- WindowState windowState = result.getWindowState();
+ WindowState windowState = wrc.getWindowState();
if (!WindowState.MINIMIZED.equals(windowState))
{
- PortletRenderer portletRenderer = renderContext.getPortletRenderer(result);
+ PortletRenderContext portletRenderer = wrc.getPortlet();
if (portletRenderer != null)
{
- portletRenderer.render(renderContext, portletContext, result);
+ renderContext.render(portletRenderer);
+// portletRenderer.render(renderContext, portletContext, result);
}
renderContext.getMarkupFragment().append("<tr><td class=\"portlet-footer-left\"></td>");
@@ -83,14 +84,14 @@
renderEnd(renderContext);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
public void renderStart(RenderContext ctx)
{
ctx.getMarkupFragment().append("<div class=\"portlet-container\">");
ctx.getMarkupFragment().append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
public void renderEnd(RenderContext ctx)
{
ctx.getMarkupFragment().append("</table></div>");
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaDecorationRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -27,11 +27,11 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.theme.impl.render.empty.EmptyDecorationRenderer;
-import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.DecorationRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.DecorationRenderContext;
import java.util.Collection;
import java.util.Collections;
@@ -61,20 +61,19 @@
delegate = decorationRenderer;
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
delegate.renderStart(ctx);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
delegate.renderEnd(ctx);
}
- /** @see DecorationRenderer#render */
- public void render(RenderContext renderContext, WindowContext windowContext, WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, DecorationRenderContext drc) throws RenderException
{
if (DynaRegionRenderer.isEnabled())
{
@@ -84,15 +83,15 @@
StringBuffer markup = renderContext.getMarkupFragment();
markup.append("<tr><td class=\"portlet-titlebar-left\"></td>");
markup.append("<td class=\"portlet-titlebar-center handle\">");
- renderTitle(renderContext, result);
+ renderTitle(renderContext, drc);
markup.append("<div class=\"portlet-mode-container\">");
- renderModeAndStateLinks(renderContext, result, WindowResult.MODES_KEY);
- renderModeAndStateLinks(renderContext, result, WindowResult.WINDOWSTATES_KEY);
+ renderModeAndStateLinks(renderContext, drc, WindowResult.MODES_KEY);
+ renderModeAndStateLinks(renderContext, drc, WindowResult.WINDOWSTATES_KEY);
boolean removeFeatureEnabled = false;
if (removeFeatureEnabled)
{
- renderRemoveLink(renderContext, windowContext);
+ renderRemoveLink(renderContext, drc);
}
markup.append("</div></td><td class=\"portlet-titlebar-right\"></td></tr>");
@@ -100,29 +99,29 @@
}
else
{
- delegate.render(renderContext, windowContext, result);
+ delegate.render(renderContext, drc);
}
}
- private static void renderRemoveLink(RenderContext renderContext, WindowContext windowContext)
+ private static void renderRemoveLink(RenderContext renderContext, DecorationRenderContext drc)
{
renderContext.getMarkupFragment().append("<div class=\"portlet-mode-").append("remove");
- renderContext.getMarkupFragment().append("\" onclick=\"removeWindow('").append(windowContext.getId()).append("');\" title=\"");
+ renderContext.getMarkupFragment().append("\" onclick=\"removeWindow('").append(drc.getId()).append("');\" title=\"");
renderContext.getMarkupFragment().append("Remove").append("\"></div>");
}
- private static void renderTitle(RenderContext ctx, WindowResult result)
+ private static void renderTitle(RenderContext ctx, DecorationRenderContext drc)
{
ctx.getMarkupFragment().append("<div class=\"portlet-titlebar-decoration\">");
ctx.getMarkupFragment().append("<span class=\"portlet-titlebar-title\">");
- ctx.getMarkupFragment().append(result.getTitle());
+ ctx.getMarkupFragment().append(drc.getTitle());
ctx.getMarkupFragment().append("</span></div>");
}
- private static void renderModeAndStateLinks(RenderContext ctx, WindowResult result, String selector)
+ private static void renderModeAndStateLinks(RenderContext ctx, DecorationRenderContext drc, String selector)
{
log.debug("render " + selector + "s");
- Collection modesOrStates = result.getTriggerableActions(selector);
+ Collection modesOrStates = drc.getTriggerableActions(selector);
if (modesOrStates == null)
{
return;
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaPortletRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -24,11 +24,10 @@
package org.jboss.portal.theme.impl.render.dynamic;
import org.jboss.portal.theme.impl.render.empty.EmptyPortletRenderer;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.PortletRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.PortletRenderContext;
/**
* Implementation of a drag and drop Portlet renderer.
@@ -51,34 +50,34 @@
}
/** @see PortletRenderer#render */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, PortletRenderContext prc) throws RenderException
{
if (DynaRegionRenderer.isEnabled())
{
if (delegate instanceof EmptyPortletRenderer)
{
renderContext.getMarkupFragment().append("<span class=\"handle\">");
- delegate.render(renderContext, state, result);
+ delegate.render(renderContext, prc);
renderContext.getMarkupFragment().append("</span>");
}
else
{
- delegate.render(renderContext, state, result);
+ delegate.render(renderContext, prc);
}
}
else
{
- delegate.render(renderContext, state, result);
+ delegate.render(renderContext, prc);
}
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
delegate.renderStart(ctx);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
delegate.renderEnd(ctx);
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaRegionRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -25,10 +25,10 @@
import org.jboss.logging.Logger;
import org.jboss.portal.theme.ThemeConstants;
-import org.jboss.portal.theme.page.Region;
import org.jboss.portal.theme.render.RegionRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.RegionRenderContext;
import java.util.HashMap;
import java.util.Map;
@@ -65,8 +65,7 @@
}
/** @see RegionRenderer#render */
- public void render(RenderContext renderContext, Region region,
- Map portletContexts, Map windowResults) throws RenderException
+ public void render(RenderContext renderContext, RegionRenderContext rrc) throws RenderException
{
Map pageProps = renderContext.getPageProperties();
@@ -84,7 +83,7 @@
if (pageEnabled)
{
// Handle special ajax region here
- if ("AJAXFooter".equals(region.getId()))
+ if ("AJAXFooter".equals(rrc.getId()))
{
markup.append("<script>\n");
markup.append(
@@ -113,7 +112,7 @@
//
markup.append("</script>\n");
}
- else if ("AJAXScripts".equals(region.getId()))
+ else if ("AJAXScripts".equals(rrc.getId()))
{
markup.append("\n\n\n");
markup.append("<script type='text/javascript' src='").append(jsBase).append("/js/portal/prototype.js'></script>\n");
@@ -209,7 +208,7 @@
}
else
{
- String onRegion = region.getProperty(ThemeConstants.PORTAL_AJAX_OBJECT_ENABLED);
+ String onRegion = rrc.getProperty(ThemeConstants.PORTAL_AJAX_OBJECT_ENABLED);
regionEnabled = onRegion == null || "true".equals(onRegion);
}
}
@@ -221,7 +220,7 @@
append("regions_on_page[\"").
append(renderContext.getRegionId()).
append("\"]=\"").
- append(region.getId()).
+ append(rrc.getId()).
append("\";").
append("</script>");
}
@@ -232,7 +231,7 @@
enabledLocal.set(Boolean.valueOf(regionEnabled));
//
- delegate.render(renderContext, region, portletContexts, windowResults);
+ delegate.render(renderContext, rrc);
}
finally
{
@@ -246,13 +245,13 @@
}
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
public void renderStart(RenderContext ctx)
{
delegate.renderStart(ctx);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
public void renderEnd(RenderContext ctx)
{
delegate.renderEnd(ctx);
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -24,11 +24,10 @@
package org.jboss.portal.theme.impl.render.dynamic;
import org.jboss.logging.Logger;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
import org.jboss.portal.theme.render.WindowRenderer;
+import org.jboss.portal.theme.render.WindowRenderContext;
/**
* Implementation of a drag and drop WindowRenderer.
@@ -52,37 +51,38 @@
}
/** @see WindowRenderer#render */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, WindowRenderContext wrc) throws RenderException
{
if (DynaRegionRenderer.isEnabled())
{
- int portletNumber = ((DynaRegionRenderer)renderContext
- .getRegionRenderer()).getPortletNumber(renderContext
- .getRegionId());
+ // ?????
+// int portletNumber = ((DynaRegionRenderer)renderContext
+// .getRegionRenderer()).getPortletNumber(renderContext
+// .getRegionId());
+//
+// ((DynaRegionRenderer)renderContext.getRegionRenderer()).setWindowId(
+// "portlet-dnd-" + renderContext.getRegionId() + "-"
+// + portletNumber, portletContext.getWindowName());
- ((DynaRegionRenderer)renderContext.getRegionRenderer()).setWindowId(
- "portlet-dnd-" + renderContext.getRegionId() + "-"
- + portletNumber, portletContext.getWindowName());
+ renderContext.getMarkupFragment().append("<div id=\"").append(wrc.getId()).append("\">\n");
- renderContext.getMarkupFragment().append("<div id=\"").append(portletContext.getId()).append("\">\n");
+ delegate.render(renderContext, wrc);
- delegate.render(renderContext, portletContext, result);
-
renderContext.getMarkupFragment().append("</div>");
}
else
{
- delegate.render(renderContext, portletContext, result);
+ delegate.render(renderContext, wrc);
}
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart(org.jboss.portal.theme.render.RenderContext) */
public void renderStart(RenderContext ctx)
{
delegate.renderStart(ctx);
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd(org.jboss.portal.theme.render.RenderContext) */
public void renderEnd(RenderContext ctx)
{
delegate.renderEnd(ctx);
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyDecorationRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -22,11 +22,10 @@
******************************************************************************/
package org.jboss.portal.theme.impl.render.empty;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.DecorationRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.DecorationRenderContext;
/**
* Implementation of a Decoration renderer that creates no markup.
@@ -38,18 +37,17 @@
public class EmptyDecorationRenderer
implements DecorationRenderer
{
- /** @see DecorationRenderer#render */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
+
+ public void render(RenderContext renderContext, DecorationRenderContext drc) throws RenderException
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyPortletRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -23,11 +23,10 @@
package org.jboss.portal.theme.impl.render.empty;
import org.jboss.logging.Logger;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.PortletRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.PortletRenderContext;
/**
* Implementation of a Portlet renderer that create only the portlet content, no markup around it.
@@ -42,19 +41,18 @@
private static Logger log = Logger.getLogger(EmptyPortletRenderer.class);
/** @see PortletRenderer#render */
- public void render(RenderContext renderContext, WindowContext state, WindowResult result)
- throws RenderException
+ public void render(RenderContext renderContext, PortletRenderContext prc) throws RenderException
{
// log.debug("content of portlet: " + result.getTitle());
- renderContext.getMarkupFragment().append(result.getContent());
+ renderContext.getMarkupFragment().append(prc.getMarkup());
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyRegionRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -23,12 +23,11 @@
package org.jboss.portal.theme.impl.render.empty;
import org.jboss.logging.Logger;
-import org.jboss.portal.theme.page.Region;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.RegionRenderer;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
+import org.jboss.portal.theme.render.RegionRenderContext;
+import org.jboss.portal.theme.render.WindowRenderContext;
import java.util.Iterator;
import java.util.Map;
@@ -48,36 +47,36 @@
private static Logger log = Logger.getLogger(EmptyRegionRenderer.class);
/** @see RegionRenderer#render */
- public void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException
+ public void render(RenderContext renderContext, RegionRenderContext rrc) throws RenderException
{
- log.debug("render portlets in region : " + region.getId());
+ log.debug("render portlets in region : " + rrc.getId());
Map orderedItems = new TreeMap();
- for (Iterator i = region.getWindows().iterator(); i.hasNext();)
+ for (Iterator i = rrc.getWindowRenderContexts().iterator(); i.hasNext();)
{
- WindowContext window = (WindowContext)i.next();
+ WindowRenderContext window = (WindowRenderContext)i.next();
orderedItems.put(new Integer(window.getOrder()), window);
log.debug("got window to render: " + window.getId());
}
for (Iterator i = orderedItems.values().iterator(); i.hasNext();)
{
- WindowContext window = (WindowContext)i.next();
-
- WindowContext portletContext = (WindowContext)portletContexts.get(window.getId());
- WindowResult result = (WindowResult)windowResults.get(window.getId());
-
- renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
+ WindowRenderContext wrc = (WindowRenderContext)i.next();
+ renderContext.render(wrc);
+// WindowContext portletContext = (WindowContext)portletContexts.get(window.getId());
+// WindowResult result = (WindowResult)windowResults.get(window.getId());
+//
+// renderContext.getWindowRenderer(result).render(renderContext, portletContext, result);
}
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext renderContext)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext renderContext)
{
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/impl/render/empty/EmptyWindowRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -23,11 +23,11 @@
package org.jboss.portal.theme.impl.render.empty;
import org.jboss.portal.WindowState;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.render.RenderContext;
import org.jboss.portal.theme.render.RenderException;
import org.jboss.portal.theme.render.WindowRenderer;
+import org.jboss.portal.theme.render.WindowRenderContext;
+import org.jboss.portal.theme.render.PortletRenderContext;
/**
* Implementation of a Window renderer that creates no markup, and only passed control to the Portlet renderer.
@@ -42,17 +42,19 @@
// private static Logger log = Logger.getLogger(EmptyWindowRenderer.class);
/** @see WindowRenderer#render */
- public void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException
+ public void render(RenderContext renderContext, WindowRenderContext wrc) throws RenderException
{
// log.debug("render window for portlet : " + portletContext.);
// try
// {
- WindowState windowState = result.getWindowState();
- renderContext.getDecorationRenderer(result).render(renderContext, portletContext, result);
+ WindowState windowState = wrc.getWindowState();
+// renderContext.getDecorationRenderer(result).render(renderContext, portletContext, result);
if (!WindowState.MINIMIZED.equals(windowState))
{
- renderContext.getPortletRenderer(result).render(renderContext, portletContext, result);
+ PortletRenderContext prc = wrc.getPortlet();
+// renderContext.getPortletRenderer(result).render(renderContext, portletContext, result);
+ renderContext.render(prc);
}
// }
// catch (ThemeException e)
@@ -62,12 +64,12 @@
// }
}
- /** @see org.jboss.portal.theme.render.Renderer#renderStart */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderStart */
public void renderStart(RenderContext ctx)
{
}
- /** @see org.jboss.portal.theme.render.Renderer#renderEnd */
+ /** @see org.jboss.portal.theme.render.ObjectRenderer#renderEnd */
public void renderEnd(RenderContext ctx)
{
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,40 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface DecorationRenderContext extends ObjectRenderContext
+{
+
+ String getId();
+
+ String getTitle();
+
+ Collection getTriggerableActions(String familyName);
+
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/DecorationRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -22,9 +22,6 @@
******************************************************************************/
package org.jboss.portal.theme.render;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-
/**
* A decoration renderer is responsible for generating the markup of the portlet window title bar. <p>The decoration
* renderer has the responsibility to create the title , the window state links, and the portlet mode links. It is
@@ -39,16 +36,14 @@
* @see PortletRenderer
*/
public interface DecorationRenderer
- extends Renderer
+ extends ObjectRenderer
{
/**
* Create the markup for the portlet decoration
*
* @param renderContext the state holder to provide information about the region, it's portlets, and the render set,
* which allows access to the other renderer interfaces of the render set.
- * @param windowState the portlet's navigational state (mode, window state,...)
- * @param result the fragment result containing the produced markup from the portlet
* @throws RenderException
*/
- void render(RenderContext renderContext, WindowContext windowState, WindowResult result) throws RenderException;
+ void render(RenderContext renderContext, DecorationRenderContext drc) throws RenderException;
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,32 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface ObjectRenderContext
+{
+ String getProperty(String name);
+}
Copied: trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderer.java (from rev 6867, trunk/theme/src/main/org/jboss/portal/theme/render/Renderer.java)
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderer.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,48 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+/**
+ * Generic renderer interface extended by all members of a render set.
+ *
+ * @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
+ * @version $LastChangedRevision$, $LastChangedDate$
+ * @see org.jboss.portal.theme.render.PortalRenderSet
+ */
+public interface ObjectRenderer
+{
+ /**
+ * Start the render process for this renderer. <p>This is a convenient way yo open tags, like a table or a div</p>
+ *
+ * @param ctx the render context allowing access to state information of the current render process
+ */
+ void renderStart(RenderContext ctx);
+
+ /**
+ * End the render process for this renderer. <p>This is a convenient way yo close the tags that where opened by
+ * <code>renderStart</code></p>
+ *
+ * @param ctx the render context allowing access to state information of the current render process
+ */
+ void renderEnd(RenderContext ctx);
+}
Property changes on: trunk/theme/src/main/org/jboss/portal/theme/render/ObjectRenderer.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/PortalRenderSet.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -179,8 +179,8 @@
"][" + getPortletRenderer() + "]";
}
- private Renderer loadRenderer(ClassLoader loader, String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException
+ private ObjectRenderer loadRenderer(ClassLoader loader, String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException
{
- return (Renderer)loader.loadClass(className).newInstance();
+ return (ObjectRenderer)loader.loadClass(className).newInstance();
}
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,34 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface PortletRenderContext extends ObjectRenderContext
+{
+
+ String getMarkup();
+
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/PortletRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -22,9 +22,6 @@
******************************************************************************/
package org.jboss.portal.theme.render;
-import org.jboss.portal.theme.page.WindowContext;
-import org.jboss.portal.theme.page.WindowResult;
-
/**
* The portlet renderer is responsible for adding the created markup of a portlet to the page. <p>The portlet renderer
* is intended to be called by the <code>WindowRenderer</code> as part of the generation of the markup for a portlet
@@ -39,7 +36,7 @@
* @see DecorationRenderer
*/
public interface PortletRenderer
- extends Renderer
+ extends ObjectRenderer
{
/**
* Render the markup of a portlet. <p>Note: this is not calling the portlet container to produce the markup. The
@@ -48,9 +45,7 @@
*
* @param renderContext the state holder to provide information about the region, it's portlets, and the render set,
* which allows access to the other renderer interfaces of the render set.
- * @param windowState the portlet's navigational state (mode, window state,...)
- * @param result the fragment result containing the portlet's markup
* @throws RenderException
*/
- void render(RenderContext renderContext, WindowContext windowState, WindowResult result) throws RenderException;
+ void render(RenderContext renderContext, PortletRenderContext prc) throws RenderException;
}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,38 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface RegionRenderContext extends ObjectRenderContext
+{
+
+ String getId();
+
+ Collection getWindowRenderContexts();
+
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RegionRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -22,10 +22,6 @@
******************************************************************************/
package org.jboss.portal.theme.render;
-import org.jboss.portal.theme.page.Region;
-
-import java.util.Map;
-
/**
* A region renderer is responsible to create the markup container for a set of portlets on a page region. <p>The
* Portlets on a portal page can be assigned to regions of that page. Regions are sub elements of a page, that will be
@@ -39,7 +35,7 @@
* @see WindowRenderer
*/
public interface RegionRenderer
- extends Renderer
+ extends ObjectRenderer
{
/**
* Render the markup of an entire page region with all the portlets that are assigned to that region.
@@ -51,5 +47,5 @@
* @throws RenderException
* @see WindowRenderer#render
*/
- void render(RenderContext renderContext, Region region, Map portletContexts, Map windowResults) throws RenderException;
+ void render(RenderContext renderContext, RegionRenderContext rrc) throws RenderException;
}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/RenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -33,10 +33,15 @@
import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.page.PageResult;
+import org.jboss.portal.WindowState;
+import org.jboss.portal.Mode;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.ArrayList;
/**
* A render context to render a context on a page. <p>A render context is scoped to a MarkupContainer (a region, or a
@@ -417,15 +422,15 @@
{
if (fragment instanceof WindowContext)
{
- // render the window
WindowContext wc = (WindowContext)fragment;
WindowResult windowResult = pageResult.getWindowResult(wc.getId());
- getWindowRenderer(windowResult).render(this, (WindowContext)fragment, windowResult);
+ WindowRenderContext wrc = new WindowRenderContextImpl(wc, windowResult);
+ render(wrc);
}
else if (fragment instanceof Region)
{
- // render the region
- getRegionRenderer().render(this, (Region)fragment, pageResult.getWindowContextMap(), pageResult.getWindowResultMap());
+ RegionRenderContext rrc = new RegionRenderContextImpl(pageResult, (Region)fragment);
+ render(rrc);
}
else
{
@@ -439,6 +444,35 @@
}
}
+
+ public void render(ObjectRenderContext ctx) throws RenderException
+ {
+ if (ctx instanceof WindowRenderContext)
+ {
+ WindowRenderContextImpl wrc = (WindowRenderContextImpl)ctx;
+ WindowRenderer renderer = getWindowRenderer(wrc.result);
+ renderer.render(this, wrc);
+ }
+ else if (ctx instanceof RegionRenderContext)
+ {
+ RegionRenderContext rrc = (RegionRenderContext)ctx;
+ RegionRenderer renderer = getRegionRenderer();
+ renderer.render(this, rrc);
+ }
+ else if (ctx instanceof PortletRenderContext)
+ {
+ PortletRenderContextImpl prc = (PortletRenderContextImpl)ctx;
+ PortletRenderer renderer = getPortletRenderer(prc.wrc.result);
+ renderer.render(this, prc);
+ }
+ else if (ctx instanceof DecorationRenderContext)
+ {
+ DecorationRenderContextImpl drc = (DecorationRenderContextImpl)ctx;
+ DecorationRenderer renderer = getDecorationRenderer(drc.wrc.result);
+ renderer.render(this, drc);
+ }
+ }
+
public ServerRequest getRequest()
{
return request;
@@ -448,4 +482,143 @@
{
this.request = request;
}
+
+ private static class RegionRenderContextImpl implements RegionRenderContext
+ {
+
+ private final Region region;
+ private final Collection wrcs;
+
+ public RegionRenderContextImpl(PageResult page, Region region)
+ {
+ this.region = region;
+
+ this.wrcs = new ArrayList(region.getWindows().size());
+ for (Iterator i = region.getWindows().iterator();i.hasNext();)
+ {
+ WindowContext wc = (WindowContext)i.next();
+ WindowResult wr = page.getWindowResult(wc.getId());
+ WindowRenderContext wrc = new WindowRenderContextImpl(wc, wr);
+ wrcs.add(wrc);
+ }
+ }
+
+ public String getId()
+ {
+ return region.getId();
+ }
+
+ public Collection getWindowRenderContexts()
+ {
+ return wrcs;
+ }
+
+ public String getProperty(String name)
+ {
+ return region.getProperty(name);
+ }
+ }
+
+ private static class WindowRenderContextImpl implements WindowRenderContext
+ {
+
+ private final WindowContext context;
+ private final WindowResult result;
+ private final DecorationRenderContextImpl drc = new DecorationRenderContextImpl(this);
+ private final PortletRenderContextImpl prc = new PortletRenderContextImpl(this);
+
+ public WindowRenderContextImpl(WindowContext context, WindowResult result)
+ {
+ this.context = context;
+ this.result = result;
+ }
+
+ public String getId()
+ {
+ return context.getId().toString();
+ }
+
+ public int getOrder()
+ {
+ return context.getOrder();
+ }
+
+ public WindowState getWindowState()
+ {
+ return result.getWindowState();
+ }
+
+ public Mode getMode()
+ {
+ return result.getMode();
+ }
+
+ public DecorationRenderContext getDecoration()
+ {
+ return drc;
+ }
+
+ public PortletRenderContext getPortlet()
+ {
+ return prc;
+ }
+
+ public String getProperty(String name)
+ {
+ return (String)result.getWindowProperties().get(name);
+ }
+ }
+
+ private static class DecorationRenderContextImpl implements DecorationRenderContext
+ {
+
+ final WindowRenderContextImpl wrc;
+
+ public DecorationRenderContextImpl(WindowRenderContextImpl wrc)
+ {
+ this.wrc = wrc;
+ }
+
+ public String getId()
+ {
+ return wrc.getId();
+ }
+
+ public String getTitle()
+ {
+ return wrc.result.getTitle();
+ }
+
+ public Collection getTriggerableActions(String familyName)
+ {
+ return wrc.result.getTriggerableActions(familyName);
+ }
+
+ public String getProperty(String name)
+ {
+ return wrc.getProperty(name);
+ }
+ }
+
+ private static class PortletRenderContextImpl implements PortletRenderContext
+ {
+
+ final WindowRenderContextImpl wrc;
+
+ public PortletRenderContextImpl(WindowRenderContextImpl wrc)
+ {
+ this.wrc = wrc;
+ }
+
+ public String getMarkup()
+ {
+ return wrc.result.getContent();
+ }
+
+ public String getProperty(String name)
+ {
+ return wrc.getProperty(name);
+ }
+ }
+
}
\ No newline at end of file
Deleted: trunk/theme/src/main/org/jboss/portal/theme/render/Renderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/Renderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/Renderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -1,48 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.theme.render;
-
-/**
- * Generic renderer interface extended by all members of a render set.
- *
- * @author <a href="mailto:mholzner@novell.com>Martin Holzner</a>
- * @version $LastChangedRevision$, $LastChangedDate$
- * @see org.jboss.portal.theme.render.PortalRenderSet
- */
-public interface Renderer
-{
- /**
- * Start the render process for this renderer. <p>This is a convenient way yo open tags, like a table or a div</p>
- *
- * @param ctx the render context allowing access to state information of the current render process
- */
- void renderStart(RenderContext ctx);
-
- /**
- * End the render process for this renderer. <p>This is a convenient way yo close the tags that where opened by
- * <code>renderStart</code></p>
- *
- * @param ctx the render context allowing access to state information of the current render process
- */
- void renderEnd(RenderContext ctx);
-}
Added: trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java (rev 0)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderContext.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -0,0 +1,47 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.theme.render;
+
+import org.jboss.portal.WindowState;
+import org.jboss.portal.Mode;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public interface WindowRenderContext extends ObjectRenderContext
+{
+
+ String getId();
+
+ int getOrder();
+
+ WindowState getWindowState();
+
+ Mode getMode();
+
+ DecorationRenderContext getDecoration();
+
+ PortletRenderContext getPortlet();
+
+}
Modified: trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderer.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderer.java 2007-03-29 15:28:11 UTC (rev 6868)
+++ trunk/theme/src/main/org/jboss/portal/theme/render/WindowRenderer.java 2007-03-29 19:56:02 UTC (rev 6869)
@@ -42,15 +42,13 @@
* @see PortletRenderer
*/
public interface WindowRenderer
- extends Renderer
+ extends ObjectRenderer
{
/**
* Render the markup of a portlet window.
*
* @param renderContext the state holder to provide information about the region, it's portlets, and the render set,
* which allows access to the other renderer interfaces of the render set.
- * @param portletContext the information about the portlet that was rendered
- * @param result a window result containing the markup produced by the portlet
* @throws RenderException
* @see RegionRenderer#render
* @see PortletRenderer#render
@@ -58,5 +56,5 @@
* @see WindowContext
* @see WindowResult
*/
- void render(RenderContext renderContext, WindowContext portletContext, WindowResult result) throws RenderException;
+ void render(RenderContext renderContext, WindowRenderContext wrc) throws RenderException;
}
17 years, 3 months
JBoss Portal SVN: r6868 - trunk/core/src/main/org/jboss/portlet/content.
by portal-commits@lists.jboss.org
Author: thomas.heute(a)jboss.com
Date: 2007-03-29 11:28:11 -0400 (Thu, 29 Mar 2007)
New Revision: 6868
Modified:
trunk/core/src/main/org/jboss/portlet/content/ContentTypeRegistration.java
Log:
Fixed registration of mbean with dependencies.
Modified: trunk/core/src/main/org/jboss/portlet/content/ContentTypeRegistration.java
===================================================================
--- trunk/core/src/main/org/jboss/portlet/content/ContentTypeRegistration.java 2007-03-28 16:37:50 UTC (rev 6867)
+++ trunk/core/src/main/org/jboss/portlet/content/ContentTypeRegistration.java 2007-03-29 15:28:11 UTC (rev 6868)
@@ -22,32 +22,38 @@
******************************************************************************/
package org.jboss.portlet.content;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.management.Attribute;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.apache.log4j.Logger;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.portal.Mode;
+import org.jboss.portal.core.impl.model.content.InternalContentProviderRegistry;
import org.jboss.portal.core.impl.model.content.generic.GenericContentProviderRegistry;
import org.jboss.portal.core.impl.model.content.generic.InternalGenericContentProvider;
-import org.jboss.portal.core.impl.model.content.InternalContentProviderRegistry;
-import org.jboss.portal.core.impl.model.instance.PersistentInstanceContainer;
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.portlet.ContentPortlet;
-import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
import org.jboss.portal.core.model.instance.InstanceContainer;
-import org.jboss.portal.Mode;
import org.jboss.portal.jems.as.system.JBossServiceModelMBean;
-import org.jboss.mx.util.MBeanProxy;
-import org.jboss.mx.util.MBeanServerLocator;
-import org.apache.log4j.Logger;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContext;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.Attribute;
-
/**
* Provide registration of a content type with a portlet instance. This listener can be used
* in war files to register content driven portlet.
*
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
* @version $Revision: 1.1 $
*/
public class ContentTypeRegistration implements ServletContextListener
@@ -90,51 +96,80 @@
//
log.debug("About to register content type "+ contentType + " with portlet instance " + portletInstanceName);
- GenericContentProviderRegistry providerRegistry = GenericContentProviderRegistry.getInstance();
- if (providerRegistry != null)
+ InternalGenericContentProvider provider = new InternalGenericContentProvider();
+ provider.setContentType(contentType.toString());
+
+ provider.setDecorateContent(true);
+ provider.setContentPortletInfo(contentPortlet);
+
+ try
{
+ String name = "portal:service=ContentRenderer,type=" + portletInstanceName;
+ ObjectName objectName = new ObjectName(name);
+ MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+ JBossServiceModelMBean mbean = new JBossServiceModelMBean(provider);
- providerRegistry.register(contentType, contentPortlet);
- log.debug("Registered content type "+ contentType + " with portlet instance " + portletInstanceName);
+ // Register the mbean
+ mbeanServer.registerMBean(mbean, objectName);
+
+ //
+ ObjectName scObjectName = new ObjectName("jboss.system:service=ServiceController");
+ mbeanServer.invoke(scObjectName, "create", new ObjectName[] {objectName} , new String[] {"javax.management.ObjectName"});
+
+ // Get proxy on Content Provide Registry
+ ObjectName contentProviderRegistryON = new ObjectName("portal:service=ContentProviderRegistry");
+ Object registry = MBeanProxy.get(InternalContentProviderRegistry.class, contentProviderRegistryON, mbeanServer);
+ mbean.setAttribute(new Attribute("Registry", registry));
+
+ // Get proxy on Instance Container
+ ObjectName instanceContainerON = new ObjectName("portal:container=Instance");
+ Object container = MBeanProxy.get(InstanceContainer.class, instanceContainerON, mbeanServer);
+ mbean.setAttribute(new Attribute("InstanceContainer", container));
+
+ // Set dependencies
+ List dependencies = new ArrayList();
+ dependencies.add(contentProviderRegistryON);
+ dependencies.add(instanceContainerON);
+ mbeanServer.invoke(scObjectName, "register", new Object[] {objectName, dependencies} , new String[] {"javax.management.ObjectName", "java.util.Collection"});
+
+ // Start the mbean
+ mbeanServer.invoke(scObjectName, "start", new ObjectName[] {objectName} , new String[] {"javax.management.ObjectName"});
+
+ log.debug("Registered InternalGenericContentProvider with name:" + name);
}
- else
+ catch(Exception e)
{
- InternalGenericContentProvider provider = new InternalGenericContentProvider();
- provider.setContentType(contentType.toString());
+ log.warn("Couldn't perform ContentProvider registration", e);
+ return;
+ }
+ log.debug("Registered content type "+ contentType + " with portlet instance " + portletInstanceName);
+ }
- provider.setDecorateContent(true);
- provider.setContentPortletInfo(contentPortlet);
-
+ public void contextDestroyed(ServletContextEvent event)
+ {
+ if (contentType != null)
+ {
+ log.debug("About to unregister content type "+ contentType);
+
+ //
+ final String portletInstanceName = event.getServletContext().getInitParameter("org.jboss.portal.portlet_instance");
+ String name = "portal:service=ContentRenderer,type=" + portletInstanceName;
try
{
- String name = "portal:service=InternalGenericContentProvider,type=" + portletInstanceName;
+ ObjectName objectName = new ObjectName(name);
+ ObjectName scObjectName = new ObjectName("jboss.system:service=ServiceController");
+
+ // Stop the mbean
MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
- JBossServiceModelMBean mbean = new JBossServiceModelMBean(provider);
- Object registry = MBeanProxy.get(InternalContentProviderRegistry.class, new ObjectName("portal:service=ContentProviderRegistry"), mbeanServer);
- Object container = MBeanProxy.get(InstanceContainer.class, new ObjectName("portal:container=Instance"), mbeanServer);
- mbeanServer.registerMBean(mbean, new ObjectName(name));
- log.debug("Registered InternalGenericContentProvider with name:" + name);
- mbean.setAttribute(new Attribute("Registry", registry));
- mbean.setAttribute(new Attribute("InstanceContainer", container));
-
+ mbeanServer.invoke(scObjectName, "stop", new ObjectName[] {objectName} , new String[] {"javax.management.ObjectName"});
}
catch(Exception e)
{
log.warn("Couldn't perform ContentProvider registration", e);
return;
}
- log.debug("Registered content type "+ contentType + " with portlet instance " + portletInstanceName);
- }
- }
- public void contextDestroyed(ServletContextEvent event)
- {
- if (contentType != null)
- {
- log.debug("About to unregister content type "+ contentType);
- GenericContentProviderRegistry providerRegistry = GenericContentProviderRegistry.getInstance();
- providerRegistry.unregister(contentType);
log.debug("Content type "+ contentType + " has been unregistered");
}
}
17 years, 3 months
JBoss Portal SVN: r6867 - trunk/theme/src/main/org/jboss/portal/test/theme/servlet.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-03-28 12:37:50 -0400 (Wed, 28 Mar 2007)
New Revision: 6867
Modified:
trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java
Log:
removed useless code in themetestservlet since the mini server env performs the loading itself of themes
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java 2007-03-28 14:48:17 UTC (rev 6866)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/servlet/TestThemeServlet.java 2007-03-28 16:37:50 UTC (rev 6867)
@@ -33,23 +33,14 @@
import org.jboss.portal.theme.LayoutService;
import org.jboss.portal.theme.PortalLayout;
import org.jboss.portal.theme.PortalTheme;
-import org.jboss.portal.theme.RuntimeContext;
import org.jboss.portal.theme.ThemeConstants;
import org.jboss.portal.theme.ThemeService;
-import org.jboss.portal.theme.deployment.jboss.PortalLayoutMetaDataFactory;
-import org.jboss.portal.theme.deployment.jboss.PortalThemeMetaDataFactory;
-import org.jboss.portal.theme.deployment.jboss.RenderSetMetaDataFactory;
-import org.jboss.portal.theme.metadata.PortalLayoutMetaData;
-import org.jboss.portal.theme.metadata.PortalThemeMetaData;
-import org.jboss.portal.theme.metadata.RenderSetMetaData;
import org.jboss.portal.theme.page.PageService;
import org.jboss.portal.theme.page.WindowContext;
import org.jboss.portal.theme.page.WindowResult;
import org.jboss.portal.theme.page.PageResult;
import org.jboss.portal.theme.render.PortalRenderSet;
import org.jboss.portal.theme.render.RenderContext;
-import org.jboss.xb.binding.Unmarshaller;
-import org.jboss.xb.binding.UnmarshallerFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -58,21 +49,16 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.io.InputStream;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
/** @author <a href="mailto:roy@jboss.org">Roy Russo</a> */
public class TestThemeServlet extends HttpServlet
{
- private PortalRenderSet renderSet;
- private PortalLayout layout;
- private PortalTheme theme;
+
private static final String TEST_PAGE_NAME = "TestPage";
/** How many windows to create on left region * */
@@ -81,69 +67,34 @@
/** How many windows to create on center region * */
private static final int CENTER_WINDOWS = 3;
- /** Set theme api services */
- public void init()
+ /**
+ * Generates a portal page with windows, using the theme api.
+ */
+ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
- MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
- LayoutService layoutService = (LayoutService)MBeanProxy.get(LayoutService.class, new ObjectName("portal:service=LayoutService"), mbeanServer);
- ThemeService themeService = (ThemeService)MBeanProxy.get(ThemeService.class, new ObjectName("portal:service=ThemeService"), mbeanServer);
- PageService pageService = (PageService)MBeanProxy.get(PageService.class, new ObjectName("portal:service=PageService"), mbeanServer);
-
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- RuntimeContext runtimeContext = new RuntimeContext("TestAppId", getServletContext(), "/theme-test", loader);
-
- // add layouts from metadata
- InputStream in = null;
- in = getServletContext().getResourceAsStream("/WEB-INF/portal-layouts.xml");
- Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
- List portalLayouts = (List)unmarshaller.unmarshal(in, new PortalLayoutMetaDataFactory(), null);
- for (Iterator i = portalLayouts.iterator(); i.hasNext();)
- {
- PortalLayoutMetaData layoutMD = (PortalLayoutMetaData)i.next();
- layoutService.addLayout(runtimeContext, layoutMD);
- }
- layout = layoutService.getLayout("generic", true);
-
- // add rendersets from metadata
- in = getServletContext().getResourceAsStream("/WEB-INF/layout/portal-renderSet.xml");
- unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
- List renderSets = (List)unmarshaller.unmarshal(in, new RenderSetMetaDataFactory(), null);
- for (Iterator i = renderSets.iterator(); i.hasNext();)
- {
- RenderSetMetaData renderSetMD = (RenderSetMetaData)i.next();
- layoutService.addRenderSet(runtimeContext, renderSetMD);
- }
- renderSet = layoutService.getRenderSet("divRenderer", MediaType.HTML);
-
- // add themes from metadata
- in = getServletContext().getResourceAsStream("/WEB-INF/portal-themes.xml");
- unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
- List themes = (List)unmarshaller.unmarshal(in, new PortalThemeMetaDataFactory(), null);
- for (Iterator i = themes.iterator(); i.hasNext();)
- {
- PortalThemeMetaData themeMD = (PortalThemeMetaData)i.next();
- themeService.addTheme(runtimeContext, themeMD);
- }
- theme = themeService.getTheme("renaissance", true);
+ proceed(request, response);
}
catch (Exception e)
{
- e.printStackTrace();
+ throw new ServletException(e);
}
}
- /**
- * Generates a portal page with windows, using the theme api.
- *
- * @param httpServletRequest
- * @param httpServletResponse
- * @throws ServletException
- * @throws IOException
- */
- public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
+ public void proceed(HttpServletRequest request, HttpServletResponse response) throws Exception
{
+ MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+
+ LayoutService layoutService = (LayoutService)MBeanProxy.get(LayoutService.class, new ObjectName("portal:service=LayoutService"), mbeanServer);
+ ThemeService themeService = (ThemeService)MBeanProxy.get(ThemeService.class, new ObjectName("portal:service=ThemeService"), mbeanServer);
+ PageService pageService = (PageService)MBeanProxy.get(PageService.class, new ObjectName("portal:service=PageService"), mbeanServer);
+
+ PortalRenderSet renderSet = layoutService.getRenderSet("divRenderer", MediaType.HTML);
+ PortalLayout layout = layoutService.getLayout("generic", true);
+ PortalTheme theme = themeService.getTheme("renaissance", true);
+
+
//
Map pageProps = new HashMap();
pageProps.put(ThemeConstants.PORTAL_AJAX_JAVASCRIPT_BASE, "/portal-ajax");
@@ -178,28 +129,17 @@
// set the renderctx and req/res attr
RenderContext renderCtx = new RenderContext(layout, markupInfo, pageResult, serverRequest);
- httpServletResponse.setContentType(renderCtx.getContentType().toString());
- httpServletResponse.setCharacterEncoding(renderCtx.getCharset());
- httpServletRequest.setAttribute(LayoutConstants.ATTR_RENDERCONTEXT, renderCtx);
- httpServletRequest.setAttribute(LayoutConstants.ATTR_PAGE, pageResult);
- httpServletRequest.setAttribute(ThemeConstants.ATTR_THEME, theme);
+ response.setContentType(renderCtx.getContentType().toString());
+ response.setCharacterEncoding(renderCtx.getCharset());
+ request.setAttribute(LayoutConstants.ATTR_RENDERCONTEXT, renderCtx);
+ request.setAttribute(LayoutConstants.ATTR_PAGE, pageResult);
+ request.setAttribute(ThemeConstants.ATTR_THEME, theme);
- try
- {
- LayoutDispatcher dispatcher1 = new LayoutDispatcher(renderCtx, httpServletRequest, httpServletResponse, pageResult);
- dispatcher1.include();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
+ //
+ LayoutDispatcher dispatcher1 = new LayoutDispatcher(renderCtx, request, response, pageResult);
+ dispatcher1.include();
}
- public void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
- {
- doGet(httpServletRequest, httpServletResponse);
- }
-
/**
* Generates the WindowResult for our windowcontext
*
17 years, 3 months