/* * (non-Javadoc) * * @seeorg.eclipse.birt.chart.ui.swt.interfaces.ISeriesUIProvider# * validateAggregationType (org.eclipse.birt.chart.model.component.Series, * org.eclipse.birt.chart.model.data.SeriesDefinition, * org.eclipse.birt.chart.model.data.SeriesDefinition) */ public boolean isValidAggregationType( Series series, SeriesDefinition orthSD, SeriesDefinition baseSD) { boolean isValidAgg = true; EList<Query> queries = series.getDataDefinition(); for (int i : validationIndex(series)) { if (!isValidAgg) { break; } Query query = queries.get(i); boolean checked = false; String id = ChartWizard.Gatt_aggCheck_ID + series.eContainer().hashCode() + series.getDataDefinition().indexOf(query); ChartWizard.removeException(id); if (query.getGrouping() != null && query.getGrouping().isEnabled()) { checked = true; isValidAgg = isValidAggregation(query.getGrouping(), false, id); } if (!checked && orthSD.getGrouping() != null && orthSD.getGrouping().isEnabled()) { checked = true; isValidAgg = isValidAggregation(orthSD.getGrouping(), false, id); } if (!checked) { if (baseSD.getGrouping() != null && baseSD.getGrouping().isEnabled()) { isValidAgg = isValidAggregation(baseSD.getGrouping(), true, id); } } } return isValidAgg; }
/* * (non-Javadoc) * * @see org.eclipse.birt.chart.ui.swt.DefaultSeriesUIProvider#validateSeriesBindingType(org.eclipse.birt.chart.model.component.Series, * org.eclipse.birt.chart.ui.swt.interfaces.IDataServiceProvider) */ public void validateSeriesBindingType(Series series, IDataServiceProvider idsp) throws ChartException { ArrayList<Query> al = new ArrayList<Query>(); al.addAll(series.getDataDefinition()); for (int i = 0; i < al.size(); i++) { Query query = al.get(i); DataType dataType = idsp.getDataType(query.getDefinition()); if ((i != 2) && (dataType == DataType.TEXT_LITERAL || dataType == DataType.NUMERIC_LITERAL)) { final ExpressionCodec codec = ChartModelHelper.instance().createExpressionCodec(); codec.decode(query.getDefinition()); throw new ChartException( ChartUIExtensionPlugin.ID, ChartException.DATA_BINDING, codec.getExpression()); } } }