Bug 152834 support HTML description of the template
The template descrition is a fragment of HTML, use that fragment to render the template in HTML.
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java
;
	}
	protected void Columns( ITableContent table )
	{
		for ( int i = 0; i < table.getColumnCount( ); i++ )
		{
			IColumn column = table.getColumn( i );
			
			 ( isColumnHidden( column ) )
			{
				continue;
			}
			r.openTag( HTMLTags.TAG_COL );
			setStyleName( column.getStyleClass( ) );
			 w
			StringBuffer styleBuffer = new StringBuffer( );
			AttributeBuilder.buildSize( styleBuffer, HTMLTags.ATTR_WIDTH,
					column.getW( ) );
			 ( isEmbeddable )
			{
				 o
				String styleName = column.getStyleClass( );
				 ( styleName != null )
				{
					IStyle style = report.findStyle( styleName );
					 ( style != null )
					{
						AttributeBuilder.buildStyle( styleBuffer, style, this );
					}
				}
			}
			r.attribute( HTMLTags.ATTR_STYLE, styleBuffer.toString( ) );
			
			 I
			InstanceID iid = column.getInstanceID( );			
			 ( iid != null )
			{
				r.attribute( "iid", iid.toString( ) );
			}
			
			r.closeNoEndTag( );
		}
	}
	
	**
	 * Pushes the Boolean indicating whether or not the item is hidden according	 
	 * @param hidden
	 *
	public void push( boolean hidden )
	{		
		boolean isHidden = false;
		 ( !stack.empty( ) )
		{
			isHidden = ( (Boolean) stack.peek( ) ).booleanValue( );
		}
		 ( !isHidden )
		{
			isHidden = hidden;
		}
		stack.push( new Boolean( isHidden ) );		
	}
	
	**
	 * check whether to hide the column.
	 * @param column
	 * @return
	 *
	private boolean isColumnHidden( IColumn column )
	{
		String formats = column.getVisibleFormat( );
		 ( formats != null
				&& ( formats.indexOf( EngineIRConstants.FORMAT_TYPE_VIEWER ) >= 0 || formats
						.indexOf( BIRTConstants.BIRT_ALL_VALUE ) >= 0 ) )
		{
			return true;
		}
		return false;
	}
	
	**
	 * get the new colspan of the cell 
	 * by checking the relational columns.
	 * @param column
	 * @return
	 *
	private int getNewColSpan( ICellContent cell )
	{
		int columnNumber = cell.getColumn( );
		int colSpan = cell.getColSpan( );
		ITableContent table = getTableOfCell(cell);
		 (table == null)
		{
			