if ( cFG == null )
if ( cFG == null || cFG.getAlpha( ) == 0 )
	public void drawArea( AreaRenderEvent are ) throws ChartException	{		// CHECK IF THE LINE ATTRIBUTES ARE CORRECTLY DEFINED		final LineAttributes lia = are.getOutline( );		if ( !validateLineAttributes( are.getSource( ), lia ) )		{			return;		}		// SETUP THE FOREGROUND COLOR (DARKER BACKGROUND IF DEFINED AS NULL)		final Color cFG = (Color) validateEdgeColor( lia.getColor( ),				are.getBackground( ),				_ids );		if ( cFG == null ) // IF UNDEFINED, EXIT		{			return;		}		// BUILD THE GENERAL PATH STRUCTURE		final GeneralPath gp = new GeneralPath( );		PrimitiveRenderEvent pre;		for ( int i = 0; i < are.getElementCount( ); i++ )		{			pre = are.getElement( i );			if ( pre instanceof ArcRenderEvent )			{				final ArcRenderEvent acre = (ArcRenderEvent) pre;				final Arc2D.Double a2d = new Arc2D.Double( acre.getTopLeft( )						.getX( ),						acre.getTopLeft( ).getY( ),						acre.getWidth( ),						acre.getHeight( ),						acre.getStartAngle( ),						acre.getAngleExtent( ),						toSwingArcType( acre.getStyle( ) ) );				gp.append( a2d, true );			}			else if ( pre instanceof LineRenderEvent )			{				final LineRenderEvent lre = (LineRenderEvent) pre;				final Line2D.Double l2d = new Line2D.Double( lre.getStart( )						.getX( ),						lre.getStart( ).getY( ),						lre.getEnd( ).getX( ),						lre.getEnd( ).getY( ) );				gp.append( l2d, true );			}		}		// DRAW THE GENERAL PATH		Stroke sPrevious = null;		Stroke sCurrent = getCachedStroke( lia );		if ( sCurrent != null ) // SOME STROKE DEFINED?		{			sPrevious = _g2d.getStroke( );			_g2d.setStroke( sCurrent );		}		_g2d.setColor( cFG );		_g2d.draw( gp );		if ( sPrevious != null ) // RESTORE PREVIOUS STROKE		{			_g2d.setStroke( sPrevious );		}	}