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

Side by Side Diff: runtime/observatory/lib/src/elements/field_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 field_ref_element; 5 import 'dart:html';
6 import 'dart:async';
7 import 'package:observatory/models.dart' as M;
8 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
9 import 'package:observatory/src/elements/helpers/tag.dart';
10 import 'package:observatory/src/elements/helpers/uris.dart';
11 import 'package:observatory/src/elements/instance_ref.dart';
6 12
7 import 'package:polymer/polymer.dart'; 13 class FieldRefElement extends HtmlElement implements Renderable {
8 import 'service_ref.dart'; 14 static const tag = const Tag<FieldRefElement>('field-ref-wrapped',
15 dependencies: const [
16 InstanceRefElement.tag
17 ]);
9 18
10 @CustomTag('field-ref') 19 RenderingScheduler<FieldRefElement> _r;
11 class FieldRefElement extends ServiceRefElement { 20
21 Stream<RenderedEvent<FieldRefElement>> get onRendered => _r.onRendered;
22
23 M.IsolateRef _isolate;
24 M.FieldRef _field;
25 M.InstanceRepository _instances;
26
27 M.IsolateRef get isolate => _isolate;
28 M.FieldRef get field => _field;
29
30 factory FieldRefElement(M.IsolateRef isolate, M.FieldRef field,
31 M.InstanceRepository instances, {RenderingQueue queue}) {
32 assert(isolate != null);
33 assert(field != null);
34 assert(instances != null);
35 FieldRefElement e = document.createElement(tag.name);
36 e._r = new RenderingScheduler(e, queue: queue);
37 e._isolate = isolate;
38 e._field = field;
39 e._instances = instances;
40 return e;
41 }
42
12 FieldRefElement.created() : super.created(); 43 FieldRefElement.created() : super.created();
13 } 44
45 @override
46 void attached() {
47 super.attached();
48 _r.enable();
49 }
50
51 @override
52 void detached() {
53 super.detached();
54 _r.disable(notify: true);
55 children = [];
56 }
57
58 void render() {
59 var header = '';
60 if (_field.isStatic) {
61 if (_field.dartOwner is M.ClassRef) {
62 header += 'static ';
63 } else {
64 header += 'top-level ';
65 }
66 }
67 if (_field.isFinal) {
68 header += 'final ';
69 } else if (_field.isConst) {
70 header += 'const ';
71 } else if (_field.declaredType.name == 'dynamic'){
72 header += 'var ';
73 }
74 if (_field.declaredType.name == 'dynamic') {
75 children = [
76 new SpanElement()..text = header,
77 new AnchorElement(href: Uris.inspect(_isolate, object: _field))
78 ..text = _field.name
79 ];
80 }else {
81 children = [
82 new SpanElement()..text = header,
83 new InstanceRefElement(_isolate, _field.declaredType, _instances,
84 queue: _r.queue),
85 new SpanElement()..text = ' ',
86 new AnchorElement(href: Uris.inspect(_isolate, object: _field))
87 ..text = _field.name
88 ];
89 }
90 }
91 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/eval_link.html ('k') | runtime/observatory/lib/src/elements/field_ref.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698