if(!hasNextChild()) { closeExecutor( ); status = STATUS_END; }
	public boolean layout( )	{		boolean hasNextPage = false;		switch ( status )		{			case STATUS_START :				// 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( ) || checkAvailableSpace( ) )				{					status = STATUS_INPROGRESS;					return true;				}				// we need continue to execute.				status = STATUS_INPROGRESS;			case STATUS_INPROGRESS :				hasNextPage = layoutChildren( );				if ( hasNextPage )				{					// there are sill some content to output,					// return to caller to creat the new page.					return true;				}				// we have finished the content and all its children.				closeExecutor( );				status = STATUS_END;				// We need create an extra page for the following elements, so				// return true for next element.				if ( isPageBreakAfter( ) )				{					return true;				}			case STATUS_END :				return false;		}		return hasNextPage;	}