| // |
| // 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; |
| |
| class DefaultChartSeriesImpl extends ChangeNotifier implements ChartSeries { |
| final String name; |
| |
| Iterable<String> _measureAxisIds; |
| Iterable<int> _measures; |
| ChartRenderer _renderer; |
| |
| SubscriptionsDisposer _disposer = new SubscriptionsDisposer(); |
| |
| DefaultChartSeriesImpl(this.name, Iterable<int> measures, this._renderer, |
| Iterable<String> measureAxisIds) { |
| this.measures = measures; |
| this.measureAxisIds = measureAxisIds; |
| } |
| |
| set renderer(ChartRenderer value) { |
| if (value != null && value == _renderer) return; |
| _renderer.dispose(); |
| _renderer = value; |
| notifyChange(new ChartSeriesChangeRecord(this)); |
| } |
| |
| ChartRenderer get renderer => _renderer; |
| |
| set measures(Iterable<int> value) { |
| _measures = value; |
| |
| if (_measures is ObservableList) { |
| _disposer.add( |
| (_measures as ObservableList).listChanges.listen(_measuresChanged)); |
| } |
| } |
| |
| Iterable<int> get measures => _measures; |
| |
| set measureAxisIds(Iterable<String> value) { |
| _measureAxisIds = value; |
| } |
| |
| Iterable<String> get measureAxisIds => _measureAxisIds; |
| |
| void _measuresChanged(List<ListChangeRecord> _) { |
| if (_measures is! ObservableList) return; |
| notifyChange(new ChartSeriesChangeRecord(this)); |
| } |
| } |