org.apache.tapestry.components
Class RenderBlock

java.lang.Object
  extended by org.apache.tapestry.spec.BaseLocatable
      extended by org.apache.tapestry.AbstractComponent
          extended by org.apache.tapestry.components.RenderBlock
All Implemented Interfaces:
IComponent, ILocatable, ILocationHolder, IRender

public abstract class RenderBlock
extends AbstractComponent

Renders the text and components wrapped by a Block component. [Component Reference]

It is possible for an RenderBlock to obtain a Block from a page other than the render page. This works, even when the Block contains links, forms and form components. The action and direct services will create URLs that properly address this situation.

However, because the rendering page can't know ahead of time about these foriegn Blocks, PageRenderListener methods (for components and objects of the foriegn page) via RenderBlock will not be executed. This specifically affects the methods of the PageRenderListener interface.

Before rendering its Block, RenderBlock will set itself as the Block's inserter, and will reset the inserter after the Block is rendered. This gives the components contained in the Block access to its inserted environment via the RenderBlock. In particular this allows the contained components to access the informal parameters of the RenderBlock which effectively allows parameters to be passed to the components contained in a Block.

Version:
$Id: RenderBlock.java 243791 2004-02-19 17:38:13Z hlship $
Author:
Howard Lewis Ship

Constructor Summary
RenderBlock()
           
 
Method Summary
abstract  Block getBlock()
           
protected  void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
          If block is not null, then the block's inserter is set (to this), IComponent.renderBody(IMarkupWriter, IRequestCycle) is invoked on it, and the Block's inserter is set back to its previous state.
 
Methods inherited from class org.apache.tapestry.AbstractComponent
addAsset, addBody, addComponent, cleanupAfterRender, finishLoad, finishLoad, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, fireObservedChange, format, format, format, format, formatString, formatString, formatString, formatString, generateAttributes, getAsset, getAssets, getBeans, getBinding, getBindingNames, getBindings, getBody, getBodyCount, getChangeObserver, getComponent, getComponents, getContainer, getExtendedId, getId, getIdPath, getListeners, getMessage, getMessages, getNamespace, getPage, getProperty, getSpecification, getString, pageEndRender, prepareForRender, render, renderBody, renderInformalParameters, setBinding, setContainer, setId, setNamespace, setPage, setProperty, setSpecification, toString
 
Methods inherited from class org.apache.tapestry.spec.BaseLocatable
getLocation, setLocation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.tapestry.ILocationHolder
setLocation
 
Methods inherited from interface org.apache.tapestry.ILocatable
getLocation
 

Constructor Detail

RenderBlock

public RenderBlock()
Method Detail

renderComponent

protected void renderComponent(IMarkupWriter writer,
                               IRequestCycle cycle)
If block is not null, then the block's inserter is set (to this), IComponent.renderBody(IMarkupWriter, IRequestCycle) is invoked on it, and the Block's inserter is set back to its previous state.

Specified by:
renderComponent in class AbstractComponent

getBlock

public abstract Block getBlock()