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

Side by Side Diff: benchmark/lib/dashboard_view.dart

Issue 1829573002: Fix all strong mode warnings in protoc-plugin (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: Created 4 years, 9 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 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 library protoc.benchmark.html_view; 5 library protoc.benchmark.html_view;
6 6
7 import 'dart:async' show Stream, StreamController, EventSink; 7 import 'dart:async' show Stream, StreamController, EventSink;
8 import 'dart:html'; 8 import 'dart:html';
9 9
10 import 'generated/benchmark.pb.dart' as pb; 10 import 'generated/benchmark.pb.dart' as pb;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 this._runButton, 66 this._runButton,
67 this._selectAllButton, 67 this._selectAllButton,
68 this._selectNoneButton, 68 this._selectNoneButton,
69 this._status, 69 this._status,
70 this._envElt, 70 this._envElt,
71 this._menu, 71 this._menu,
72 this._responseTable, 72 this._responseTable,
73 this._jsonView); 73 this._jsonView);
74 74
75 factory DashboardView() { 75 factory DashboardView() {
76 var elt = _template.clone(true); 76 Element elt = _template.clone(true);
77 find(String q) => elt.querySelector(q); 77 find(String q) => elt.querySelector(q);
78 _Button button(q) => new _Button(find(q)); 78 _Button button(q) => new _Button(find(q));
79 label(q) => new _Label(find(q)); 79 label(q) => new _Label(find(q));
80 menu(q) => new _Menu(find(q)); 80 menu(q) => new _Menu(find(q));
81 json(q) => new _JsonView(find(q)); 81 json(q) => new _JsonView(find(q));
82 return new DashboardView._raw( 82 return new DashboardView._raw(
83 elt, 83 elt,
84 button('.dv-run') 84 button('.dv-run')
85 ..elt.style.color = "#FFFFFF" 85 ..elt.style.color = "#FFFFFF"
86 ..elt.style.backgroundColor = "rgb(209, 72, 64)", 86 ..elt.style.backgroundColor = "rgb(209, 72, 64)",
87 button('.dv-select-all'), 87 button('.dv-select-all'),
88 button('.dv-select-none'), 88 button('.dv-select-none'),
89 label('.dv-status'), 89 label('.dv-status'),
90 find('.dv-env'), 90 find('.dv-env'),
91 menu('.dv-menu'), 91 menu('.dv-menu'),
92 find('.dv-table'), 92 find('.dv-table'),
93 json('.dv-json')); 93 json('.dv-json'));
94 } 94 }
95 95
96 Stream get onRunButtonClick => _runButton.onClick; 96 Stream get onRunButtonClick => _runButton.onClick;
97 Stream get onSelectAllClick => _selectAllButton.onClick; 97 Stream get onSelectAllClick => _selectAllButton.onClick;
98 Stream get onSelectNoneClick => _selectNoneButton.onClick; 98 Stream get onSelectNoneClick => _selectNoneButton.onClick;
99 Stream<String> get onMenuChange => 99 Stream<String> get onMenuChange =>
100 _menu.onChange.map((item) => item == noBaseline ? null : item); 100 _menu.onChange.map((item) => item == noBaseline ? null : item)
vsm 2016/03/23 17:20:24 Stream.map is a generic method. Strong mode will
Leaf 2016/03/23 18:09:59 I don't understand why inference is failing here.
skybrian 2016/03/23 18:34:17 I'm using Atom with an SDK built at HEAD. I think
skybrian 2016/04/01 02:00:15 It works now. Reverted.
101 as Stream<String>;
101 Stream<SelectEvent<pb.Request>> get onSelectionChange => 102 Stream<SelectEvent<pb.Request>> get onSelectionChange =>
102 _selectionChanges.stream; 103 _selectionChanges.stream;
103 104
104 void render(DashboardModel model) { 105 void render(DashboardModel model) {
105 _runButton.render("Run", model.canRun); 106 _runButton.render("Run", model.canRun);
106 _selectAllButton.render("Select All", true); 107 _selectAllButton.render("Select All", true);
107 _selectNoneButton.render("Select None", true); 108 _selectNoneButton.render("Select None", true);
108 if (!model.latest.hasStatus() || model.latest.status == pb.Status.DONE) { 109 if (!model.latest.hasStatus() || model.latest.status == pb.Status.DONE) {
109 _status.render(""); 110 _status.render("");
110 } else { 111 } else {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 _selected.elt, 170 _selected.elt,
170 _summary.elt, 171 _summary.elt,
171 _baseline.elt, 172 _baseline.elt,
172 _median.elt, 173 _median.elt,
173 _max.elt, 174 _max.elt,
174 _count.elt, 175 _count.elt,
175 _units.elt 176 _units.elt
176 ]); 177 ]);
177 } 178 }
178 179
179 void render(Row row, pb.Report r, 180 void render(
180 EventSink<SelectEvent<pb.Request>> rowSelected) { 181 Row row, pb.Report r, EventSink<SelectEvent<pb.Request>> rowSelected) {
181 var b = row.benchmark; 182 var b = row.benchmark;
182 var response = row.findResponse(r); 183 var response = row.findResponse(r);
183 _selected.render(row.selected, item: row.request, sink: rowSelected); 184 _selected.render(row.selected, item: row.request, sink: rowSelected);
184 _summary.render(b.summary); 185 _summary.render(b.summary);
185 _baseline.render(b.measureSample(row.baseline)); 186 _baseline.render(b.measureSample(row.baseline));
186 _median.render(b.measureSample(b.medianSample(response))); 187 _median.render(b.measureSample(b.medianSample(response)));
187 _max.render(b.measureSample(b.maxSample(response))); 188 _max.render(b.measureSample(b.maxSample(response)));
188 _count.render(response == null ? "0" : "${response.samples.length}"); 189 _count.render(response == null ? "0" : "${response.samples.length}");
189 _units.render(row.benchmark.measureSampleUnits); 190 _units.render(row.benchmark.measureSampleUnits);
190 } 191 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 /// A menu of selectable text items. 236 /// A menu of selectable text items.
236 class _Menu { 237 class _Menu {
237 final SelectElement elt; 238 final SelectElement elt;
238 final _changes = new StreamController.broadcast(); 239 final _changes = new StreamController.broadcast();
239 final _options = new List<_MenuOption>(); 240 final _options = new List<_MenuOption>();
240 241
241 _Menu(this.elt) { 242 _Menu(this.elt) {
242 elt.onChange.listen((e) => _changes.add(elt.value)); 243 elt.onChange.listen((e) => _changes.add(elt.value));
243 } 244 }
244 245
245 Stream<String> get onChange => _changes.stream; 246 Stream<String> get onChange => _changes.stream as Stream<String>;
vsm 2016/03/23 17:20:24 This will fail at runtime if the runtime type of _
Leaf 2016/03/23 18:09:59 Agreed.
skybrian 2016/04/01 02:00:15 Done
246 247
247 void render(List<String> items, String selected) { 248 void render(List<String> items, String selected) {
248 var it = items.iterator; 249 var it = items.iterator;
249 250
250 // Update existing items 251 // Update existing items
251 for (var opt in _options) { 252 for (var opt in _options) {
252 var hasNext = it.moveNext(); 253 var hasNext = it.moveNext();
253 assert(hasNext); // assume menu never shrinks 254 assert(hasNext); // assume menu never shrinks
254 opt.render(it.current, it.current == selected); 255 opt.render(it.current, it.current == selected);
255 } 256 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 336
336 void render(bool checked, {EventSink<SelectEvent<T>> sink, T item}) { 337 void render(bool checked, {EventSink<SelectEvent<T>> sink, T item}) {
337 if (_renderedChecked != checked) { 338 if (_renderedChecked != checked) {
338 elt.checked = checked; 339 elt.checked = checked;
339 _renderedChecked = checked; 340 _renderedChecked = checked;
340 } 341 }
341 _item = item; 342 _item = item;
342 _sink = sink; 343 _sink = sink;
343 } 344 }
344 } 345 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698