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
uteBuilder.checkHyperlinkTextDecoration( mergedStyle,
					styleBuffer );
		}
		else
		{
			tagName = openTagByType( display, DISPLAY_FLAG_ALL );
			setDisplayProperty( display, DISPLAY_INLINE_BLOCK, styleBuffer );
		}
		setStyleName( foreign.getStyleClass( ) );
		
		setB( tagName, foreign.getB( ) );
		 title
		ttribute( HTMLTags.ATTR_TITLE, foreign.getHelpText( ) );
		 check 'can-shrink' property
		handleShrink( display, mergedStyle, height, w, styleBuffer );
		handleStyle( foreign, styleBuffer, false );
		Object rawValue = foreign.getRawValue( );
		String rawType = foreign.getRawType( );
		boolean isHtml = IForeignContent.HTML_TYPE.equalsIgnoreCase( rawType );
		String text = rawValue == null ? null : rawValue.toString( );
		 isHtml )
		{
			Document doc = new TextParser( ).parse( text,
					TextParser.TEXT_TYPE_HTML );
			ReportDesignHandle design = (ReportDesignHandle) runnable
					.getDesignHandle( );
			HTMLProcessor htmlProcessor = new HTMLProcessor( design );
			HashMap styleMap = new HashMap( );
			Element body = null;
			 doc != null )
			{
				NodeList bodys = doc.getElementsByTagName( "body" );
				 bodys.getLength( ) > 0 )
				{
					body = (Element) bodys.item( 0 );
				}
			}
			 body != null )
			{
				htmlProcessor.execute( body, styleMap );
				processNodes( body, styleMap );
			}
		}
		 w
		writer.closeTag( tagName );
	}
	**
	 * Visits the children nodes of the specific node
	 * 
	 * @param visitor
	 *            the ITextNodeVisitor instance
	 * @param ele
	 *            the specific node
	 *
	private void processNodes( Element ele, HashMap cssStyles )
	{
		for ( Node node = ele.getFirstChild( ); node != null; node = node
				.getNextSibling( ) )
		{
			 A
			 node.getNodeType( ) == Node.TEXT_NODE
					|| node.getNodeType( ) == Node.ELEMENT_NODE )
			{
				 !node.getNodeName( ).equals( "#text" ) )
				{
					startNode( node, cssStyles );
				}
				 node.getNodeType( ) == Node.TEXT_NODE )
				{
					b
				  
					writer.textForHtmlItem( node.getN