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

Unified Diff: runtime/bin/vmservice/client/lib/src/elements/script_inset.dart

Issue 221263002: Miscellaneous Observatory UI improvements (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_inset.dart
diff --git a/runtime/bin/vmservice/client/lib/src/elements/script_inset.dart b/runtime/bin/vmservice/client/lib/src/elements/script_inset.dart
index ba6c127d4976a57f13833b26440d861dc789e3de..f2a54ba7e6e7cc776d21e875db4f80d19c57870c 100644
--- a/runtime/bin/vmservice/client/lib/src/elements/script_inset.dart
+++ b/runtime/bin/vmservice/client/lib/src/elements/script_inset.dart
@@ -8,22 +8,50 @@ import 'observatory_element.dart';
import 'package:observatory/service.dart';
import 'package:polymer/polymer.dart';
-/// Displays an Error response.
+/// Box with script source code in it.
@CustomTag('script-inset')
class ScriptInsetElement extends ObservatoryElement {
@published Script script;
@published int pos;
+ @published int endPos;
+ @published bool coverage = false;
@observable List<ScriptLine> lines = toObservable([]);
-
+
void scriptChanged(oldValue) {
_updateProperties();
+ notifyPropertyChange(#hitStyle, 0, 1);
}
void posChanged(oldValue) {
_updateProperties();
}
+ coverageChanged(oldValue) {
+ notifyPropertyChange(#lines, 0, 1);
+ notifyPropertyChange(#hitStyle, 0, 1);
+ }
+
+ 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 hitStyle(ScriptLine line) {
+ if ((script == null) || !coverage) {
+ return hitStyleNone;
+ }
+ var hit = script.hits[line.line];
+ if (hit == null) {
+ return hitStyleNone;
+ }
+ if (hit == 0) {
+ return hitStyleNotExecuted;
+ }
+ assert(hit > 0);
+ return hitStyleExecuted;
+ }
+
+
void _updateProperties() {
if (!script.loaded) {
script.load().then((_) {
@@ -34,9 +62,17 @@ class ScriptInsetElement extends ObservatoryElement {
return;
}
notifyPropertyChange(#lines, 0, 1);
- var lineNumber = script.tokenToLine(pos);
lines.clear();
- lines.add(script.lines[lineNumber-1]);
+ var startLineNumber = script.tokenToLine(pos);
+ if (endPos == null) {
+ lines.add(script.lines[startLineNumber - 1]);
+ } else {
+ var endLineNumber = script.tokenToLine(endPos);
+ assert(endLineNumber != null);
+ for (var i = startLineNumber; i <= endLineNumber; i++) {
+ lines.add(script.lines[i - 1]);
+ }
+ }
}
ScriptInsetElement.created() : super.created();

Powered by Google App Engine
This is Rietveld 408576698