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

Side by Side Diff: runtime/bin/vmservice/client/lib/src/elements/script_view.dart

Issue 192443004: Complete the switch to ServiceObject (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
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 library script_view_element; 5 library script_view_element;
6 6
7 import 'dart:html'; 7 import 'observatory_element.dart';
8 import 'isolate_element.dart'; 8 import 'package:observatory/service.dart';
9 import 'package:observatory/app.dart';
10 import 'package:polymer/polymer.dart'; 9 import 'package:polymer/polymer.dart';
11 10
12 /// Displays an Error response. 11 /// Displays an Error response.
13 @CustomTag('script-view') 12 @CustomTag('script-view')
14 class ScriptViewElement extends IsolateElement { 13 class ScriptViewElement extends ObservatoryElement {
15 @published Script script; 14 @published Script script;
15 @published bool showCoverage = false;
16 16
17 ScriptViewElement.created() : super.created(); 17 ScriptViewElement.created() : super.created();
18 18
19 String hitsStyle(ScriptLine line) { 19 void enteredView() {
20 if (line.hits == -1) { 20 super.enteredView();
21 return 'min-width:32px;'; 21 if (script == null) {
22 } else if (line.hits == 0) { 22 return;
23 return 'min-width:32px;background-color:red';
24 } 23 }
25 return 'min-width:32px;background-color:green'; 24 script.load();
26 } 25 }
27 26
28 void refreshCoverage(Event e, var detail, Node target) { 27 void _triggerHitRefresh() {
29 isolate.getMap('coverage').then((Map coverage) { 28 notifyPropertyChange(#hitsStyle, 0, 1);
30 assert(coverage['type'] == 'CodeCoverage'); 29 }
31 isolate.updateCoverage(coverage['coverage']); 30
32 notifyPropertyChange(#hitsStyle, "", hitsStyle); 31 showCoverageChanged(oldValue) {
33 }).catchError((e, st) { 32 _triggerHitRefresh();
34 print('refreshCoverage $e $st'); 33 }
34
35 static const hitStyleNone = 'min-width:32px;';
36 static const hitStyleExecuted = 'min-width:32px;background-color:green';
37 static const hitStyleNotExecuted = 'min-width:32px;background-color:red';
38
39 @observable String hitsStyle(ScriptLine line) {
40 if ((script == null) || !showCoverage) {
41 return hitStyleNone;
42 }
43 var hit = script.hits[line.line];
44 if (hit == null) {
45 return hitStyleNone;
46 }
47 if (hit == 0) {
48 return hitStyleNotExecuted;
49 }
50 assert(hit > 0);
51 return hitStyleExecuted;
52 }
53
54 void refresh(var done) {
55 script.reload().whenComplete(done);
56 }
57
58 void refreshCoverage(var done) {
59 script.isolate.refreshCoverage().then((_) {
60 _triggerHitRefresh();
61 done();
35 }); 62 });
36 } 63 }
37
38
39 } 64 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698