From 49a61ba3f53a135cd7ce6085fb0afc642c50d123 Mon Sep 17 00:00:00 2001 From: Todd Turnidge Date: Thu, 6 Aug 2015 17:08:33 -0700 Subject: [PATCH] Allow users to remove evaluation results. BUG=20555 R=rmacnak@google.com Review URL: https://codereview.chromium.org//1275163002 . --- .../lib/src/elements/eval_box.dart | 9 +++++++++ .../lib/src/elements/eval_box.html | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/runtime/observatory/lib/src/elements/eval_box.dart b/runtime/observatory/lib/src/elements/eval_box.dart index 957e74a47fc..7447aca2769 100644 --- a/runtime/observatory/lib/src/elements/eval_box.dart +++ b/runtime/observatory/lib/src/elements/eval_box.dart @@ -17,6 +17,7 @@ typedef Future evalType(String text); class EvalBoxElement extends ObservatoryElement { @observable String text; @observable String lineMode = "1-line"; + int _exprCount = 0; @published evalType callback; @observable ObservableList results = toObservable([]); @@ -39,6 +40,7 @@ class EvalBoxElement extends ObservatoryElement { // Use provided callback to eval the expression. if (callback != null) { var map = toObservable({}); + map['id'] = (_exprCount++).toString(); map['expr'] = expr; results.insert(0, map); callback(expr).then((result) { @@ -56,5 +58,12 @@ class EvalBoxElement extends ObservatoryElement { text = targetElement.getAttribute('expr'); } + void closeItem(MouseEvent e) { + assert(e.target is Element); + Element targetElement = e.target; + var closeId = targetElement.getAttribute('closeId'); + results.removeWhere((item) => item['id'] == closeId); + } + EvalBoxElement.created() : super.created(); } diff --git a/runtime/observatory/lib/src/elements/eval_box.html b/runtime/observatory/lib/src/elements/eval_box.html index a6d61d37e27..ad9045a9a4c 100644 --- a/runtime/observatory/lib/src/elements/eval_box.html +++ b/runtime/observatory/lib/src/elements/eval_box.html @@ -42,6 +42,22 @@ display: block; padding: 6px 6px; } + a.boxclose { + margin-left: 20px; + valign: top; + display: block; + height: 18px; + width: 18px; + line-height: 16px; + border-radius: 9px; + color: black; + font-size: 18px; + cursor: pointer; + text-align: center; + } + a.boxclose:hover { + background: lightgray; + }
+ + × +