Bug 129792 BIDI3.2: [HCG] HTML/Web/PDF viewers are not mirrored
This is very specific BiDi issue related to the ability of the product to mirror its interface (and sometimes alter other aspects of its behavior) when Eclipse is started with option "-dir rtl" 1. Start eclipse with "-dir rtl" option 2. Create any Report 3. Preview it using Web/HTML/PDF options Result: The layout of report as it appear in the Eclipse in the Layout tab and as it appears in HTML/PDF are different. While on Layout tab the report is mirrored on HTML/PDF it is not.
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java
Code( "				<pre id=\"error_detail" + index
				+ "\" style=\"display:none;\" >" );
		ArrayList errorList = info.getErrorList( );
		ArrayList countList = info.getCountList( );
		for ( int i = 0; i < errorList.size( ); i++ )
		{
			BirtException ex = (BirtException) errorList.get( i );
			String messageTitle = rc.getMessage(
					MessageConstants.REPORT_ERROR_ID, new Object[]{
							new Integer( i ), ex.getErrorCode( ),
							countList.get( i )} );
			String detailTag = rc
					.getMessage( MessageConstants.REPORT_ERROR_DETAIL );
			String messageBody = getDetailMessage( ex );
			boolean indent = writer.isIndent( );
			writer.setIndent( false );
			writer.text( messageTitle, false );
			writer.writeCode( "\r\n" );
			writer.text( detailTag, false );
			writer.text( messageBody, false );
			writer.setIndent( indent );
		}
		writer.writeCode( "				<pre>" );
		writer.writeCode( "		<div>" ); 
	}
	private String getDetailMessage( Throwable t )
	{
		StringWriter out = new StringWriter( );
		PrintWriter print = new PrintWriter( out );
		try
		{
			t.printStackTrace( print );
		}
		catch ( Throwable ex )
		{
		}
		print.flush( );
		return out.getBuffer( ).toString( );
	}
	protected boolean outputErrors( List errors )
	{
		
		 errors != null && !errors.isEmpty( ) )
		{
			writer.writeCode( "	<hr style=\"color:red\">" );
			writer.writeCode( "	<div style=\"color:red\">" );
			writer.writeCode( "		<div>" );
			writer.text( EngineResourceHandle.getInstance( ).getMessage(
					MessageConstants.ERRORS_ON_REPORT_PAGE ), false );
			writer.writeCode( "<div>" );
			Iterator it = errors.iterator( );
			int index = 0;
			while ( it.hasNext( ) )
			{
				appendErrorMessage( index++, (ElementExceptionInfo) it.next( ) );
			}
			writer.writeCode( "<div>" );
			return true;
		}
		return false;
	}
	*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.birt.report.engine.emitter.IContentEmitter#end(org.eclipse.birt.report.engine.content.IReportContent)
	 *
	public void end( IReportContent report )
