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
public void createContent( Composite parent )
	{
		isCreate = getBinding( ) == null;
		isRef = getBindingHolder( ).getDataBindingType( ) == ReportItemHandle.DATABINDING_TYPE_REPORT_ITEM_REF;
		composite = parent;
		( (GridLayout) composite.getLayout( ) ).numColumns = 3;
		GridData gd = new GridData( GridData.FILL_BOTH );
		gd.widthHint = 380;
		if ( isAggregate( ) )
		{
			gd.heightHint = 320;
		}
		else
		{
			gd.heightHint = 150;
		}
		composite.setLayoutData( gd );
		new Label( composite, SWT.NONE ).setText( NAME );
		if ( isRef )
		{
			cmbName = new Combo( composite, SWT.BORDER | SWT.READ_ONLY );
			cmbName.setLayoutData( new GridData( GridData.FILL_HORIZONTAL
					| GridData.GRAB_HORIZONTAL ) );
			cmbName.addSelectionListener( new SelectionAdapter( ) {
				public void widgetSelected( SelectionEvent e )
				{
					String bindingName = cmbName.getItem( cmbName.getSelectionIndex( ) );
					for ( Iterator iterator = getBindingHolder( ).getDataBindingReference( )
							.getColumnBindings( )
							.iterator( ); iterator.hasNext( ); )