for ( int i = 0; i < al.size( ) - 1; i++ )
for ( int i = 1; i < al.size( ); i++ )
	protected void addNewSeriesDefinition( )	{		// Create a series definition without data definition		SeriesDefinition sdTmp = SeriesDefinitionImpl.create( );		sdTmp.getSeriesPalette( ).update( -seriesDefns.size( ) );		sdTmp.getSeries( )				.add( EcoreUtil.copy( ( (SeriesDefinition) seriesDefns.get( 0 ) ).getDesignTimeSeries( ) ) );		// Add grouping query of the first series definition		sdTmp.setQuery( (Query) EcoreUtil.copy( ( (SeriesDefinition) seriesDefns.get( 0 ) ).getQuery( ) ) );		cleanDataDefinition( sdTmp );		sdTmp.eAdapters( )				.addAll( ( (SeriesDefinition) seriesDefns.get( 0 ) ).eAdapters( ) );		int firstIndex = getFirstIndexOfSameAxis( );		EList list = getChart( ).getSampleData( ).getOrthogonalSampleData( );		// Create a new OrthogonalSampleData instance from the existing one		OrthogonalSampleData sdOrthogonal = (OrthogonalSampleData) EcoreUtil.copy( (EObject) list.get( firstIndex ) );		sdOrthogonal.setSeriesDefinitionIndex( ChartUIUtil.getLastSeriesIndexWithinAxis( getChart( ),				axisIndex ) + 1 );		sdOrthogonal.eAdapters( ).addAll( getChart( ).getSampleData( )				.eAdapters( ) );		// Update the Sample Data without event fired.		boolean isNotificaionIgnored = ChartAdapter.isNotificationIgnored( );		ChartAdapter.ignoreNotifications( true );				int sdIndex = sdOrthogonal.getSeriesDefinitionIndex( );		ArrayList al = new ArrayList( );		if ( sdIndex >= list.size( ) )		{			list.add( sdOrthogonal );		}		else		{			for ( int i = sdIndex; i < list.size( ); i++ )			{				al.add( list.get( i ) );			}			list.set( sdIndex, sdOrthogonal );			for ( int i = 0; i < al.size( ) - 1; i++ )			{				list.set( i + 1 + sdIndex, al.get( i ) );			}			list.add( al.get( al.size( ) - 1 ) );		}				ChartAdapter.ignoreNotifications( isNotificaionIgnored );		seriesDefns.add( sdTmp );	}