onDataSourceSuccess method

  1. @override
Future<bool> onDataSourceSuccess(
  1. IDataSource source,
  2. Data? list
)
override

Called when the databroker returns a successful result

ChartModel overrides WidgetModel's onDataSourceSuccess to populate the series data from the datasource and to populate the label data from the datasource data.

Implementation

@override
Future<bool> onDataSourceSuccess(IDataSource source, Data? list) async {
  try {
    for (var series in series) {
      if (series.datasource == source.id) {
        series.dataPoint.clear();
        if (list != null) {
          for (var p in list) {
            ChartDataPoint point = series.fromData(p);
            if ((point.x != null) && (point.y != null)) {
              series.dataPoint.add(point);
            }
          }
        }
        series.data = list;
      }
    }
    for (var label in labels) {
      if (label.datasource == null && list != null) {
        label.dataLabel.clear();
        label.dataLabel.add(label.fromData(data));
      } else if (label.datasource == source.id) {
        label.dataLabel.clear();
        if (list != null) {
          for (var l in list) {
            label.dataLabel.add(label.fromData(l));
          }
        }
        label.data = list;
      }
    }
    notifyListeners('list', null);
  } catch (e) {
    Log().debug('Series onDataSourceSuccess() error');
    // DialogService().show(type: DialogType.error, title: phrase.error, description: e.message);
  }
  return true;
}