Author: julien(a)jboss.com
Date: 2008-02-07 20:34:25 -0500 (Thu, 07 Feb 2008)
New Revision: 9847
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/PortalResponse.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/AbstractURLTag.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PageTag.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletTag.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletURLTag.java
Log:
support for maximized with new design
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/PortalResponse.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/PortalResponse.java 2008-02-08
00:01:29 UTC (rev 9846)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/PortalResponse.java 2008-02-08
01:34:25 UTC (rev 9847)
@@ -29,6 +29,9 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.ServletOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -49,6 +52,9 @@
/** . */
private int count = 0;
+ /** . */
+ private final MutableOut out;
+
public PortalResponse(
HttpServletResponse response,
PagePortletControllerContext portletControllerContext,
@@ -59,6 +65,7 @@
//
this.portletControllerContext = portletControllerContext;
this.pageState = pageState;
+ this.out = new MutableOut(this);
}
/**
@@ -138,8 +145,28 @@
// buffer.close();
// }
+ public void setMuted(boolean muted)
+ {
+ out.setMuted(muted);
+ }
+
+ public boolean isMuted()
+ {
+ return out.isMuted();
+ }
+
public String nextId()
{
return "" + count++;
}
+
+// public ServletOutputStream getOutputStream() throws IOException
+// {
+// return out.getOutputStream();
+// }
+//
+// public PrintWriter getWriter() throws IOException
+// {
+// return out.getWriter();
+// }
}
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/AbstractURLTag.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/AbstractURLTag.java 2008-02-08
00:01:29 UTC (rev 9846)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/AbstractURLTag.java 2008-02-08
01:34:25 UTC (rev 9847)
@@ -23,7 +23,6 @@
package org.jboss.portal.portlet.test.jsp.taglib;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
import java.util.Map;
import java.util.HashMap;
@@ -31,7 +30,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-public class AbstractURLTag extends BodyTagSupport
+public class AbstractURLTag extends PortalBodyTagSupport
{
/** . */
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PageTag.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PageTag.java 2008-02-08
00:01:29 UTC (rev 9846)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PageTag.java 2008-02-08
01:34:25 UTC (rev 9847)
@@ -22,25 +22,54 @@
******************************************************************************/
package org.jboss.portal.portlet.test.jsp.taglib;
+import org.jboss.portal.portlet.test.jsp.PortalResponse;
+
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
+import java.io.IOException;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-public class PageTag extends BodyTagSupport
+public class PageTag extends PortalBodyTagSupport
{
+ String maximizedId;
+
+ String content;
+
public int doStartTag() throws JspException
{
+ PortalResponse response = getPortalResponse();
+
//
- return EVAL_BODY_INCLUDE;
+ maximizedId = response.getMaximizedWindowId();
+
+ //
+ if (maximizedId != null)
+ {
+ return EVAL_BODY_BUFFERED;
+ }
+ else
+ {
+ return EVAL_BODY_INCLUDE;
+ }
}
public int doEndTag() throws JspException
{
- //
+ if (maximizedId != null)
+ {
+ try
+ {
+ pageContext.getOut().write(content);
+ }
+ catch (IOException e)
+ {
+ throw new JspException(e);
+ }
+ }
+
return EVAL_PAGE;
}
}
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletTag.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletTag.java 2008-02-08
00:01:29 UTC (rev 9846)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletTag.java 2008-02-08
01:34:25 UTC (rev 9847)
@@ -46,19 +46,28 @@
import org.jboss.portal.common.util.ParameterMap;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.Collections;
+import java.io.IOException;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-public class PortletTag extends BodyTagSupport
+public class PortletTag extends PortalBodyTagSupport
{
/** . */
+ private static final int SKIPPED = 0;
+
+ /** . */
+ private static final int BUFFERED = 1;
+
+ /** . */
+ private static final int RENDERED = 2;
+
+ /** . */
private static final Set<Mode> DEFAULT_MODES =
Collections.unmodifiableSet(Tools.toSet(Mode.VIEW, Mode.EDIT, Mode.HELP));
/** . */
@@ -79,6 +88,12 @@
/** . */
private String initialModeValue;
+ /** . */
+ private int status;
+
+ /** . */
+ PortletResult result;
+
public String getName()
{
return name;
@@ -129,26 +144,84 @@
this.initialModeValue = initialMode;
}
- PortletResult result;
-
public int doStartTag() throws JspException
{
- PortalResponse response = (PortalResponse)pageContext.getResponse();
-
+ PortalResponse response = getPortalResponse();
+ PagePortletControllerContext context = response.getPortletControllerContext();
+ PageTag pageTag = (PageTag)findAncestorWithClass(this, PageTag.class);
+
//
- result = render(response);
+ Portlet portlet = context.findPortlet(applicationName, name);
+ // Compute window id
+ String windowId = portlet.getContext().getId() + "." +
response.nextId();
+
//
- return EVAL_BODY_INCLUDE;
+
+ //
+ if (pageTag.maximizedId != null)
+ {
+ if (windowId.equals(pageTag.maximizedId))
+ {
+ result = render(response, portlet, windowId);
+ status = BUFFERED;
+ }
+ else
+ {
+ status = SKIPPED;
+ }
+ }
+ else
+ {
+ result = render(response, portlet, windowId);
+ status = RENDERED;
+ }
+
+ //
+ switch (status)
+ {
+ case SKIPPED:
+ return SKIP_BODY;
+ case RENDERED:
+ return EVAL_BODY_INCLUDE;
+ case BUFFERED:
+ return EVAL_BODY_BUFFERED;
+ default:
+ throw new AssertionError();
+ }
}
public int doEndTag() throws JspException
{
+ result = null;
+
+ //
+ switch (status)
+ {
+ case SKIPPED:
+ break;
+ case RENDERED:
+ break;
+ case BUFFERED:
+ PageTag pageTag = (PageTag)findAncestorWithClass(this, PageTag.class);
+ pageTag.content = bodyContent.getString();
+ break;
+ default:
+ throw new AssertionError();
+ }
+
+ //
return EVAL_PAGE;
}
- public PortletResult render(PortalResponse response)
+ public PortletResult render(
+ PortalResponse response,
+ Portlet portlet,
+ String windowId)
{
+ PagePortletControllerContext context = response.getPortletControllerContext();
+
+ //
Set<Mode> supportedModes = new LinkedHashSet<Mode>();
if (supportedModeValues != null)
{
@@ -186,13 +259,6 @@
}
//
- PagePortletControllerContext context = response.getPortletControllerContext();
-
- //
- Portlet portlet = context.findPortlet(applicationName, name);
-
- //
- String windowId = portlet.getContext().getId() + "." +
response.nextId();
PageNavigationalState pageNS = response.getPageState();
//
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletURLTag.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletURLTag.java 2008-02-08
00:01:29 UTC (rev 9846)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/taglib/PortletURLTag.java 2008-02-08
01:34:25 UTC (rev 9847)
@@ -27,7 +27,6 @@
import org.jboss.portal.portlet.test.jsp.PortalResponse;
import org.jboss.portal.portlet.test.jsp.PagePortletControllerContext;
import org.jboss.portal.portlet.test.controller.PortletURLRenderer;
-import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.controller.impl.state.StateControllerContextImpl;
import org.jboss.portal.portlet.RenderURL;
import org.jboss.portal.portlet.StateString;
@@ -78,7 +77,7 @@
public int doEndTag() throws JspException
{
- PortalResponse response = (PortalResponse)pageContext.getResponse();
+ PortalResponse response = getPortalResponse();
PagePortletControllerContext context = response.getPortletControllerContext();
PortletTag portletTag = (PortletTag)SimpleTagSupport.findAncestorWithClass(this,
PortletTag.class);