| OLD | NEW |
| 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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 if (yPos != pos) { | 162 if (yPos != pos) { |
| 163 yPos += (theme.defaultSeparatorWidth + theme.defaultStrokeWidth); | 163 yPos += (theme.defaultSeparatorWidth + theme.defaultStrokeWidth); |
| 164 } | 164 } |
| 165 return pos; | 165 return pos; |
| 166 } | 166 } |
| 167 }; | 167 }; |
| 168 | 168 |
| 169 var buildPath = (d, int i, Element e, bool animate, int roundIdx) { | 169 var buildPath = (d, int i, Element e, bool animate, int roundIdx) { |
| 170 var position = animate ? getInitialBarPos(i) : getBarPos(d, i), | 170 var position = animate ? getInitialBarPos(i) : getBarPos(d, i), |
| 171 length = animate ? 0 : getBarLength(d, i), | 171 length = animate ? 0 : getBarLength(d, i), |
| 172 radius = | 172 radius = series.measures.elementAt(_reverseIdx(i)) == roundIdx |
| 173 series.measures.elementAt(_reverseIdx(i)) == roundIdx ? RADIUS : 0, | 173 ? RADIUS |
| 174 : 0, |
| 174 path = (length != 0) | 175 path = (length != 0) |
| 175 ? verticalBars | 176 ? verticalBars |
| 176 ? topRoundedRect(0, position, barWidth, length, radius) | 177 ? topRoundedRect(0, position, barWidth, length, radius) |
| 177 : rightRoundedRect(position, 0, length, barWidth, radius) | 178 : rightRoundedRect(position, 0, length, barWidth, radius) |
| 178 : ''; | 179 : ''; |
| 179 e.attributes['data-offset'] = | 180 e.attributes['data-offset'] = |
| 180 verticalBars ? position.toString() : (position + length).toString(); | 181 verticalBars ? position.toString() : (position + length).toString(); |
| 181 return path; | 182 return path; |
| 182 }; | 183 }; |
| 183 | 184 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 root.selectAll('.stack-rdr-rowgroup').remove(); | 255 root.selectAll('.stack-rdr-rowgroup').remove(); |
| 255 } | 256 } |
| 256 | 257 |
| 257 @override | 258 @override |
| 258 double get bandInnerPadding => | 259 double get bandInnerPadding => |
| 259 area.theme.getDimensionAxisTheme().axisBandInnerPadding; | 260 area.theme.getDimensionAxisTheme().axisBandInnerPadding; |
| 260 | 261 |
| 261 @override | 262 @override |
| 262 Extent get extent { | 263 Extent get extent { |
| 263 assert(area != null && series != null); | 264 assert(area != null && series != null); |
| 264 var rows = area.data.rows, | 265 var rows = area.data.rows, rowIndex = 0; |
| 265 max = SMALL_INT_MIN, | 266 num max = SMALL_INT_MIN; |
| 266 min = SMALL_INT_MAX, | 267 num min = SMALL_INT_MAX; |
| 267 rowIndex = 0; | |
| 268 _lastMeasureWithData = new List.generate(rows.length, (i) => -1); | 268 _lastMeasureWithData = new List.generate(rows.length, (i) => -1); |
| 269 | 269 |
| 270 rows.forEach((row) { | 270 rows.forEach((row) { |
| 271 var bar = null; | 271 num bar = null; |
| 272 series.measures.forEach((idx) { | 272 series.measures.forEach((idx) { |
| 273 var value = row.elementAt(idx); | 273 var value = row.elementAt(idx); |
| 274 if (value != null && value.isFinite) { | 274 if (value != null && value.isFinite) { |
| 275 if (bar == null) bar = 0; | 275 if (bar == null) bar = 0; |
| 276 bar += value; | 276 bar += value; |
| 277 if (value.round() != 0 && _lastMeasureWithData[rowIndex] == -1) { | 277 if (value.round() != 0 && _lastMeasureWithData[rowIndex] == -1) { |
| 278 _lastMeasureWithData[rowIndex] = idx; | 278 _lastMeasureWithData[rowIndex] = idx; |
| 279 } | 279 } |
| 280 } | 280 } |
| 281 }); | 281 }); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 var row = rowStr != null ? int.parse(rowStr) : null; | 323 var row = rowStr != null ? int.parse(rowStr) : null; |
| 324 controller.add(new DefaultChartEventImpl(scope.event, area, series, row, | 324 controller.add(new DefaultChartEventImpl(scope.event, area, series, row, |
| 325 series.measures.elementAt(_reverseIdx(index)), data)); | 325 series.measures.elementAt(_reverseIdx(index)), data)); |
| 326 } | 326 } |
| 327 | 327 |
| 328 // Stacked bar chart renders items from bottom to top (first measure is at | 328 // Stacked bar chart renders items from bottom to top (first measure is at |
| 329 // the bottom of the stack). We use [_reversedIdx] instead of index to | 329 // the bottom of the stack). We use [_reversedIdx] instead of index to |
| 330 // match the color and order of what is displayed in the legend. | 330 // match the color and order of what is displayed in the legend. |
| 331 int _reverseIdx(int index) => series.measures.length - 1 - index; | 331 int _reverseIdx(int index) => series.measures.length - 1 - index; |
| 332 } | 332 } |
| OLD | NEW |