Bug 147676 [regression]Visibility set in the first col will affect the second col
Description: Visibility set in the first col will affect the second col Steps to reproduce: 1. Insert a grid(3*3), insert contents to each cell. 2.Set the first col to hide all in visibility and preview Expected result: Only the first col is hidden. Actual result: The second col is hidden, too. If you set the second col in step2, the third col will disappear.
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java
_WIDTH,
					column.getW( ) );
			 isEmbeddable )
			{
				 o
				String styleName = column.getStyleClass( );
				 styleName != null )
				{
					IStyle style = report.findStyle( styleName );
					 style != null )
					{
						lder.buildStyle( styleBuffer, style, this );
					}
				}
			}
			ttribute( HTMLTags.ATTR_STYLE, styleBuffer.toString( ) );
			
			 I
			id = column.getInstanceID( );			
			 iid != null )
			{
				ttribute( "iid", iid.toString( ) );
			}
			
			writer.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)
		{
			return colSpan;
		}
		int newColSpan = colSpan;
		for ( int i = 0; i < colSpan; i++ )
		{
			IColumn column = table.getColumn( columnNumber + i );
			 isColumnHidden( column ) )
			{
				newColSpan--;
			}
		}
		return newColSpan;
	}
	
	private ITableContent getTableOfCell( ICellContent cell )
	{
		IElement parent = cell.getParent( );
		while ( parent != null )
		{
			 parent instanceof ITableContent )
			{
				return (ITableContent) parent;
			