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
package org.eclipse.birt.report.designer.ui.dialogs;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.birt.report.designer.core.model.views.data.DataSetItemModel;
import org.eclipse.birt.report.designer.internal.ui.dialogs.BaseDialog;
import org.eclipse.birt.report.designer.internal.ui.dnd.InsertInLayoutUtil;
import org.eclipse.birt.report.designer.internal.ui.util.DataSetManager;
import org.eclipse.birt.report.designer.internal.ui.util.ExceptionHandler;
import org.eclipse.birt.report.designer.internal.ui.util.UIUtil;
import org.eclipse.birt.report.designer.internal.ui.views.attributes.page.FilterHandleProvider;
import org.eclipse.birt.report.designer.internal.ui.views.attributes.page.FormPage;
import org.eclipse.birt.report.designer.internal.ui.views.attributes.page.SortingHandleProvider;
import org.eclipse.birt.report.designer.internal.ui.views.attributes.widget.Spinner;
import org.eclipse.birt.report.designer.nls.Messages;
import org.eclipse.birt.report.designer.ui.newelement.DesignElementFactory;
import org.eclipse.birt.report.designer.util.DEUtil;
import org.eclipse.birt.report.designer.util.FontManager;
import org.eclipse.birt.report.model.api.CellHandle;
import org.eclipse.birt.report.model.api.DesignElementHandle;
import org.eclipse.birt.report.model.api.DesignEngine;
import org.eclipse.birt.report.model.api.GroupHandle;
import org.eclipse.birt.report.model.api.ListGroupHandle;
import org.eclipse.birt.report.model.api.RowHandle;
import org.eclipse.birt.report.model.api.SlotHandle;
import org.eclipse.birt.report.model.api.TableGroupHandle;
import org.eclipse.birt.report.model.api.TableHandle;
import org.eclipse.birt.report.model.api.activity.SemanticException;
import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
import org.eclipse.birt.report.model.api.elements.ReportDesignConstants;