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

Side by Side Diff: packages/charted/lib/charts/cartesian_renderers/cartesian_base_renderer.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 abstract class CartesianRendererBase implements CartesianRenderer { 11 abstract class CartesianRendererBase implements CartesianRenderer {
12 final SubscriptionsDisposer _disposer = new SubscriptionsDisposer(); 12 final SubscriptionsDisposer _disposer = new SubscriptionsDisposer();
13 13
14 CartesianArea area; 14 CartesianArea area;
15 ChartSeries series; 15 ChartSeries series;
16 ChartTheme theme; 16 ChartTheme theme;
17 ChartState state; 17 ChartState state;
18 Rect rect; 18 Rect rect;
19 19
20 List<int> _columnStateCache; 20 List<int> _columnStateCache;
21 List<Iterable<String>> _columnStylesCache; 21 List<Iterable<String>> _columnStylesCache;
22 22
23 final _valueColorCache = new Map<int,String>(); 23 final _valueColorCache = new Map<int, String>();
24 final _valueFilterCache = new Map<int,String>(); 24 final _valueFilterCache = new Map<int, String>();
25 final _valueStylesCache = new Map<int,Iterable<String>>(); 25 final _valueStylesCache = new Map<int, Iterable<String>>();
26 26
27 Element host; 27 Element host;
28 Selection root; 28 Selection root;
29 SelectionScope scope; 29 SelectionScope scope;
30 30
31 StreamController<ChartEvent> mouseOverController; 31 StreamController<ChartEvent> mouseOverController;
32 StreamController<ChartEvent> mouseOutController; 32 StreamController<ChartEvent> mouseOutController;
33 StreamController<ChartEvent> mouseClickController; 33 StreamController<ChartEvent> mouseClickController;
34 34
35 void _ensureAreaAndSeries(CartesianArea area, ChartSeries series) { 35 void _ensureAreaAndSeries(CartesianArea area, ChartSeries series) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 96 }
97 } 97 }
98 } 98 }
99 } 99 }
100 return new Extent(min, max); 100 return new Extent(min, max);
101 } 101 }
102 102
103 @override 103 @override
104 Extent extentForRow(Iterable row) { 104 Extent extentForRow(Iterable row) {
105 assert(series != null && area != null); 105 assert(series != null && area != null);
106 var measures = series.measures, 106 var measures = series.measures, max = SMALL_INT_MIN, min = SMALL_INT_MAX;
107 max = SMALL_INT_MIN,
108 min = SMALL_INT_MAX;
109 107
110 for (int i = 0, len = measures.length; i < len; ++i) { 108 for (int i = 0, len = measures.length; i < len; ++i) {
111 var measure = measures.elementAt(i), 109 var measure = measures.elementAt(i), value = row.elementAt(measure);
112 value = row.elementAt(measure);
113 if (value != null && value.isFinite) { 110 if (value != null && value.isFinite) {
114 if (value > max) { 111 if (value > max) {
115 max = value; 112 max = value;
116 } else if (value < min) { 113 } else if (value < min) {
117 min = value; 114 min = value;
118 } 115 }
119 } 116 }
120 } 117 }
121 return new Extent(min, max); 118 return new Extent(min, max);
122 } 119 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 173 }
177 } 174 }
178 _columnStateCache[column] = flags; 175 _columnStateCache[column] = flags;
179 }); 176 });
180 }); 177 });
181 } 178 }
182 179
183 Iterable<String> stylesForColumn(int column) { 180 Iterable<String> stylesForColumn(int column) {
184 if (_columnStylesCache[column] == null) { 181 if (_columnStylesCache[column] == null) {
185 if (state == null || area.useRowColoring) { 182 if (state == null || area.useRowColoring) {
186 _columnStylesCache[column] = const[]; 183 _columnStylesCache[column] = const [];
187 } else { 184 } else {
188 var styles = [], 185 var styles = [], flags = _columnStateCache[column];
189 flags = _columnStateCache[column];
190 186
191 if (flags & ChartState.COL_SELECTED != 0) { 187 if (flags & ChartState.COL_SELECTED != 0) {
192 styles.add(ChartState.COL_SELECTED_CLASS); 188 styles.add(ChartState.COL_SELECTED_CLASS);
193 } else if (flags & ChartState.COL_UNSELECTED != 0){ 189 } else if (flags & ChartState.COL_UNSELECTED != 0) {
194 styles.add(ChartState.COL_UNSELECTED_CLASS); 190 styles.add(ChartState.COL_UNSELECTED_CLASS);
195 } 191 }
196 192
197 if (flags & ChartState.COL_HIGHLIGHTED != 0) { 193 if (flags & ChartState.COL_HIGHLIGHTED != 0) {
198 styles.add(ChartState.COL_HIGHLIGHTED_CLASS); 194 styles.add(ChartState.COL_HIGHLIGHTED_CLASS);
199 } else if (flags & ChartState.COL_UNHIGHLIGHTED != 0) { 195 } else if (flags & ChartState.COL_UNHIGHLIGHTED != 0) {
200 styles.add(ChartState.COL_UNHIGHLIGHTED_CLASS); 196 styles.add(ChartState.COL_UNHIGHLIGHTED_CLASS);
201 } 197 }
202 198
203 if (flags & ChartState.COL_HOVERED != 0) { 199 if (flags & ChartState.COL_HOVERED != 0) {
(...skipping 15 matching lines...) Expand all
219 String colorForColumn(int column) => 215 String colorForColumn(int column) =>
220 theme.getColorForKey(column, _columnStateCache[column]); 216 theme.getColorForKey(column, _columnStateCache[column]);
221 217
222 String filterForColumn(int column) => 218 String filterForColumn(int column) =>
223 theme.getFilterForState(_columnStateCache[column]); 219 theme.getFilterForState(_columnStateCache[column]);
224 220
225 Iterable<String> stylesForValue(int column, int row) { 221 Iterable<String> stylesForValue(int column, int row) {
226 var hash = hash2(column, row); 222 var hash = hash2(column, row);
227 if (_valueStylesCache[hash] == null) { 223 if (_valueStylesCache[hash] == null) {
228 if (state == null) { 224 if (state == null) {
229 _valueStylesCache[hash] = const[]; 225 _valueStylesCache[hash] = const [];
230 } else { 226 } else {
231 var styles = stylesForColumn(column).toList(); 227 var styles = stylesForColumn(column).toList();
232 if (state.highlights.isNotEmpty) { 228 if (state.highlights.isNotEmpty) {
233 styles.add(state.highlights.any((x) => x.last == row) 229 styles.add(state.highlights.any((x) => x.last == row)
234 ? ChartState.VAL_HIGHLIGHTED_CLASS 230 ? ChartState.VAL_HIGHLIGHTED_CLASS
235 : ChartState.VAL_UNHIGHLIGHTED_CLASS); 231 : ChartState.VAL_UNHIGHLIGHTED_CLASS);
236 } 232 }
237 if (state.hovered != null && state.hovered.last == row) { 233 if (state.hovered != null && state.hovered.last == row) {
238 styles.add(ChartState.VAL_HOVERED_CLASS); 234 styles.add(ChartState.VAL_HOVERED_CLASS);
239 } 235 }
(...skipping 21 matching lines...) Expand all
261 257
262 _cacheColorsAndFilter(int hash, int column, int row) { 258 _cacheColorsAndFilter(int hash, int column, int row) {
263 if (state == null) { 259 if (state == null) {
264 _valueColorCache[hash] = 260 _valueColorCache[hash] =
265 theme.getColorForKey(area.useRowColoring ? row : column); 261 theme.getColorForKey(area.useRowColoring ? row : column);
266 _valueFilterCache[hash] = theme.getFilterForState(0); 262 _valueFilterCache[hash] = theme.getFilterForState(0);
267 } else { 263 } else {
268 var flags = _columnStateCache[column]; 264 var flags = _columnStateCache[column];
269 if (state.highlights.isNotEmpty) { 265 if (state.highlights.isNotEmpty) {
270 flags |= (state.highlights.any((x) => x.last == row) 266 flags |= (state.highlights.any((x) => x.last == row)
271 ? ChartState.VAL_HIGHLIGHTED 267 ? ChartState.VAL_HIGHLIGHTED
272 : ChartState.VAL_UNHIGHLIGHTED); 268 : ChartState.VAL_UNHIGHLIGHTED);
273 } 269 }
274 if (state.hovered != null && state.hovered.last == row) { 270 if (state.hovered != null && state.hovered.last == row) {
275 flags |= ChartState.VAL_HOVERED; 271 flags |= ChartState.VAL_HOVERED;
276 } 272 }
277 _valueColorCache[hash] = 273 _valueColorCache[hash] =
278 theme.getColorForKey(area.useRowColoring ? row : column, flags); 274 theme.getColorForKey(area.useRowColoring ? row : column, flags);
279 _valueFilterCache[hash] = theme.getFilterForState(flags); 275 _valueFilterCache[hash] = theme.getFilterForState(flags);
280 } 276 }
281 } 277 }
282 } 278 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698