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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: runtime/bin/vmservice/client/lib/src/elements/script_view.dart
diff --git a/runtime/bin/vmservice/client/lib/src/elements/script_view.dart b/runtime/bin/vmservice/client/lib/src/elements/script_view.dart
index 7d04c2bcf034981e9ec8e16a2e3475c9342b48ac..687f07885d67de9fc24a3746a9059e181f16eb9c 100644
--- a/runtime/bin/vmservice/client/lib/src/elements/script_view.dart
+++ b/runtime/bin/vmservice/client/lib/src/elements/script_view.dart
@@ -4,36 +4,61 @@
library script_view_element;
-import 'dart:html';
-import 'isolate_element.dart';
-import 'package:observatory/app.dart';
+import 'observatory_element.dart';
+import 'package:observatory/service.dart';
import 'package:polymer/polymer.dart';
/// Displays an Error response.
@CustomTag('script-view')
-class ScriptViewElement extends IsolateElement {
+class ScriptViewElement extends ObservatoryElement {
@published Script script;
+ @published bool showCoverage = false;
ScriptViewElement.created() : super.created();
- String hitsStyle(ScriptLine line) {
- if (line.hits == -1) {
- return 'min-width:32px;';
- } else if (line.hits == 0) {
- return 'min-width:32px;background-color:red';
+ void enteredView() {
+ super.enteredView();
+ if (script == null) {
+ return;
}
- return 'min-width:32px;background-color:green';
+ script.load();
}
- void refreshCoverage(Event e, var detail, Node target) {
- isolate.getMap('coverage').then((Map coverage) {
- assert(coverage['type'] == 'CodeCoverage');
- isolate.updateCoverage(coverage['coverage']);
- notifyPropertyChange(#hitsStyle, "", hitsStyle);
- }).catchError((e, st) {
- print('refreshCoverage $e $st');
- });
+ void _triggerHitRefresh() {
+ notifyPropertyChange(#hitsStyle, 0, 1);
+ }
+
+ showCoverageChanged(oldValue) {
+ _triggerHitRefresh();
+ }
+
+ static const hitStyleNone = 'min-width:32px;';
+ static const hitStyleExecuted = 'min-width:32px;background-color:green';
+ static const hitStyleNotExecuted = 'min-width:32px;background-color:red';
+
+ @observable String hitsStyle(ScriptLine line) {
+ if ((script == null) || !showCoverage) {
+ return hitStyleNone;
+ }
+ var hit = script.hits[line.line];
+ if (hit == null) {
+ return hitStyleNone;
+ }
+ if (hit == 0) {
+ return hitStyleNotExecuted;
+ }
+ assert(hit > 0);
+ return hitStyleExecuted;
}
+ void refresh(var done) {
+ script.reload().whenComplete(done);
+ }
+ void refreshCoverage(var done) {
+ script.isolate.refreshCoverage().then((_) {
+ _triggerHitRefresh();
+ done();
+ });
+ }
}

Powered by Google App Engine
This is Rietveld 408576698