| OLD | NEW |
| 1 // | 1 // |
| 2 // Copyright 2014 Google Inc. All rights reserved. | 2 // Copyright 2014 Google Inc. All rights reserved. |
| 3 // | 3 // |
| 4 // Use of this source code is governed by a BSD-style | 4 // Use of this source code is governed by a BSD-style |
| 5 // license that can be found in the LICENSE file or at | 5 // license that can be found in the LICENSE file or at |
| 6 // https://developers.google.com/open-source/licenses/bsd | 6 // https://developers.google.com/open-source/licenses/bsd |
| 7 // | 7 // |
| 8 | 8 |
| 9 part of charted.charts; | 9 part of charted.charts; |
| 10 | 10 |
| 11 typedef bool FilterFunction(dynamic value); | 11 typedef bool FilterFunction(dynamic value); |
| 12 | 12 |
| 13 /// Transforms the ChartData base on the specified FilterDefinitions. Each row | 13 /// Transforms the ChartData base on the specified FilterDefinitions. Each row |
| 14 /// of data will be tested by passing the value at target column to the filter | 14 /// of data will be tested by passing the value at target column to the filter |
| 15 /// function. If filter function returns false, the row will be filtered out. | 15 /// function. If filter function returns false, the row will be filtered out. |
| 16 /// This transformer does not modify the column part of the input ChartData. | 16 /// This transformer does not modify the column part of the input ChartData. |
| 17 class FilterTransformer extends ChangeNotifier | 17 class FilterTransformer extends ChangeNotifier |
| 18 implements ChartDataTransform, ChartData { | 18 implements ChartDataTransform, ChartData { |
| 19 final SubscriptionsDisposer _dataSubscriptions = new SubscriptionsDisposer(); | 19 final SubscriptionsDisposer _dataSubscriptions = new SubscriptionsDisposer(); |
| 20 Iterable<ChartColumnSpec> columns; | 20 List<ChartColumnSpec> columns; |
| 21 ObservableList<Iterable> rows = new ObservableList(); | 21 ObservableList<List> rows = new ObservableList(); |
| 22 List<FilterDefinition> filterFunctions; | 22 List<FilterDefinition> filterFunctions; |
| 23 ChartData _data; | 23 ChartData _data; |
| 24 | 24 |
| 25 FilterTransformer(this.filterFunctions); | 25 FilterTransformer(this.filterFunctions); |
| 26 | 26 |
| 27 /// Transforms the input data with the list of [FilterDefinition] specified in | 27 /// Transforms the input data with the list of [FilterDefinition] specified in |
| 28 /// the constructor. If the rows and columns are ObservableList in the data, | 28 /// the constructor. If the rows and columns are ObservableList in the data, |
| 29 /// changes in rows and columns in input data will trigger transform to be | 29 /// changes in rows and columns in input data will trigger transform to be |
| 30 /// performed again to update the output rows and columns. | 30 /// performed again to update the output rows and columns. |
| 31 ChartData transform(ChartData data) { | 31 ChartData transform(ChartData data) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 } | 68 } |
| 69 } | 69 } |
| 70 | 70 |
| 71 class FilterDefinition { | 71 class FilterDefinition { |
| 72 final FilterFunction filterFunc; | 72 final FilterFunction filterFunc; |
| 73 final int targetColumn; | 73 final int targetColumn; |
| 74 FilterDefinition(this.targetColumn, this.filterFunc); | 74 FilterDefinition(this.targetColumn, this.filterFunc); |
| 75 } | 75 } |
| OLD | NEW |