Index: charted/lib/charts/data_transformers/filter_transformer.dart |
diff --git a/charted/lib/charts/data_transformers/filter_transformer.dart b/charted/lib/charts/data_transformers/filter_transformer.dart |
deleted file mode 100644 |
index 393c453f6fbb85dba29b18ae610b29ad110c5c7a..0000000000000000000000000000000000000000 |
--- a/charted/lib/charts/data_transformers/filter_transformer.dart |
+++ /dev/null |
@@ -1,81 +0,0 @@ |
-/* |
- * Copyright 2014 Google Inc. All rights reserved. |
- * |
- * Use of this source code is governed by a BSD-style |
- * license that can be found in the LICENSE file or at |
- * https://developers.google.com/open-source/licenses/bsd |
- */ |
- |
-part of charted.charts; |
- |
-typedef bool FilterFunction(dynamic value); |
- |
-/** |
- * Transforms the ChartData base on the specified FilterDefinitions. Each row |
- * of data will be tested by passing the value at target column to the filter |
- * function. If filter function returns false, the row will be filtered out. |
- * This transformer does not modify the column part of the input ChartData. |
- */ |
-class FilterTransformer extends ChangeNotifier |
- implements ChartDataTransform, ChartData { |
- final SubscriptionsDisposer _dataSubscriptions = new SubscriptionsDisposer(); |
- Iterable<ChartColumnSpec> columns; |
- ObservableList<Iterable> rows = new ObservableList(); |
- List<FilterDefinition> filterFunctions; |
- ChartData _data; |
- |
- FilterTransformer(this.filterFunctions); |
- |
- /** |
- * Transforms the input data with the list of [FilterDefinition] specified in |
- * the constructor. If the rows and columns are ObservableList in the data, |
- * changes in rows and columns in input data will trigger transform to be |
- * performed again to update the output rows and columns. |
- */ |
- ChartData transform(ChartData data) { |
- _data = data; |
- _registerListeners(); |
- _transform(); |
- return this; |
- } |
- |
- /** Registers listeners if data.rows or data.columns are Observable. */ |
- _registerListeners() { |
- _dataSubscriptions.dispose(); |
- |
- if(_data is Observable) { |
- var observable = (_data as Observable); |
- _dataSubscriptions.add(observable.changes.listen((records) { |
- _transform(); |
- |
- // NOTE: Currently we're only passing the first change because the chart |
- // area just draw with the updated data. When we add partial update |
- // to chart area, we'll need to handle this better. |
- notifyChange(records.first); |
- })); |
- } |
- } |
- |
- /** |
- * Performs the filter transform with _data. This is called on transform and |
- * onChange if the input ChartData is Observable. |
- */ |
- _transform() { |
- columns = _data.columns; |
- rows.clear(); |
- |
- for (var row in _data.rows) { |
- // Add the row if each value in target column passes the filter function. |
- if (filterFunctions.every((e) => |
- e.filterFunc(row.elementAt(e.targetColumn)))) { |
- rows.add(row); |
- } |
- } |
- } |
-} |
- |
-class FilterDefinition { |
- final FilterFunction filterFunc; |
- final int targetColumn; |
- FilterDefinition(this.targetColumn, this.filterFunc); |
-} |