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

Side by Side Diff: runtime/observatory/lib/src/elements/eval_box.dart

Issue 1275163002: Allow users to remove evaluation results. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | runtime/observatory/lib/src/elements/eval_box.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 eval_box_element; 5 library eval_box_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'observatory_element.dart'; 9 import 'observatory_element.dart';
10 import 'package:polymer/polymer.dart'; 10 import 'package:polymer/polymer.dart';
11 11
12 12
13 typedef Future evalType(String text); 13 typedef Future evalType(String text);
14 14
15 15
16 @CustomTag('eval-box') 16 @CustomTag('eval-box')
17 class EvalBoxElement extends ObservatoryElement { 17 class EvalBoxElement extends ObservatoryElement {
18 @observable String text; 18 @observable String text;
19 @observable String lineMode = "1-line"; 19 @observable String lineMode = "1-line";
20 int _exprCount = 0;
20 21
21 @published evalType callback; 22 @published evalType callback;
22 @observable ObservableList results = toObservable([]); 23 @observable ObservableList results = toObservable([]);
23 24
24 void updateLineMode(Event e, var detail, Node target) { 25 void updateLineMode(Event e, var detail, Node target) {
25 lineMode = (e.target as InputElement).value; 26 lineMode = (e.target as InputElement).value;
26 if (lineMode == '1-line') { 27 if (lineMode == '1-line') {
27 text = text.replaceAll('\n', ' '); 28 text = text.replaceAll('\n', ' ');
28 } 29 }
29 } 30 }
30 31
31 void evaluate(Event e, var detail, Node target) { 32 void evaluate(Event e, var detail, Node target) {
32 // Prevent any form action. 33 // Prevent any form action.
33 e.preventDefault(); 34 e.preventDefault();
34 35
35 // Clear the text box. 36 // Clear the text box.
36 var expr = text; 37 var expr = text;
37 text = ''; 38 text = '';
38 39
39 // Use provided callback to eval the expression. 40 // Use provided callback to eval the expression.
40 if (callback != null) { 41 if (callback != null) {
41 var map = toObservable({}); 42 var map = toObservable({});
43 map['id'] = (_exprCount++).toString();
42 map['expr'] = expr; 44 map['expr'] = expr;
43 results.insert(0, map); 45 results.insert(0, map);
44 callback(expr).then((result) { 46 callback(expr).then((result) {
45 map['value'] = result; 47 map['value'] = result;
46 }).catchError((e, st) { 48 }).catchError((e, st) {
47 map['error'] = e.message; 49 map['error'] = e.message;
48 app.handleException(e, st); 50 app.handleException(e, st);
49 }); 51 });
50 } 52 }
51 } 53 }
52 54
53 void selectExpr(MouseEvent e) { 55 void selectExpr(MouseEvent e) {
54 assert(e.target is Element); 56 assert(e.target is Element);
55 Element targetElement = e.target; 57 Element targetElement = e.target;
56 text = targetElement.getAttribute('expr'); 58 text = targetElement.getAttribute('expr');
57 } 59 }
58 60
61 void closeItem(MouseEvent e) {
62 assert(e.target is Element);
63 Element targetElement = e.target;
64 var closeId = targetElement.getAttribute('closeId');
65 results.removeWhere((item) => item['id'] == closeId);
66 }
67
59 EvalBoxElement.created() : super.created(); 68 EvalBoxElement.created() : super.created();
60 } 69 }
OLDNEW
« no previous file with comments | « no previous file | runtime/observatory/lib/src/elements/eval_box.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698