This repository was archived by the owner on Dec 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 57
This repository was archived by the owner on Dec 29, 2022. It is now read-only.
ChartData creates its own rows object #209
Copy link
Copy link
Open
Description
8eecd1a has broken the examples/charts/demo_interactive.dart example. Clicking the "Add row" or "Remove last row" buttons no longer shows any action. This is because of this patch in the commit mentioned above:
diff --git a/lib/charts/src/chart_data_impl.dart b/lib/charts/src/chart_data_impl.dart
index dff6f5c..2dc6ed0 100644
--- a/lib/charts/src/chart_data_impl.dart
+++ b/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) {The problem is that the rows object which is passed to the DefaultChartDataImpl constructor is no longer stored in this.rows. Instead, a new List object is generated which is then stored in this.rows.
In my opinion it would be great if the original behaviour could be restored as with the current state we can no longer do this:
ChartData data = new ChartData(columns, rows);
// Do other stuff
// New rows have been received. Let's add them.
rows.add(...);
// Doesn't work since `ChartData` has created its own `rows` object internally :(.
// We can use this workaround but is not that elegant.
data.rows.add(...);Also, this doesn't work anymore and always returns false now since the new rows object is created without any regard whether the original rows object was an instance of ObservableList or not.
Metadata
Metadata
Assignees
Labels
No labels