Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Side by Side Diff: packages/charted/lib/charts/src/chart_config_impl.dart

Issue 1521693002: Roll Observatory deps (charted -> ^0.3.0) (Closed) Base URL: https://chromium.googlesource.com/external/github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 class DefaultChartConfigImpl extends ChangeNotifier implements ChartConfig { 11 class DefaultChartConfigImpl extends ChangeNotifier implements ChartConfig {
12 final Map<String,ChartAxisConfig> _measureAxisRegistry = {}; 12 final Map<String, ChartAxisConfig> _measureAxisRegistry = {};
13 final Map<int,ChartAxisConfig> _dimensionAxisRegistry = {}; 13 final Map<int, ChartAxisConfig> _dimensionAxisRegistry = {};
14 final SubscriptionsDisposer _disposer = new SubscriptionsDisposer(); 14 final SubscriptionsDisposer _disposer = new SubscriptionsDisposer();
15 15
16 bool _isRTL = false; 16 bool _isRTL = false;
17 Iterable<ChartSeries> _series; 17 Iterable<ChartSeries> _series;
18 Iterable<int> _dimensions; 18 Iterable<int> _dimensions;
19 StreamSubscription _dimensionsSubscription; 19 StreamSubscription _dimensionsSubscription;
20 20
21 @override 21 @override
22 Rect minimumSize = const Rect.size(400, 300); 22 Rect minimumSize = const Rect.size(400, 300);
23 23
24 @override 24 @override
25 bool isLeftAxisPrimary = false; 25 bool isLeftAxisPrimary = false;
26 26
27 @override 27 @override
28 bool autoResizeAxis = true; 28 bool autoResizeAxis = true;
29 29
30 @override 30 @override
31 ChartLegend legend; 31 ChartLegend legend;
32 32
33 @override 33 @override
34 Iterable<String> displayedMeasureAxes; 34 Iterable<String> displayedMeasureAxes;
35 35
36 @override 36 @override
37 bool renderDimensionAxes = true; 37 bool renderDimensionAxes = true;
38 38
39 @override 39 @override
40 bool switchAxesForRTL = true; 40 bool switchAxesForRTL = true;
41 41
42 DefaultChartConfigImpl(Iterable<ChartSeries> series, Iterable<int> dimensions) { 42 DefaultChartConfigImpl(
43 Iterable<ChartSeries> series, Iterable<int> dimensions) {
43 this.series = series; 44 this.series = series;
44 this.dimensions = dimensions; 45 this.dimensions = dimensions;
45 } 46 }
46 47
47 @override 48 @override
48 set series(Iterable<ChartSeries> values) { 49 set series(Iterable<ChartSeries> values) {
49 assert(values != null && values.isNotEmpty); 50 assert(values != null && values.isNotEmpty);
50 51
51 _disposer.dispose(); 52 _disposer.dispose();
52 _series = values; 53 _series = values;
53 notifyChange(const ChartConfigChangeRecord()); 54 notifyChange(const ChartConfigChangeRecord());
54 55
55 // Monitor each series for changes on them 56 // Monitor each series for changes on them
56 values.forEach((item) { 57 values.forEach((item) {
57 if (item is Observable) { 58 if (item is Observable) {
58 _disposer.add(item.changes.listen( 59 _disposer.add(
59 (_) => notifyChange(const ChartConfigChangeRecord())), item); 60 item.changes
61 .listen((_) => notifyChange(const ChartConfigChangeRecord())),
62 item);
60 } 63 }
61 }); 64 });
62 65
63 // Monitor series for changes. When the list changes, update 66 // Monitor series for changes. When the list changes, update
64 // subscriptions to ChartSeries changes. 67 // subscriptions to ChartSeries changes.
65 if (_series is ObservableList) { 68 if (_series is ObservableList) {
66 var observable = _series as ObservableList; 69 var observable = _series as ObservableList;
67 _disposer.add(observable.listChanges.listen((records) { 70 _disposer.add(observable.listChanges.listen((records) {
68 records.forEach((record) { 71 records.forEach((record) {
69 record.removed.forEach((value) => _disposer.unsubscribe(value)); 72 record.removed.forEach((value) => _disposer.unsubscribe(value));
70 for (int i = 0; i < record.addedCount; i++) { 73 for (int i = 0; i < record.addedCount; i++) {
71 var added = observable[i + record.index]; 74 var added = observable[i + record.index];
72 _disposer.add(added.changes.listen( 75 _disposer.add(added.changes
73 (_) => notifyChange(const ChartConfigChangeRecord()))); 76 .listen((_) => notifyChange(const ChartConfigChangeRecord())));
74 } 77 }
75 }); 78 });
76 notifyChange(const ChartConfigChangeRecord()); 79 notifyChange(const ChartConfigChangeRecord());
77 })); 80 }));
78 } 81 }
79 } 82 }
80 83
81 @override 84 @override
82 Iterable<ChartSeries> get series => _series; 85 Iterable<ChartSeries> get series => _series;
83 86
84 @override 87 @override
85 set dimensions(Iterable<int> values) { 88 set dimensions(Iterable<int> values) {
86 _dimensions = values; 89 _dimensions = values;
87 90
88 if (_dimensionsSubscription != null) { 91 if (_dimensionsSubscription != null) {
89 _dimensionsSubscription.cancel(); 92 _dimensionsSubscription.cancel();
90 _dimensionsSubscription = null; 93 _dimensionsSubscription = null;
91 } 94 }
92 95
93 if (values == null || values.isEmpty) return; 96 if (values == null || values.isEmpty) return;
94 97
95 if (_dimensions is ObservableList) { 98 if (_dimensions is ObservableList) {
96 _dimensionsSubscription = 99 _dimensionsSubscription = (_dimensions as ObservableList)
97 (_dimensions as ObservableList).listChanges.listen( 100 .listChanges
98 (_) => notifyChange(const ChartConfigChangeRecord())); 101 .listen((_) => notifyChange(const ChartConfigChangeRecord()));
99 } 102 }
100 } 103 }
101 104
102 @override 105 @override
103 Iterable<int> get dimensions => _dimensions; 106 Iterable<int> get dimensions => _dimensions;
104 107
105 @override 108 @override
106 void registerMeasureAxis(String id, ChartAxisConfig config) { 109 void registerMeasureAxis(String id, ChartAxisConfig config) {
107 assert(config != null); 110 assert(config != null);
108 _measureAxisRegistry[id] = config; 111 _measureAxisRegistry[id] = config;
(...skipping 17 matching lines...) Expand all
126 set isRTL(bool value) { 129 set isRTL(bool value) {
127 if (_isRTL != value && value != null) { 130 if (_isRTL != value && value != null) {
128 _isRTL = value; 131 _isRTL = value;
129 notifyChange(const ChartConfigChangeRecord()); 132 notifyChange(const ChartConfigChangeRecord());
130 } 133 }
131 } 134 }
132 135
133 @override 136 @override
134 bool get isRTL => _isRTL; 137 bool get isRTL => _isRTL;
135 } 138 }
OLDNEW
« no previous file with comments | « packages/charted/lib/charts/src/chart_axis_impl.dart ('k') | packages/charted/lib/charts/src/chart_data_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698