OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.vmstats; | 5 part of dart.vmstats; |
6 | 6 |
7 class BarGraph { | 7 class BarGraph { |
8 CanvasElement _canvas; | 8 CanvasElement _canvas; |
9 GraphModel _model; | 9 GraphModel _model; |
10 List<Element> _elements; | 10 List<Element> _elements; |
(...skipping 13 matching lines...) Expand all Loading... |
24 BarGraph(this._canvas, this._elements) { | 24 BarGraph(this._canvas, this._elements) { |
25 var maxElements = | 25 var maxElements = |
26 (_canvas.width - LEFT_MARGIN - RIGHT_MARGIN) ~/ SAMPLE_WIDTH; | 26 (_canvas.width - LEFT_MARGIN - RIGHT_MARGIN) ~/ SAMPLE_WIDTH; |
27 _model = new GraphModel(maxElements); | 27 _model = new GraphModel(maxElements); |
28 _model.addListener(drawGraph, null); | 28 _model.addListener(drawGraph, null); |
29 drawBarGraph(); | 29 drawBarGraph(); |
30 } | 30 } |
31 | 31 |
32 void addSample(List<int> segments) { | 32 void addSample(List<int> segments) { |
33 if (segments.length != _elements.length) { | 33 if (segments.length != _elements.length) { |
34 throw new RuntimeError('invalid sample size for graph'); | 34 throw new ArgumentError('invalid sample size for graph'); |
35 } | 35 } |
36 _model.addSample(segments); | 36 _model.addSample(segments); |
37 } | 37 } |
38 | 38 |
39 void drawBarGraph() { | 39 void drawBarGraph() { |
40 // Draw chart's outer box. | 40 // Draw chart's outer box. |
41 var context = _canvas.context2D; | 41 var context = _canvas.context2D; |
42 context.beginPath(); | 42 context.beginPath(); |
43 context.strokeStyle = 'black'; | 43 context.strokeStyle = 'black'; |
44 // The '2's are the width of the line, even though 1 is specified. | 44 // The '2's are the width of the line, even though 1 is specified. |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 216 |
217 int get length => _segments.length; | 217 int get length => _segments.length; |
218 int operator[](int i) => _segments[i]; | 218 int operator[](int i) => _segments[i]; |
219 | 219 |
220 Iterator<int> get iterator => _segments.iterator; | 220 Iterator<int> get iterator => _segments.iterator; |
221 | 221 |
222 int total() { | 222 int total() { |
223 return _segments.fold(0, (int prev, int element) => prev + element); | 223 return _segments.fold(0, (int prev, int element) => prev + element); |
224 } | 224 } |
225 } | 225 } |
OLD | NEW |