} else if ( bounds.height < MINIMUM_HEIGHT ) { bounds.height = MINIMUM_HEIGHT;
	public void layout( IFigure parent )	{		Rectangle parentBounds = getInitSize( );		Result result = getReportBounds( parentBounds );		parentBounds = result.reportSize;		parent.setBounds( parentBounds );		List children = parent.getChildren( );		Rectangle clientArea = parent.getClientArea( );		int y = clientArea.y;		int height = clientArea.height;		IFigure figure;		for ( int i = 0; i < children.size( ); i++ )		{			figure = (IFigure) children.get( i );			Rectangle bounds = (Rectangle) getConstraint( figure );			if ( bounds == null )			{				continue;			}			bounds = convertRectangle( bounds, clientArea );			// this is to ensue the child layout can get the correct parent			// client area width.			// TODO: change/use the client layoutManager's			// calculatePrefersize(widthHint, heightHint).			figure.getBounds( ).width = bounds.width;			Dimension preferredSize = figure.getPreferredSize( );			bounds = bounds.getCopy( );			if ( bounds.height <= 0 )			{				bounds.height = Math.max( preferredSize.height, MINIMUM_HEIGHT );			}			else if ( bounds.height < MINIMUM_HEIGHT )			{				bounds.height = MINIMUM_HEIGHT;			}			// adapt the figure's location to make sure it's inside the client			// area.			if ( bounds.height > height )			{				bounds.height = height;			}			if ( bounds.y + bounds.height > height + y || bounds.y < y )			{				bounds.y = height + y - bounds.height;			}			figure.setBounds( bounds );		}		Rectangle rect = new Rectangle( 0, 0, parentBounds.x				+ parentBounds.width				+ result.rightSpace, parentBounds.y				+ parentBounds.height				+ result.bottomSpace );		setViewProperty( rect, parentBounds );	}