| Index: charted/lib/charts/chart_data.dart
|
| diff --git a/charted/lib/charts/chart_data.dart b/charted/lib/charts/chart_data.dart
|
| deleted file mode 100644
|
| index f6304c03e34ef5cdfaa48ad70c00d15d0f95206e..0000000000000000000000000000000000000000
|
| --- a/charted/lib/charts/chart_data.dart
|
| +++ /dev/null
|
| @@ -1,121 +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;
|
| -
|
| -///
|
| -/// Interface to be implemented by data providers to give tabular access to
|
| -/// data for chart renderers.
|
| -///
|
| -abstract class ChartData {
|
| - /// Read-only access to column specs
|
| - Iterable<ChartColumnSpec> get columns;
|
| -
|
| - /// Read-only access to rows
|
| - Iterable<Iterable> get rows;
|
| -
|
| - /// Create a new instance of [ChartData]'s internal implementation
|
| - factory ChartData(
|
| - Iterable<ChartColumnSpec> columns, Iterable<Iterable> rows) = DefaultChartDataImpl;
|
| -}
|
| -
|
| -///
|
| -/// Interface implemented by [ChartData] transformers.
|
| -/// Examples:
|
| -/// [AggregationTransformer] to compute aggregated rows/columns
|
| -/// [FilterTransformer] to filter data
|
| -/// [TransposeTransformer] to convert rows to columns and vice-versa
|
| -///
|
| -abstract class ChartDataTransform {
|
| - /// Create a new instance of [ChartData] by selecting a subset
|
| - /// of rows and columns from the current one
|
| - ChartData transform(ChartData source);
|
| -}
|
| -
|
| -
|
| -///
|
| -/// Implementation of [ChangeRecord], that is used to notify when rows get added
|
| -/// or removed to ChartData
|
| -///
|
| -class ChartRowChangeRecord implements ChangeRecord {
|
| - /// Changes to the rows - contains all updates to rows since last notification.
|
| - final List<ListChangeRecord> changes;
|
| -
|
| - const ChartRowChangeRecord(this.changes);
|
| -}
|
| -
|
| -///
|
| -/// Implementation of [ChangeRecord], that is used to notify changes to
|
| -/// values in [ChartData].
|
| -///
|
| -class ChartValueChangeRecord implements ChangeRecord {
|
| - /// Row that changed.
|
| - final int row;
|
| -
|
| - /// List of changes to data on the row - includes all updates since the
|
| - /// last change notification.
|
| - final List<ListChangeRecord> changes;
|
| -
|
| - const ChartValueChangeRecord(this.row, this.changes);
|
| -}
|
| -
|
| -///
|
| -/// Meta information for each column in ChartData
|
| -///
|
| -class ChartColumnSpec {
|
| - static const String TYPE_BOOLEAN = 'boolean';
|
| - static const String TYPE_DATE = 'date';
|
| - static const String TYPE_NUMBER = 'number';
|
| - static const String TYPE_STRING = 'string';
|
| - static const String TYPE_TIMESTAMP = 'timestamp';
|
| -
|
| - static const List ORDINAL_SCALES = const [ TYPE_STRING ];
|
| - static const List LINEAR_SCALES = const [ TYPE_NUMBER ];
|
| - static const List TIME_SCALES = const [ TYPE_DATE, TYPE_TIMESTAMP ];
|
| -
|
| - /// Formatter for values that belong to this column
|
| - final FormatFunction formatter;
|
| -
|
| - /// Label for the column. Used in legend, tooltips etc;
|
| - /// When not specified, defaults to empty string.
|
| - final String label;
|
| -
|
| - /// Type of data in this column. Used for interpolations, computing
|
| - /// scales and ranges. When not specified, it is assumed to be "number"
|
| - /// for measures and "string" for dimensions.
|
| - final String type;
|
| -
|
| - /// Indicates if this column requires [OrdinalScale].
|
| - ///
|
| - /// If not specified, an ordinal scale is used for string columns and
|
| - /// quantitative scales are used for others.
|
| - final bool useOrdinalScale;
|
| -
|
| - /// Initialize axis scale according to [ChartColumnSpec] type.
|
| - /// This logic is extracted from [ChartArea] implementation for conveniently
|
| - /// adding more scale types.
|
| - Scale createDefaultScale() {
|
| - if (useOrdinalScale == true) {
|
| - return new OrdinalScale();
|
| - }
|
| - else if (LINEAR_SCALES.contains(type)) {
|
| - return new LinearScale();
|
| - }
|
| - else if (TIME_SCALES.contains(type)) {
|
| - return new TimeScale();
|
| - }
|
| - return null;
|
| - }
|
| -
|
| - ChartColumnSpec({this.label, String type : TYPE_NUMBER,
|
| - this.formatter, bool useOrdinalScale})
|
| - : useOrdinalScale =
|
| - useOrdinalScale == true ||
|
| - useOrdinalScale == null && ORDINAL_SCALES.contains(type),
|
| - type = type;
|
| -}
|
|
|