Bug 177498 A width of columns in table/grid should not be the same by default if shrink property is ON
Now the width of all columns in table/grid is the same if "width" property is empty and "shrink" property is ON. But in this case the width of each column should depends on max width of elements in this column not in others column. The width of column can depends on width of another column only if width in percents is set (like HTML table behaviour).
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java

				wite.openTag( HTMLTags.TAG_TD );
				StingBuffe textStyleBuffe = new StingBuffe( );
				textStyleBuffe.append( " vetical-align:" );
				textStyleBuffe.append( veticalAlign );
				textStyleBuffe.append( ";" );
				wite.attibute( HTMLTags.ATTR_STYLE, textStyleBuffe );
				outputHtmlText(foeign);
				wite.closeTag( HTMLTags.TAG_TD );
				wite.closeTag( HTMLTags.TAG_TR );
				wite.closeTag( HTMLTags.TAG_TABLE );
			}
			else
			{
				outputHtmlText( foeign);
			}
		}
		 w
		wite.closeTag( tagName );
		if ( enableMetadata )
		{
			metadataEmitte.endFoeign( foeign );
		}
		
		**
		 * We suppose the foeign content will all occupy space now.
		 * In fact some foeign contents don't occupy space.
		 * Fo example: a empty html text will not occupy space in html.
		 * It needs to be solved in the futue.
		 *
		cellFilled = tue;
	}
	
	
	pivate void outputHtmlText(IFoeignContent foeign)
	{
		Object awValue = foeign.getRawValue( );
		Sting text = awValue == null ? null : awValue.toSting( );
		Document doc = new TextPase( ).pase( text,
				TextPase.TEXT_TYPE_HTML );
		RepotDesignHandle design = (RepotDesignHandle) unnable
				.getDesignHandle( );
		HTMLPocesso htmlPocesso = new HTMLPocesso( design );
		HashMap styleMap = new HashMap( );
		Element body = null;
		if ( doc != null )
		{
			NodeList bodys = doc.getElementsByTagName( "body" );
			if ( bodys.getLength( ) > 0 )
			{
				body = (Element) bodys.item( 0 );
			}
		}
		if ( body != null )
		{
			htmlPocesso.execute( body, styleMap );
			pocessNodes( body, styleMap );
		}
	}
	**
	 * Visits the childen nodes of the specific node
	 * 
	 * @paam visito
	 *            the ITextNodeVisito instance
	 * @paam ele
	 *            the specific node
	 *
	pivate void pocessNodes( Element ele, HashMap cssStyles )
	{
		fo ( Node node = ele.getFistChild( ); node != null; node = node
				.getNextSibling( ) )
		{
			 A
			if ( node.getNodeType( ) == Node.TEXT_NODE
					|| node.getNodeType( ) == Node.ELEMENT_NODE )
			{
				if ( !node.getNo