Bug 198270 Copying an aggregate does not make a copy, only a reference
In a table with groups or multiple columns, create an aggregate in a footer or a header. Copy the aggregate to another cell in a footer or a header. Make changes to the new aggregate appropriate to its new location. Expected result: The changes appear in only the new copy of the aggregate. Actual result: The changes appear in both aggregates because the new aggregate is not a copy, but a reference to the same aggregate as the original.
UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/dialogs/BindingDialogHelper.java
if ( cmbDataField.isEnabled( ) )
				this.newBinding.setExpression( cmbDataField.getText( ) );
			this.newBinding.setAggregateFunction( getFunctionByDisplayName( cmbFunction.getText( ) ).getName( ) );
			this.newBinding.setFilterExpression( txtFilter.getText( ) );
			if ( btnTable.getSelection( ) )
			{
				this.newBinding.setAggregateOn( null );
			}
			else
			{
				this.newBinding.setAggregateOn( cmbGroup.getText( ) );
			}
			this.binding = DEUtil.addColumn( getBindingHolder( ),
					this.newBinding,
					true );
			for ( Iterator iterator = argsMap.keySet( ).iterator( ); iterator.hasNext( ); )
			{
				String arg = (String) iterator.next( );
				AggregationArgument argHandle = StructureFactory.createAggregationArgument( );
				argHandle.setName( getArgumentByDisplayName( this.binding.getAggregateFunction( ),
						arg ) );
				argHandle.setValue( ( (Text) argsMap.get( arg ) ).getText( ) );
				this.binding.addArgument( argHandle );
			}
		}
		else
		{
			if ( cmbDataField.getText( ) != null
					&& cmbDataField.getText( ).trim( ).length( ) == 0
					&& cmbDataField.isEnabled( ) )