| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <!-- $Id$ --> |
| <html> |
| <head> |
| <title>RenderBlock</title> |
| <link rel="stylesheet" type="text/css" href="Tapestry.css" title="style"> |
| </head> |
| |
| <body> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr> |
| <td align="left"><A href="RadioGroup.html"><IMG alt=RadioGroup src="common-images/prev.png"></A></td> |
| <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></A></td> |
| <td align="right"><A href="RenderBody.html"><IMG alt=RenderBody src="common-images/next.png"></A></td> |
| <tr> |
| <tr> |
| <td colspan="3"><hr></td> |
| </tr> |
| <tr> |
| <td colspan="3"> |
| <table border="0" cellpadding="4" cellspacing="4" width="100%"> |
| |
| <tr valign="top"> |
| <td> |
| <table> |
| <tr> |
| <td><font size="+2"><b>RenderBlock</b></font></td> |
| </tr> |
| <tr> |
| <td> |
| <A href="../api/org/apache/tapestry/components/RenderBlock.html"> |
| org.apache.tapestry.components.RenderBlock</A> |
| </td> |
| </tr> |
| </table> |
| </td> |
| <td> |
| <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8"> |
| <tr> |
| <td>Non Visual Component</td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| |
| <tr valign="center"> |
| <td colspan="2"> </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>Description</b> |
| <br> |
| Renders |
| |
| the text and components wrapped by the specified |
| <A href="Block.html">Block</A> component. |
| <p> |
| Please see the <A href="../api/org/apache/tapestry/components/RenderBlock.html"> |
| <tt>RenderBlock</tt></A> API for a complete |
| discription on how the RenderBlock renders.</p> |
| <P>Prior to release 2.2, this component was named |
| <STRONG>InsertBlock</STRONG>.</P> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>See Also</b> |
| <br> |
| <A href="Block.html">Block</A>, |
| <A href="Insert.html">Insert</A>, |
| <A href="InsertText.html">InsertText</A>, |
| <a href="RenderBody.html">RenderBody</a> |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>Parameters</b> |
| <br> |
| <table border="1" cellpadding="4" cellspacing="4" class="parameters"> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Direction</th> |
| <th>Required</th> |
| <th>Default</th> |
| <th>Description</th> |
| </tr> |
| <tr> |
| <td>block</td> |
| <td><A href="Block.html">Block</A></td> |
| <td>in</td> |
| <td>no</td> |
| <td> </td> |
| <td>The Block whose contents are to be rendered.</td> |
| </tr> |
| </table> |
| <P>Body: <STRONG>removed</STRONG><BR>Informal parameters: |
| <STRONG>allowed</STRONG> |
| <br> |
| Reserved |
| parameters: <EM>none</EM> </P> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>Examples</b> |
| <p> This example shows a page with a custom TabPanel component. When |
| a user selects a tab, TabPanel switches content. Each tab content |
| is defined by a Block.</p> |
| <table class="tapestry-examples" border="0" width="350" cellspacing="0" cellpadding="0"> |
| <tr> |
| <td width="10"> </td> |
| <td> |
| <table border="0" cellspacing="0" cellpadding="5"> |
| <tr> |
| <td bgcolor="#FFFF00"> |
| |
| Berlin |
| |
| </td> <td width="1"></td> |
| |
| <td bgcolor="#CCFFFF"> |
| Rome |
| </td> <td width="1"></td> |
| |
| <td bgcolor="#CCFFFF"> |
| Tokyo |
| </td> <td width="1"></td> |
| </tr> |
| </table> |
| </td> |
| <td width="10" > </td> |
| </tr> |
| |
| |
| <tr> |
| <td colspan="3" bgcolor="#00CC33" height="5"> </td> |
| </tr> |
| |
| <tr> |
| <td width="10" bgcolor="#00CC33"> </td> <td align="center"> |
| <H1>Berlin</H1> |
| </td> |
| <td width="10" bgcolor="#00CC33"> </td> |
| </tr> |
| |
| <tr> |
| <td colspan="3" bgcolor="#00CC33" height="5"> </td> |
| </tr> |
| |
| </table> |
| <br> |
| <pre><html title="TabPanel Test"><br> <body><br> <span jwcid="@TabPanel" blockNames='ognl:{"Berlin", "Rome", "Tokyo"}' selectColor="#FFFF00" unSelectColor="#CCFFFF" borderColor="#00CC33"/><br> <span jwcid="Berlin@<a href="Block.html">Block</a>"><br> <H1>Berlin</H1><br> </span><br> <span jwcid="Rome@<a href="Block.html">Block</a>"><br> <H1>Rome</H1><br> </span><br> <span jwcid="Tokyo@<a href="Block.html">Block</a>"><br> <H1>Tokyo</H1><br> </span><br> </body><br></html> |
| </pre> |
| <br> |
| TabPanel.html |
| <pre><table border="0" width="50%" cellspacing="0" cellpadding="0"><br> <tr><br> <td width="10">&nbsp;</td><br> <td><br> <table border="0" cellspacing="0" cellpadding="5"><br> <tr><br> <span jwcid="foreach@Foreach" source="ognl:blockNames" value="ognl:currentBlock"><br> <td jwcid="@Any" element="td" bgcolor="ognl:tabCellColor"><br> <a jwcid="link"><br> <span jwcid="@Insert" value="ognl:components.foreach.value">Tab Title</span><br> </a><br> </td><br> <td width="1"></td><br> </span><br> </tr><br> </table><br> </td><br> <td width="10">&nbsp;</td><br> </tr><br> <tr><br> <td jwcid="@Any" element="td" height="5" bgcolor="ognl:borderColor" colspan="3">&nbsp;</td><br> </tr><br> <tr><br> <td jwcid="@Any" element="td" width="10" bgcolor="ognl:borderColor">&nbsp;</td><br> <td align="center"><br> <span jwcid="@<a href="RenderBlock.html">RenderBlock</a>" block='ognl:block'>Page content goes here</span><br> </td><br> <td jwcid="@Any" element="td" width="10" bgcolor="ognl:borderColor">&nbsp;</td><br> </tr><br> <tr><br> <td jwcid="@Any" element="td" height="5" bgcolor="ognl:borderColor" colspan="3">&nbsp;</td><br> </tr><br></table><br> |
| </pre> |
| <br> |
| TabPanel.jwc |
| <pre><?xml version="1.0" encoding="UTF-8"?><br><!DOCTYPE component-specification<br> PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"<br> "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd"><br><br><component-specification class="spoc.components.TabPanel" allow-body="no" allow-informal-parameters="no"><br> <property-specification name="selectedBlock" type="java.lang.String"/><br> <property-specification name="currentBlock" type="java.lang.String"/><br> |
| <parameter name="blockNames" direction="in" type="java.util.List" required="yes"/><br> <parameter name="borderColor" direction="in" type="java.lang.String" required="yes"/><br> <parameter name="selectColor" direction="in" type="java.lang.String" required="no"/><br> <parameter name="unSelectColor" direction="in" type="java.lang.String" required="no"/><br><br> <component id="link" type="DirectLink"><br> <binding name="listener" expression="listeners.selectBlock"/><br> <binding name="parameters" expression="components.foreach.value"/><br> <binding name="disabled" expression="currentBlock == selectedBlock"/><br> <binding name="stateful" expression="false"/><br> </component><br><br></component-specification><br> |
| </pre> |
| <br> |
| TabPanel.java |
| <pre>package com.dsconsulting.tapestry.components; |
| |
| import org.apache.tapestry.BaseComponent; |
| import org.apache.tapestry.IRequestCycle; |
| import org.apache.tapestry.components.Block; |
| |
| import java.util.List; |
| |
| |
| public abstract class TabPanel extends BaseComponent { |
| |
| |
| public static final String DEFAULT_SELECT_COLOR = "#7D000D";<br> public static final String DEFAULT_UNSELECT_COLOR = "#C0C0C0";<br> |
| private List _blockNames;<br> |
| public List getBlockNames() {<br> return _blockNames;<br> }<br> |
| public void setBlockNames(List value) {<br> _blockNames = value;<br> if (getSelectedBlock() == null) {<br> String defaultComponent = getDefaultBlock();<br> setSelectedBlock(defaultComponent);<br> setCurrentBlock(defaultComponent);<br> }<br> }<br> |
| public String getTabCellColor() {<br> String selectColor = getSelectColor();<br> String unSelectColor = getUnSelectColor();<br> return getCurrentBlock().equals(getSelectedBlock()) ?<br> selectColor != null ? selectColor : DEFAULT_SELECT_COLOR :<br> unSelectColor != null ? unSelectColor : DEFAULT_UNSELECT_COLOR;<br> }<br> |
| public void selectBlock(IRequestCycle cycle) {<br> String block = (String) cycle.getServiceParameters()[0];<br> setSelectedBlock(block);<br> fireObservedChange("selectedBlock", block);<br> }<br> |
| public Block getBlock() {<br> return (Block) getPage().getComponent(getSelectedBlock());<br> }<br> |
| public String getDefaultBlock() {<br> List tabComponents = getBlockNames();<br> return tabComponents != null ? (String)tabComponents.get(0) : null;<br> }<br> |
| public abstract String getSelectColor();<br> public abstract String getUnSelectColor();<br> |
| public abstract String getSelectedBlock();<br> public abstract void setSelectedBlock(String value);<br> |
| public abstract String getCurrentBlock();<br> public abstract void setCurrentBlock(String value);<br> |
| } |
| </pre> |
| </td> |
| </tr></table> |
| </td></tr> |
| <tr> |
| <td colspan="3"><hr></td> |
| </tr> |
| <tr> |
| <td align="left"><A href="RadioGroup.html"><IMG alt=RadioGroup src="common-images/prev.png"></A></td> |
| <td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></A></td> |
| <td align="right"><A href="RenderBody.html"><IMG alt=RenderBody src="common-images/next.png"></A></td> |
| </tr> |
| </table> |
| |
| </body> |
| </html> |