Index: packages/charted/lib/charts/src/chart_data_impl.dart |
diff --git a/packages/charted/lib/charts/src/chart_data_impl.dart b/packages/charted/lib/charts/src/chart_data_impl.dart |
index dff6f5ca07e80f287f4ca6505046274736dfa4c1..2dc6ed0f65cb02584782dccb80f79c0d8f9b4b93 100644 |
--- a/packages/charted/lib/charts/src/chart_data_impl.dart |
+++ b/packages/charted/lib/charts/src/chart_data_impl.dart |
@@ -9,16 +9,18 @@ |
part of charted.charts; |
class DefaultChartDataImpl extends ChangeNotifier implements ChartData { |
- Iterable<ChartColumnSpec> _columns; |
- Iterable<Iterable> _rows; |
+ List<ChartColumnSpec> _columns; |
+ List<List> _rows; |
bool _hasObservableRows = false; |
SubscriptionsDisposer _disposer = new SubscriptionsDisposer(); |
DefaultChartDataImpl( |
Iterable<ChartColumnSpec> columns, Iterable<Iterable> rows) { |
- this.columns = columns; |
- this.rows = rows; |
+ this.columns = new List<ChartColumnSpec>.from(columns); |
+ var rowsList = new List.from(rows); |
+ this.rows = new List<List>.generate( |
+ rowsList.length, (i) => new List.from(rowsList[i])); |
} |
set columns(Iterable<ChartColumnSpec> value) { |
@@ -30,9 +32,9 @@ class DefaultChartDataImpl extends ChangeNotifier implements ChartData { |
this._columns = new List<ChartColumnSpec>.from(value); |
} |
- Iterable<ChartColumnSpec> get columns => _columns; |
+ List<ChartColumnSpec> get columns => _columns; |
- set rows(Iterable<Iterable> value) { |
+ set rows(List<List> value) { |
assert(value != null); |
_rows = value; |
@@ -45,7 +47,9 @@ class DefaultChartDataImpl extends ChangeNotifier implements ChartData { |
for (int i = 0; i < _rows.length; i++) { |
var row = _rows.elementAt(i); |
_disposer.add( |
- row.listChanges.listen((changes) => _valuesChanged(i, changes)), |
+ (row as ObservableList) |
+ .listChanges |
+ .listen((changes) => _valuesChanged(i, changes)), |
row); |
} |
; |
@@ -54,7 +58,7 @@ class DefaultChartDataImpl extends ChangeNotifier implements ChartData { |
} |
} |
- Iterable<Iterable> get rows => _rows; |
+ List<List> get rows => _rows; |
rowsChanged(List<ListChangeRecord> changes) { |
if (_rows is! ObservableList) return; |
@@ -72,7 +76,7 @@ class DefaultChartDataImpl extends ChangeNotifier implements ChartData { |
'Changes on this row will not be monitored'); |
} else { |
_disposer.add( |
- row.listChanges |
+ (row as ObservableList).listChanges |
.listen((changes) => _valuesChanged(index, changes)), |
row); |
} |