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
import org.eclipse.birt.report.model.api.metadata.IChoice;
import org.eclipse.birt.report.model.api.util.StringUtil;
import org.eclipse.jface.resource.JFaceColors;
import org.eclipse.jface.util.Assert;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Text;
/**
 * Group Properties Dialog
 */
public class GroupDialog extends BaseDialog