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

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

Issue 2873013004: Omnibus Observatory UI fixes: (Closed)
Patch Set: Created 3 years, 7 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'dart:html'; 5 import 'dart:html';
6 import 'dart:async'; 6 import 'dart:async';
7 import 'package:observatory/models.dart' as M; 7 import 'package:observatory/models.dart' as M;
8 import 'package:observatory/src/elements/curly_block.dart'; 8 import 'package:observatory/src/elements/curly_block.dart';
9 import 'package:observatory/src/elements/instance_ref.dart'; 9 import 'package:observatory/src/elements/instance_ref.dart';
10 import 'package:observatory/src/elements/helpers/any_ref.dart'; 10 import 'package:observatory/src/elements/helpers/any_ref.dart';
11 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; 11 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
12 import 'package:observatory/src/elements/helpers/tag.dart'; 12 import 'package:observatory/src/elements/helpers/tag.dart';
13 13
14 class InboundReferencesElement extends HtmlElement implements Renderable { 14 class InboundReferencesElement extends HtmlElement implements Renderable {
15 static const tag = const Tag<InboundReferencesElement>('inbound-references', 15 static const tag = const Tag<InboundReferencesElement>('inbound-references',
16 dependencies: const [CurlyBlockElement.tag, InstanceRefElement.tag]); 16 dependencies: const [CurlyBlockElement.tag, InstanceRefElement.tag]);
17 17
18 RenderingScheduler<InboundReferencesElement> _r; 18 RenderingScheduler<InboundReferencesElement> _r;
19 19
20 Stream<RenderedEvent<InboundReferencesElement>> get onRendered => 20 Stream<RenderedEvent<InboundReferencesElement>> get onRendered =>
21 _r.onRendered; 21 _r.onRendered;
22 22
23 M.IsolateRef _isolate; 23 M.IsolateRef _isolate;
24 M.ObjectRef _object; 24 M.ObjectRef _object;
25 M.InboundReferencesRepository _references; 25 M.InboundReferencesRepository _references;
26 M.InstanceRepository _instances; 26 M.ObjectRepository _objects;
27 M.InboundReferences _inbounds; 27 M.InboundReferences _inbounds;
28 bool _expanded = false; 28 bool _expanded = false;
29 29
30 M.IsolateRef get isolate => _isolate; 30 M.IsolateRef get isolate => _isolate;
31 M.ObjectRef get object => _object; 31 M.ObjectRef get object => _object;
32 32
33 factory InboundReferencesElement(M.IsolateRef isolate, M.ObjectRef object, 33 factory InboundReferencesElement(M.IsolateRef isolate, M.ObjectRef object,
34 M.InboundReferencesRepository references, M.InstanceRepository instances, 34 M.InboundReferencesRepository references, M.ObjectRepository objects,
35 {RenderingQueue queue}) { 35 {RenderingQueue queue}) {
36 assert(isolate != null); 36 assert(isolate != null);
37 assert(object != null); 37 assert(object != null);
38 assert(references != null); 38 assert(references != null);
39 assert(instances != null); 39 assert(objects != null);
40 InboundReferencesElement e = document.createElement(tag.name); 40 InboundReferencesElement e = document.createElement(tag.name);
41 e._r = new RenderingScheduler(e, queue: queue); 41 e._r = new RenderingScheduler(e, queue: queue);
42 e._isolate = isolate; 42 e._isolate = isolate;
43 e._object = object; 43 e._object = object;
44 e._references = references; 44 e._references = references;
45 e._instances = instances; 45 e._objects = objects;
46 return e; 46 return e;
47 } 47 }
48 48
49 InboundReferencesElement.created() : super.created(); 49 InboundReferencesElement.created() : super.created();
50 50
51 @override 51 @override
52 void attached() { 52 void attached() {
53 super.attached(); 53 super.attached();
54 _r.enable(); 54 _r.enable();
55 } 55 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 87 }
88 return _inbounds.elements.map(_createItem).toList(); 88 return _inbounds.elements.map(_createItem).toList();
89 } 89 }
90 90
91 Element _createItem(M.InboundReference reference) { 91 Element _createItem(M.InboundReference reference) {
92 final content = <Element>[]; 92 final content = <Element>[];
93 93
94 if (reference.parentField != null) { 94 if (reference.parentField != null) {
95 content.addAll([ 95 content.addAll([
96 new SpanElement()..text = 'referenced by ', 96 new SpanElement()..text = 'referenced by ',
97 anyRef(_isolate, reference.parentField, _instances, queue: _r.queue), 97 anyRef(_isolate, reference.parentField, _objects, queue: _r.queue),
98 new SpanElement()..text = ' of ' 98 new SpanElement()..text = ' of '
99 ]); 99 ]);
100 } else if (reference.parentListIndex != null) { 100 } else if (reference.parentListIndex != null) {
101 content.add(new SpanElement() 101 content.add(new SpanElement()
102 ..text = 'referenced by [ ${reference.parentListIndex} ] of '); 102 ..text = 'referenced by [ ${reference.parentListIndex} ] of ');
103 } else if (reference.parentWordOffset != null) { 103 } else if (reference.parentWordOffset != null) {
104 content.add(new SpanElement() 104 content.add(new SpanElement()
105 ..text = 'referenced by offset ${reference.parentWordOffset} of '); 105 ..text = 'referenced by offset ${reference.parentWordOffset} of ');
106 } 106 }
107 107
108 content.addAll([ 108 content.addAll([
109 anyRef(_isolate, reference.source, _instances, queue: _r.queue), 109 anyRef(_isolate, reference.source, _objects, queue: _r.queue),
110 new InboundReferencesElement( 110 new InboundReferencesElement(
111 _isolate, reference.source, _references, _instances, 111 _isolate, reference.source, _references, _objects,
112 queue: _r.queue) 112 queue: _r.queue)
113 ]); 113 ]);
114 114
115 return new DivElement() 115 return new DivElement()
116 ..classes = ['indent'] 116 ..classes = ['indent']
117 ..children = content; 117 ..children = content;
118 } 118 }
119 } 119 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/icdata_view.dart ('k') | runtime/observatory/lib/src/elements/instance_ref.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698