status = STATUS_END;
	public boolean layout( )	{		switch ( status )		{			case STATUS_INTIALIZE:				// this element is in-visible, just as it doesn't exits.				// we must tranverse all its children (to let the generate				// engine create all the content).				if ( handleVisibility( ) )				{					status = STATUS_END;					return false;				}				// we need put it in the new page or there is no				// space for the content.				if ( isPageBreakBefore( ) )				{					status = STATUS_START;					context.endContentWithPageBreak( null );					return true;				}							case STATUS_START :				//it is the first time we handle the content				context.startContent(content);			case STATUS_INPROGRESS :				if (status == STATUS_INPROGRESS)				{					context.continueContent(content);				}				start( );				boolean hasNext = layoutChildren( );				end( );				if ( hasNext )				{					// there are sill some content to output,					// return to caller to creat the new page.					status = STATUS_INPROGRESS;					context.endContentWithPageBreak(content);					return true;				}				status = STATUS_END;				context.endContent(content);				// We need create an extra page for the following elements, so				// return true for next element.				if ( isPageBreakAfter( ) )				{					return true;				}				return false;		}		return false;	}