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

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

Issue 2244433003: Converted Observatory refs elements (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Merged with master Created 4 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
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 context_ref_element; 5 import 'dart:html';
6 import 'dart:async';
7 import 'package:observatory/models.dart' as M
8 show IsolateRef, ContextRef;
9 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
10 import 'package:observatory/src/elements/helpers/tag.dart';
11 import 'package:observatory/src/elements/helpers/uris.dart';
6 12
7 import 'package:polymer/polymer.dart'; 13 class ContextRefElement extends HtmlElement implements Renderable {
8 import 'package:observatory/service.dart'; 14 static const tag = const Tag<ContextRefElement>('context-ref-wrapped');
9 import 'service_ref.dart';
10 15
11 @CustomTag('context-ref') 16 RenderingScheduler<ContextRefElement> _r;
12 class ContextRefElement extends ServiceRefElement { 17
18 Stream<RenderedEvent<ContextRefElement>> get onRendered => _r.onRendered;
19
20 M.IsolateRef _isolate;
21 M.ContextRef _context;
22
23 M.IsolateRef get isolate => _isolate;
24 M.ContextRef get context => _context;
25
26 factory ContextRefElement(M.IsolateRef isolate, M.ContextRef context,
27 {RenderingQueue queue}) {
28 assert(isolate != null);
29 assert(context != null);
30 ContextRefElement e = document.createElement(tag.name);
31 e._r = new RenderingScheduler(e, queue: queue);
32 e._isolate = isolate;
33 e._context = context;
34 return e;
35 }
36
13 ContextRefElement.created() : super.created(); 37 ContextRefElement.created() : super.created();
14 38
15 // TODO(turnidge): This is here to workaround vm/dart2js differences. 39 @override
16 dynamic expander() { 40 void attached() {
17 return expandEvent; 41 super.attached();
42 _r.enable();
18 } 43 }
19 44
20 void expandEvent(bool expand, Function onDone) { 45 @override
21 assert(ref is Context); 46 void detached() {
22 if (expand) { 47 super.detached();
23 ref.reload().then((result) { 48 _r.disable(notify: true);
24 ref = result; 49 children = [];
25 notifyPropertyChange(#ref, 0, 1); 50 }
26 }).whenComplete(onDone); 51
27 } else { 52 void render() {
28 Context refMap = ref; 53 children = [
29 refMap.variables = null; 54 new AnchorElement(href: Uris.inspect(_isolate, object: _context))
30 onDone(); 55 ..children = [
31 } 56 new SpanElement()..classes = ['empathize']..text = 'Context',
57 new SpanElement()..text = ' (${_context.length})'
58 ]
59 ];
32 } 60 }
33 } 61 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/code_view.html ('k') | runtime/observatory/lib/src/elements/context_ref.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698