package com.opensymphony.module.sitemesh.tapestry;
import com.opensymphony.module.sitemesh.HTMLPage;
import com.opensymphony.module.sitemesh.Page;
import com.opensymphony.module.sitemesh.RequestConstants;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.valid.RenderString;
/**
* This utility class gives easy access to the SiteMesh page, with convenience
* methods for title and property. A common usage would be with OGNL expressions
* like this:
* <p/>
* <html jwcid="@Shell"
* title="ognl:@com.opensymphony.module.sitemesh.tapestry.Util@getTitle()">
* <p/>
* In future versions of Tapestry, thanks to HiveMind integration, this will
* become a lot cleaner, probably like this:
* <p/>
* <html jwcid="@Shell" title="sitemesh:title">
*
* @author Erik Hatcher
*/
public class Util {
public static String getTitle(IRequestCycle cycle) {
return getPage(cycle).getTitle();
}
public static String getProperty(String name, IRequestCycle cycle) {
return getPage(cycle).getProperty(name);
}
public static Page getPage(IRequestCycle cycle) {
return (Page) cycle.getRequestContext().getRequest().getAttribute(
RequestConstants.PAGE);
}
public static IRender getHeadRenderer(IRequestCycle cycle) {
return new RenderString(((HTMLPage) getPage(cycle)).getHead(), true);
}
}