Bug 122177 Add input for IntervalBase to Group Editor
BIRT model's group definition has one important property: IntervalBase (see GroupHandle.setIntervalBase). This property controls how interval-based grouping picks the range of its initial group, and is an important part of range-based grouping. BIRT designer's Group Details editor should allow user to edit IntervalBase for a group. This is how the editor should work: * IntervalBase options should be presented only if "Interval" is not "None". (Since IntervalBase only makes sense for interval-based grouping) * IntervalBase should be presented in conjunction with checkbox. When it is unchecked (maps to a NULL IntervalBase value), Data Engine dynamically picks a base value using the first group key value in the result set. When it is checked, the user should input a base value. The following is a suggested look of the UI control: [ ] Use fixed base value for interval: _______________ ( [] is a checkbox, underline ___ is a textbox ).
UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/ui/dialogs/GroupDialog.java
public GroupDialog( Shell parentShell, String title )
	{
		super( parentShell, title );
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
	 */
	protected Control createDialogArea( Composite parent )
	{
		Assert.isNotNull( dataSetList );
		Composite topComposite = (Composite) super.createDialogArea( parent );
		createTitleArea( topComposite );
		Composite composite = new Composite( topComposite, SWT.NONE );
		composite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
		composite.setLayout( new GridLayout( 2, true ) );
		createFieldArea( composite );
		createGroupArea( composite );
		createTOCArea( composite );
		createFilterSortingArea( topComposite );
		return topComposite;
	}
	private void createTOCArea( Composite parent )
	{
		Composite composite = new Composite( parent, SWT.NONE );
		composite.setLayout( new GridLayout( ) );
		GridData gd = new GridData( GridData.FILL_BOTH );
		gd.widthHint = 200;
		composite.setLayoutData( gd );