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

Side by Side Diff: packages/charted/lib/charts/cartesian_renderers/bar_chart_renderer.dart

Issue 2213693002: Updated charted DEP to 0.4.X (Closed) Base URL: https://github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 4 years, 4 months 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
(...skipping 29 matching lines...) Expand all
40 var rows = new List() 40 var rows = new List()
41 ..addAll(area.data.rows.map((e) => new List.generate( 41 ..addAll(area.data.rows.map((e) => new List.generate(
42 measuresCount, (i) => e[series.measures.elementAt(i)]))); 42 measuresCount, (i) => e[series.measures.elementAt(i)])));
43 43
44 var dimensionVals = area.data.rows 44 var dimensionVals = area.data.rows
45 .map((row) => row.elementAt(area.config.dimensions.first)) 45 .map((row) => row.elementAt(area.config.dimensions.first))
46 .toList(); 46 .toList();
47 47
48 var bars = new OrdinalScale() 48 var bars = new OrdinalScale()
49 ..domain = new Range(series.measures.length).toList() 49 ..domain = new Range(series.measures.length).toList()
50 ..rangeRoundBands([0, dimensionScale.rangeBand]); 50 ..rangeRoundBands([0, (dimensionScale as OrdinalScale).rangeBand]);
51 51
52 // Create and update the bar groups. 52 // Create and update the bar groups.
53 53
54 var groups = root.selectAll('.bar-rdr-rowgroup').data(rows); 54 var groups = root.selectAll('.bar-rdr-rowgroup').data(rows);
55 var animateBarGroups = alwaysAnimate || !groups.isEmpty; 55 var animateBarGroups = alwaysAnimate || !groups.isEmpty;
56 56
57 groups.enter.append('g') 57 groups.enter.append('g')
58 ..classed('bar-rdr-rowgroup') 58 ..classed('bar-rdr-rowgroup')
59 ..attrWithCallback( 59 ..attrWithCallback(
60 'transform', 60 'transform',
(...skipping 27 matching lines...) Expand all
88 var bar = 88 var bar =
89 groups.selectAll('.bar-rdr-bar').dataWithCallback((d, i, c) => rows[i]), 89 groups.selectAll('.bar-rdr-bar').dataWithCallback((d, i, c) => rows[i]),
90 scaled0 = measureScale.scale(0).round(); 90 scaled0 = measureScale.scale(0).round();
91 91
92 var getBarLength = (d) { 92 var getBarLength = (d) {
93 var scaledVal = measureScale.scale(d).round(), 93 var scaledVal = measureScale.scale(d).round(),
94 ht = verticalBars 94 ht = verticalBars
95 ? (d >= 0 ? scaled0 - scaledVal : scaledVal - scaled0) 95 ? (d >= 0 ? scaled0 - scaledVal : scaledVal - scaled0)
96 : (d >= 0 ? scaledVal - scaled0 : scaled0 - scaledVal); 96 : (d >= 0 ? scaledVal - scaled0 : scaled0 - scaledVal);
97 ht = ht - strokeWidth; 97 ht = ht - strokeWidth;
98 return (ht < 0) ? 0 : ht; 98
99 // If bar would be scaled to 0 height but data is not 0, render bar
100 // at 1 pixel so user can see and hover over to see the data.
101 return (ht < 0) ? 1 : ht;
99 }; 102 };
100 var getBarPos = (d) { 103 var getBarPos = (d) {
101 var scaledVal = measureScale.scale(d).round(); 104 var scaledVal = measureScale.scale(d).round();
105
106 // If bar would be scaled to 0 height but data is not 0, reserve 1 pixel
107 // height plus strokeWidthOffset to position the bar.
108 if (scaledVal == scaled0) {
109 return verticalBars
110 ? d > 0
111 ? scaled0 - 1 - strokeWidthOffset
112 : scaled0 + strokeWidthOffset
113 : d > 0
114 ? scaled0 + strokeWidthOffset
115 : scaled0 - 1 - strokeWidthOffset;
116 }
102 return verticalBars 117 return verticalBars
103 ? (d >= 0 ? scaledVal : scaled0) + strokeWidthOffset 118 ? (d >= 0 ? scaledVal : scaled0) + strokeWidthOffset
104 : (d >= 0 ? scaled0 : scaledVal) + strokeWidthOffset; 119 : (d >= 0 ? scaled0 : scaledVal) + strokeWidthOffset;
105 }; 120 };
106 var buildPath = (d, int i, bool animate) { 121 var buildPath = (d, int i, bool animate) {
122 // If data is null or 0, an empty path for the bar is returned directly.
107 if (d == null || d == 0) return ''; 123 if (d == null || d == 0) return '';
108 if (verticalBars) { 124 if (verticalBars) {
109 var fn = d > 0 ? topRoundedRect : bottomRoundedRect; 125 var fn = d > 0 ? topRoundedRect : bottomRoundedRect;
110 return fn( 126 return fn(
111 bars.scale(i).toInt() + strokeWidthOffset, 127 bars.scale(i).toInt() + strokeWidthOffset,
112 animate ? rect.height : getBarPos(d), 128 animate ? rect.height : getBarPos(d),
113 barWidth, 129 barWidth,
114 animate ? 0 : getBarLength(d), 130 animate ? 0 : getBarLength(d),
115 RADIUS); 131 RADIUS);
116 } else { 132 } else {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 } 247 }
232 248
233 void _event(StreamController controller, data, int index, Element e) { 249 void _event(StreamController controller, data, int index, Element e) {
234 if (controller == null) return; 250 if (controller == null) return;
235 var rowStr = e.parent.dataset['row']; 251 var rowStr = e.parent.dataset['row'];
236 var row = rowStr != null ? int.parse(rowStr) : null; 252 var row = rowStr != null ? int.parse(rowStr) : null;
237 controller.add(new DefaultChartEventImpl(scope.event, area, series, row, 253 controller.add(new DefaultChartEventImpl(scope.event, area, series, row,
238 series.measures.elementAt(index), data)); 254 series.measures.elementAt(index), data));
239 } 255 }
240 } 256 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698