OLD | NEW |
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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:html'; | 6 import 'dart:html'; |
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/helpers/any_ref.dart'; | 9 import 'package:observatory/src/elements/helpers/any_ref.dart'; |
10 import 'package:observatory/src/elements/helpers/nav_bar.dart'; | 10 import 'package:observatory/src/elements/helpers/nav_bar.dart'; |
11 import 'package:observatory/src/elements/helpers/nav_menu.dart'; | 11 import 'package:observatory/src/elements/helpers/nav_menu.dart'; |
12 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; | 12 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; |
13 import 'package:observatory/src/elements/helpers/tag.dart'; | 13 import 'package:observatory/src/elements/helpers/tag.dart'; |
14 import 'package:observatory/src/elements/nav/isolate_menu.dart'; | 14 import 'package:observatory/src/elements/nav/isolate_menu.dart'; |
15 import 'package:observatory/src/elements/nav/notify.dart'; | 15 import 'package:observatory/src/elements/nav/notify.dart'; |
16 import 'package:observatory/src/elements/nav/refresh.dart'; | 16 import 'package:observatory/src/elements/nav/refresh.dart'; |
17 import 'package:observatory/src/elements/nav/top_menu.dart'; | 17 import 'package:observatory/src/elements/nav/top_menu.dart'; |
18 import 'package:observatory/src/elements/nav/vm_menu.dart'; | 18 import 'package:observatory/src/elements/nav/vm_menu.dart'; |
19 import 'package:observatory/src/elements/object_common.dart'; | 19 import 'package:observatory/src/elements/object_common.dart'; |
20 import 'package:observatory/src/elements/view_footer.dart'; | 20 import 'package:observatory/src/elements/view_footer.dart'; |
21 | 21 |
22 class ICDataViewElement extends HtmlElement implements Renderable { | 22 class ICDataViewElement extends HtmlElement implements Renderable { |
23 static const tag = const Tag<ICDataViewElement>('icdata-view', | 23 static const tag = |
24 dependencies: const [ | 24 const Tag<ICDataViewElement>('icdata-view', dependencies: const [ |
25 CurlyBlockElement.tag, | 25 CurlyBlockElement.tag, |
26 NavTopMenuElement.tag, | 26 NavTopMenuElement.tag, |
27 NavVMMenuElement.tag, | 27 NavVMMenuElement.tag, |
28 NavIsolateMenuElement.tag, | 28 NavIsolateMenuElement.tag, |
29 NavRefreshElement.tag, | 29 NavRefreshElement.tag, |
30 NavNotifyElement.tag, | 30 NavNotifyElement.tag, |
31 ObjectCommonElement.tag, | 31 ObjectCommonElement.tag, |
32 ViewFooterElement.tag | 32 ViewFooterElement.tag |
33 ]); | 33 ]); |
34 | 34 |
35 RenderingScheduler<ICDataViewElement> _r; | 35 RenderingScheduler<ICDataViewElement> _r; |
36 | 36 |
37 Stream<RenderedEvent<ICDataViewElement>> get onRendered => _r.onRendered; | 37 Stream<RenderedEvent<ICDataViewElement>> get onRendered => _r.onRendered; |
38 | 38 |
39 M.VM _vm; | 39 M.VM _vm; |
40 M.IsolateRef _isolate; | 40 M.IsolateRef _isolate; |
41 M.EventRepository _events; | 41 M.EventRepository _events; |
42 M.NotificationRepository _notifications; | 42 M.NotificationRepository _notifications; |
43 M.ICData _icdata; | 43 M.ICData _icdata; |
44 M.ICDataRepository _icdatas; | 44 M.ICDataRepository _icdatas; |
45 M.RetainedSizeRepository _retainedSizes; | 45 M.RetainedSizeRepository _retainedSizes; |
46 M.ReachableSizeRepository _reachableSizes; | 46 M.ReachableSizeRepository _reachableSizes; |
47 M.InboundReferencesRepository _references; | 47 M.InboundReferencesRepository _references; |
48 M.RetainingPathRepository _retainingPaths; | 48 M.RetainingPathRepository _retainingPaths; |
49 M.InstanceRepository _instances; | 49 M.InstanceRepository _instances; |
50 | 50 |
51 | |
52 M.VMRef get vm => _vm; | 51 M.VMRef get vm => _vm; |
53 M.IsolateRef get isolate => _isolate; | 52 M.IsolateRef get isolate => _isolate; |
54 M.NotificationRepository get notifications => _notifications; | 53 M.NotificationRepository get notifications => _notifications; |
55 M.ICData get icdata => _icdata; | 54 M.ICData get icdata => _icdata; |
56 | 55 |
57 factory ICDataViewElement(M.VM vm, M.IsolateRef isolate, M.ICData icdata, | 56 factory ICDataViewElement( |
58 M.EventRepository events, | 57 M.VM vm, |
59 M.NotificationRepository notifications, | 58 M.IsolateRef isolate, |
60 M.ICDataRepository icdatas, | 59 M.ICData icdata, |
61 M.RetainedSizeRepository retainedSizes, | 60 M.EventRepository events, |
62 M.ReachableSizeRepository reachableSizes, | 61 M.NotificationRepository notifications, |
63 M.InboundReferencesRepository references, | 62 M.ICDataRepository icdatas, |
64 M.RetainingPathRepository retainingPaths, | 63 M.RetainedSizeRepository retainedSizes, |
65 M.InstanceRepository instances, | 64 M.ReachableSizeRepository reachableSizes, |
66 {RenderingQueue queue}) { | 65 M.InboundReferencesRepository references, |
| 66 M.RetainingPathRepository retainingPaths, |
| 67 M.InstanceRepository instances, |
| 68 {RenderingQueue queue}) { |
67 assert(vm != null); | 69 assert(vm != null); |
68 assert(isolate != null); | 70 assert(isolate != null); |
69 assert(events != null); | 71 assert(events != null); |
70 assert(notifications != null); | 72 assert(notifications != null); |
71 assert(icdata != null); | 73 assert(icdata != null); |
72 assert(icdatas != null); | 74 assert(icdatas != null); |
73 assert(retainedSizes != null); | 75 assert(retainedSizes != null); |
74 assert(reachableSizes != null); | 76 assert(reachableSizes != null); |
75 assert(references != null); | 77 assert(references != null); |
76 assert(retainingPaths != null); | 78 assert(retainingPaths != null); |
(...skipping 30 matching lines...) Expand all Loading... |
107 } | 109 } |
108 | 110 |
109 void render() { | 111 void render() { |
110 children = [ | 112 children = [ |
111 navBar([ | 113 navBar([ |
112 new NavTopMenuElement(queue: _r.queue), | 114 new NavTopMenuElement(queue: _r.queue), |
113 new NavVMMenuElement(_vm, _events, queue: _r.queue), | 115 new NavVMMenuElement(_vm, _events, queue: _r.queue), |
114 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue), | 116 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue), |
115 navMenu('icdata'), | 117 navMenu('icdata'), |
116 new NavRefreshElement(queue: _r.queue) | 118 new NavRefreshElement(queue: _r.queue) |
117 ..onRefresh.listen((e) async { | 119 ..onRefresh.listen((e) async { |
118 e.element.disabled = true; | 120 e.element.disabled = true; |
119 _icdata = await _icdatas.get(_isolate, _icdata.id); | 121 _icdata = await _icdatas.get(_isolate, _icdata.id); |
120 _r.dirty(); | 122 _r.dirty(); |
121 }), | 123 }), |
122 new NavNotifyElement(_notifications, queue: _r.queue) | 124 new NavNotifyElement(_notifications, queue: _r.queue) |
123 ]), | 125 ]), |
124 new DivElement()..classes = ['content-centered-big'] | 126 new DivElement() |
| 127 ..classes = ['content-centered-big'] |
125 ..children = [ | 128 ..children = [ |
126 new HeadingElement.h2()..text = 'ICData', | 129 new HeadingElement.h2()..text = 'ICData', |
127 new HRElement(), | 130 new HRElement(), |
128 new ObjectCommonElement(_isolate, _icdata, _retainedSizes, | 131 new ObjectCommonElement(_isolate, _icdata, _retainedSizes, |
129 _reachableSizes, _references, _retainingPaths, | 132 _reachableSizes, _references, _retainingPaths, _instances, |
130 _instances, queue: _r.queue), | 133 queue: _r.queue), |
131 new DivElement()..classes = ['memberList'] | 134 new DivElement() |
| 135 ..classes = ['memberList'] |
132 ..children = [ | 136 ..children = [ |
133 new DivElement()..classes = ['memberItem'] | 137 new DivElement() |
| 138 ..classes = ['memberItem'] |
134 ..children = [ | 139 ..children = [ |
135 new DivElement()..classes = ['memberName'] | 140 new DivElement() |
| 141 ..classes = ['memberName'] |
136 ..text = 'selector', | 142 ..text = 'selector', |
137 new DivElement()..classes = ['memberName'] | 143 new DivElement() |
| 144 ..classes = ['memberName'] |
138 ..text = _icdata.selector | 145 ..text = _icdata.selector |
139 ], | 146 ], |
140 new DivElement()..classes = ['memberItem'] | 147 new DivElement() |
| 148 ..classes = ['memberItem'] |
141 ..children = [ | 149 ..children = [ |
142 new DivElement()..classes = ['memberName'] | 150 new DivElement() |
| 151 ..classes = ['memberName'] |
143 ..text = 'owner', | 152 ..text = 'owner', |
144 new DivElement()..classes = ['memberName'] | 153 new DivElement() |
| 154 ..classes = ['memberName'] |
145 ..children = [ | 155 ..children = [ |
146 _icdata.dartOwner == null | 156 _icdata.dartOwner == null |
147 ? (new SpanElement()..text = '<none>') | 157 ? (new SpanElement()..text = '<none>') |
148 : anyRef(_isolate, _icdata.dartOwner, _instances, | 158 : anyRef(_isolate, _icdata.dartOwner, _instances, |
149 queue: _r.queue) | 159 queue: _r.queue) |
150 ] | 160 ] |
151 ], | 161 ], |
152 new DivElement()..classes = ['memberItem'] | 162 new DivElement() |
| 163 ..classes = ['memberItem'] |
153 ..children = [ | 164 ..children = [ |
154 new DivElement()..classes = ['memberName'] | 165 new DivElement() |
| 166 ..classes = ['memberName'] |
155 ..text = 'argumentsDescriptor', | 167 ..text = 'argumentsDescriptor', |
156 new DivElement()..classes = ['memberName'] | 168 new DivElement() |
| 169 ..classes = ['memberName'] |
157 ..children = [ | 170 ..children = [ |
158 _icdata.argumentsDescriptor == null | 171 _icdata.argumentsDescriptor == null |
159 ? (new SpanElement()..text = '<none>') | 172 ? (new SpanElement()..text = '<none>') |
160 : anyRef(_isolate, _icdata.argumentsDescriptor, | 173 : anyRef( |
161 _instances, queue: _r.queue) | 174 _isolate, _icdata.argumentsDescriptor, _instances, |
| 175 queue: _r.queue) |
162 ] | 176 ] |
163 ], | 177 ], |
164 new DivElement()..classes = ['memberItem'] | 178 new DivElement() |
| 179 ..classes = ['memberItem'] |
165 ..children = [ | 180 ..children = [ |
166 new DivElement()..classes = ['memberName'] | 181 new DivElement() |
| 182 ..classes = ['memberName'] |
167 ..text = 'entries', | 183 ..text = 'entries', |
168 new DivElement()..classes = ['memberName'] | 184 new DivElement() |
| 185 ..classes = ['memberName'] |
169 ..children = [ | 186 ..children = [ |
170 _icdata.entries == null | 187 _icdata.entries == null |
171 ? (new SpanElement()..text = '<none>') | 188 ? (new SpanElement()..text = '<none>') |
172 : anyRef(_isolate, _icdata.entries, _instances, | 189 : anyRef(_isolate, _icdata.entries, _instances, |
173 queue: _r.queue) | 190 queue: _r.queue) |
174 ] | 191 ] |
175 ] | 192 ] |
176 ], | 193 ], |
177 new HRElement(), | 194 new HRElement(), |
178 new ViewFooterElement(queue: _r.queue) | 195 new ViewFooterElement(queue: _r.queue) |
179 ] | 196 ] |
180 ]; | 197 ]; |
181 } | 198 } |
182 } | 199 } |
OLD | NEW |