"exception.undefined.text.color",
"SwtTextRenderer.exception.undefined.text.color",
	public final void renderTextInBlock( IDeviceRenderer idr, Bounds boBlock,			TextAlignment taBlock, Label la ) throws ChartException	{		Text t = la.getCaption( );		String sText = t.getValue( );		ColorDefinition cdText = t.getColor( );		if ( cdText == null )		{			throw new ChartException( ChartDeviceSwtActivator.ID,					ChartException.RENDERING,					"exception.undefined.text.color", //$NON-NLS-1$					ResourceBundle.getBundle( Messages.DEVICE_SWT,							_sxs.getLocale( ) ) );		}		final GC gc = (GC) idr.getGraphicsContext( );		la.getCaption( ).setValue( sText );		BoundingBox bb = null;		try		{			bb = Methods.computeBox( _sxs, ABOVE, la, 0, 0 );		}		catch ( IllegalArgumentException uiex )		{			throw new ChartException( ChartDeviceSwtActivator.ID,					ChartException.RENDERING,					uiex );		}		if ( taBlock == null )		{			taBlock = AttributeFactory.eINSTANCE.createTextAlignment( );			taBlock.setHorizontalAlignment( HorizontalAlignment.CENTER_LITERAL );			taBlock.setVerticalAlignment( VerticalAlignment.CENTER_LITERAL );		}		HorizontalAlignment haBlock = taBlock.getHorizontalAlignment( );		VerticalAlignment vaBlock = taBlock.getVerticalAlignment( );		switch ( haBlock.getValue( ) )		{			case HorizontalAlignment.CENTER :				bb.setLeft( boBlock.getLeft( )						+ ( boBlock.getWidth( ) - bb.getWidth( ) )						/ 2 );				break;			case HorizontalAlignment.LEFT :				bb.setLeft( boBlock.getLeft( ) );				break;			case HorizontalAlignment.RIGHT :				bb.setLeft( boBlock.getLeft( )						+ boBlock.getWidth( )						- bb.getWidth( ) );				break;		}		switch ( vaBlock.getValue( ) )		{			case VerticalAlignment.TOP :				bb.setTop( boBlock.getTop( ) );				break;			case VerticalAlignment.CENTER :				bb.setTop( boBlock.getTop( )						+ ( boBlock.getHeight( ) - bb.getHeight( ) )						/ 2 );				break;			case VerticalAlignment.BOTTOM :				bb.setTop( boBlock.getTop( )						+ boBlock.getHeight( )						- bb.getHeight( ) );				break;		}		// RENDER Shadow around the text label		if ( ChartUtil.isShadowDefined( la ) )		{			try			{				final ITextMetrics itm = new SwtTextMetrics( _sxs, la );				final double dFH = itm.getFullHeight( );				Location tmpLoc = Methods.computeRotatedTopPoint( _sxs,						bb,						la,						dFH );				renderShadowAtLocation( idr, IConstants.ABOVE, tmpLoc, la );			}			catch ( IllegalArgumentException uiex )			{				throw new ChartException( ChartDeviceSwtActivator.ID,						ChartException.RENDERING,						uiex );			}		}		if ( la.getCaption( ).getFont( ).getRotation( ) == 0				|| R31Enhance.isR31Available( ) )		{			renderHorizontalText( gc, la, bb.getLeft( ), bb.getTop( ) );		}		else		{			final Image imgText = rotatedTextAsImage( la );			gc.drawImage( imgText, (int) bb.getLeft( ), (int) bb.getTop( ) );			imgText.dispose( );		}		renderBorder( gc,				la,				IConstants.ABOVE,				LocationImpl.create( bb.getLeft( ) + bb.getHotPoint( ),						bb.getTop( ) + bb.getHeight( ) ) );	}