Bug 214572 Implement IAggregationCellViewProvider for crosstab/chart integration
This interface implements the model logic for the designer UI, when the users design a crosstab with charts. Note that it is independent from the multi-view feature. /** * Return the name of this view */ String getViewName( ); // this should simply return "chart" /** * Returns if the given aggregation cell matches this view */ boolean matchView( AggregationCellHandle cell ); Returns true if chart is supported in this type of aggregation cell /** * Switches given aggregation cell to this view */ void switchView( AggregationCellHandle cell ); create a chart inside the aggregation cell (and remove the data elements). This method is called when the UI tries to switch the cell contents from data element to chart. /** * Restores given aggregation cell to previous view */ void restoreView( AggregationCellHandle cell );
chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/ChartReportItemImpl.java
* Compare version number, the format of version number should be X.X.X
	 * style.
	 * 
	 * @param va
	 *            version number 1.
	 * @param vb
	 *            version number 2.
	 * @return
	 */
	private static int compareVersion( String va, String vb )
	{
		String[] vas = va.split( "\\." ); 
		String[] vbs = vb.split( "\\." ); 
		List vaList = new ArrayList( );
		for ( int i = 0; i < vas.length; i++ )
		{
			vaList.add( vas[i].trim( ).equals( "" ) ? "0" : vas[i] ); 
		}
		List vbList = new ArrayList( );
		for ( int i = 0; i < vbs.length; i++ )
		{
			vbList.add( vbs[i].trim( ).equals( "" ) ? "0" : vbs[i] ); 
		}
		if ( vas.length < vbs.length )
		{
			for ( int i = vas.length; i < vbs.length; i++ )
			{
				vaList.add( "0" ); 
			}
		}