iscInterval.addListener( this );
iscInterval.setSelection( iGroupInterval ); iscInterval.addSelectionListener( this );
	private void placeComponents( )	{		// Layout for content composite		GridLayout glContent = new GridLayout( );		glContent.numColumns = 4;		glContent.horizontalSpacing = 5;		glContent.verticalSpacing = 5;		glContent.marginWidth = 7;		glContent.marginHeight = 7;		this.setLayout( new FillLayout( ) );		// Content composite		grpContent = new Group( this, SWT.NONE );		grpContent.setLayout( glContent );		grpContent.setText( Messages.getString( "SeriesGroupingComposite.Lbl.Grouping" ) ); //$NON-NLS-1$		btnEnabled = new Button( grpContent, SWT.CHECK );		GridData gdBTNEnabled = new GridData( GridData.HORIZONTAL_ALIGN_BEGINNING );		gdBTNEnabled.horizontalSpan = 4;		btnEnabled.setLayoutData( gdBTNEnabled );		btnEnabled.setText( Messages.getString( "SeriesGroupingComposite.Lbl.Enabled" ) ); //$NON-NLS-1$		btnEnabled.addSelectionListener( this );		if ( sd.eIsSet( DataPackage.eINSTANCE.getSeriesDefinition_Grouping( ) ) )		{			btnEnabled.setSelection( getGrouping( ).isEnabled( ) );		}		else		{			btnEnabled.setSelection( false );		}		boolean bEnableUI = btnEnabled.getSelection( );		lblType = new Label( grpContent, SWT.NONE );		GridData gdLBLType = new GridData( );		lblType.setLayoutData( gdLBLType );		lblType.setText( Messages.getString( "SeriesGroupingComposite.Lbl.Type" ) ); //$NON-NLS-1$		lblType.setEnabled( bEnableUI & bTypeEnabled );		cmbType = new Combo( grpContent, SWT.DROP_DOWN | SWT.READ_ONLY );		GridData gdCMBType = new GridData( GridData.FILL_HORIZONTAL );		cmbType.setLayoutData( gdCMBType );		cmbType.addSelectionListener( this );		cmbType.setEnabled( bEnableUI & bTypeEnabled );		lblUnit = new Label( grpContent, SWT.NONE );		GridData gdLBLUnit = new GridData( );		lblUnit.setLayoutData( gdLBLUnit );		lblUnit.setText( Messages.getString( "SeriesGroupingComposite.Lbl.Unit" ) ); //$NON-NLS-1$		cmbUnit = new Combo( grpContent, SWT.DROP_DOWN | SWT.READ_ONLY );		GridData gdCMBUnit = new GridData( GridData.FILL_HORIZONTAL );		cmbUnit.setLayoutData( gdCMBUnit );		cmbUnit.addSelectionListener( this );		lblInterval = new Label( grpContent, SWT.NONE );		GridData gdLBLInterval = new GridData( );		lblInterval.setLayoutData( gdLBLInterval );		lblInterval.setText( Messages.getString( "SeriesGroupingComposite.Lbl.Interval" ) ); //$NON-NLS-1$		int iGroupInterval = 2;		if ( sd.getGrouping( ) != null )		{			iGroupInterval = sd.getGrouping( ).getGroupingInterval( );		}		iscInterval = new IntegerSpinControl( grpContent,				SWT.NONE,				iGroupInterval );		GridData gdISCInterval = new GridData( GridData.FILL_HORIZONTAL );		iscInterval.setLayoutData( gdISCInterval );		iscInterval.setMinimum( 0 );		iscInterval.setToolTipText( Messages.getString( "SeriesGroupingComposite.Tooltip.SelectIntervalForGrouping" ) ); //$NON-NLS-1$		iscInterval.addListener( this );		Label lblDummy = new Label( grpContent, SWT.NONE );		GridData gdLBLDummy = new GridData( GridData.FILL_HORIZONTAL );		gdLBLDummy.horizontalSpan = 2;		lblDummy.setLayoutData( gdLBLDummy );		// Layout for aggregate composite		GridLayout glAggregate = new GridLayout( );		glAggregate.numColumns = 2;		glAggregate.marginHeight = 0;		glAggregate.marginWidth = 0;		glAggregate.horizontalSpacing = 5;		glAggregate.verticalSpacing = 5;		Composite cmpAggregate = new Composite( grpContent, SWT.NONE );		GridData gdCMPAggregate = new GridData( GridData.FILL_HORIZONTAL );		gdCMPAggregate.horizontalSpan = 2;		cmpAggregate.setLayoutData( gdCMPAggregate );		cmpAggregate.setLayout( glAggregate );		lblAggregate = new Label( cmpAggregate, SWT.NONE );		GridData gdLBLAggregate = new GridData( );		lblAggregate.setLayoutData( gdLBLAggregate );		lblAggregate.setText( Messages.getString( "SeriesGroupingComposite.Lbl.AggregateExpression" ) ); //$NON-NLS-1$		cmbAggregate = new Combo( cmpAggregate, SWT.DROP_DOWN | SWT.READ_ONLY );		cmbAggregate.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );		cmbAggregate.addSelectionListener( this );		populateLists( );	}