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: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/class_ref.dart'; | 8 import 'package:observatory/src/elements/class_ref.dart'; |
9 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; | 9 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; |
10 import 'package:observatory/src/elements/helpers/tag.dart'; | 10 import 'package:observatory/src/elements/helpers/tag.dart'; |
(...skipping 14 matching lines...) Expand all Loading... |
25 RenderingScheduler<ObjectCommonElement> _r; | 25 RenderingScheduler<ObjectCommonElement> _r; |
26 | 26 |
27 Stream<RenderedEvent<ObjectCommonElement>> get onRendered => _r.onRendered; | 27 Stream<RenderedEvent<ObjectCommonElement>> get onRendered => _r.onRendered; |
28 | 28 |
29 M.IsolateRef _isolate; | 29 M.IsolateRef _isolate; |
30 M.Object _object; | 30 M.Object _object; |
31 M.RetainedSizeRepository _retainedSizes; | 31 M.RetainedSizeRepository _retainedSizes; |
32 M.ReachableSizeRepository _reachableSizes; | 32 M.ReachableSizeRepository _reachableSizes; |
33 M.InboundReferencesRepository _references; | 33 M.InboundReferencesRepository _references; |
34 M.RetainingPathRepository _retainingPaths; | 34 M.RetainingPathRepository _retainingPaths; |
35 M.InstanceRepository _instances; | 35 M.ObjectRepository _objects; |
36 M.Guarded<M.Instance> _retainedSize = null; | 36 M.Guarded<M.Instance> _retainedSize = null; |
37 bool _loadingRetainedBytes = false; | 37 bool _loadingRetainedBytes = false; |
38 M.Guarded<M.Instance> _reachableSize = null; | 38 M.Guarded<M.Instance> _reachableSize = null; |
39 bool _loadingReachableBytes = false; | 39 bool _loadingReachableBytes = false; |
40 | 40 |
41 M.IsolateRef get isolate => _isolate; | 41 M.IsolateRef get isolate => _isolate; |
42 M.Object get object => _object; | 42 M.Object get object => _object; |
43 | 43 |
44 factory ObjectCommonElement( | 44 factory ObjectCommonElement( |
45 M.IsolateRef isolate, | 45 M.IsolateRef isolate, |
46 M.Object object, | 46 M.Object object, |
47 M.RetainedSizeRepository retainedSizes, | 47 M.RetainedSizeRepository retainedSizes, |
48 M.ReachableSizeRepository reachableSizes, | 48 M.ReachableSizeRepository reachableSizes, |
49 M.InboundReferencesRepository references, | 49 M.InboundReferencesRepository references, |
50 M.RetainingPathRepository retainingPaths, | 50 M.RetainingPathRepository retainingPaths, |
51 M.InstanceRepository instances, | 51 M.ObjectRepository objects, |
52 {RenderingQueue queue}) { | 52 {RenderingQueue queue}) { |
53 assert(isolate != null); | 53 assert(isolate != null); |
54 assert(object != null); | 54 assert(object != null); |
55 assert(retainedSizes != null); | 55 assert(retainedSizes != null); |
56 assert(reachableSizes != null); | 56 assert(reachableSizes != null); |
57 assert(references != null); | 57 assert(references != null); |
58 assert(retainingPaths != null); | 58 assert(retainingPaths != null); |
59 assert(instances != null); | 59 assert(objects != null); |
60 ObjectCommonElement e = document.createElement(tag.name); | 60 ObjectCommonElement e = document.createElement(tag.name); |
61 e._r = new RenderingScheduler(e, queue: queue); | 61 e._r = new RenderingScheduler(e, queue: queue); |
62 e._isolate = isolate; | 62 e._isolate = isolate; |
63 e._object = object; | 63 e._object = object; |
64 e._retainedSizes = retainedSizes; | 64 e._retainedSizes = retainedSizes; |
65 e._reachableSizes = reachableSizes; | 65 e._reachableSizes = reachableSizes; |
66 e._references = references; | 66 e._references = references; |
67 e._instances = instances; | 67 e._objects = objects; |
68 e._retainingPaths = retainingPaths; | 68 e._retainingPaths = retainingPaths; |
69 return e; | 69 return e; |
70 } | 70 } |
71 | 71 |
72 ObjectCommonElement.created() : super.created(); | 72 ObjectCommonElement.created() : super.created(); |
73 | 73 |
74 @override | 74 @override |
75 void attached() { | 75 void attached() { |
76 super.attached(); | 76 super.attached(); |
77 _r.enable(); | 77 _r.enable(); |
78 } | 78 } |
79 | 79 |
80 @override | 80 @override |
81 void detached() { | 81 void detached() { |
82 super.detached(); | 82 super.detached(); |
83 _r.disable(notify: true); | 83 _r.disable(notify: true); |
84 children = []; | 84 children = []; |
85 } | 85 } |
86 | 86 |
87 RetainingPathElement _path; | 87 RetainingPathElement _path; |
88 InboundReferencesElement _inbounds; | 88 InboundReferencesElement _inbounds; |
89 | 89 |
90 void render() { | 90 void render() { |
91 _path = _path ?? | 91 _path = _path ?? |
92 new RetainingPathElement(_isolate, _object, _retainingPaths, _instances, | 92 new RetainingPathElement(_isolate, _object, _retainingPaths, _objects, |
93 queue: _r.queue); | 93 queue: _r.queue); |
94 _inbounds = _inbounds ?? | 94 _inbounds = _inbounds ?? |
95 new InboundReferencesElement(_isolate, _object, _references, _instances, | 95 new InboundReferencesElement(_isolate, _object, _references, _objects, |
96 queue: _r.queue); | 96 queue: _r.queue); |
97 children = [ | 97 children = [ |
98 new DivElement() | 98 new DivElement() |
99 ..classes = ['memberList'] | 99 ..classes = ['memberList'] |
100 ..children = [ | 100 ..children = [ |
101 new DivElement() | 101 new DivElement() |
102 ..classes = ['memberItem'] | 102 ..classes = ['memberItem'] |
103 ..children = [ | 103 ..children = [ |
104 new DivElement() | 104 new DivElement() |
105 ..classes = ['memberName'] | 105 ..classes = ['memberName'] |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 button.onClick.listen((_) async { | 222 button.onClick.listen((_) async { |
223 button.disabled = true; | 223 button.disabled = true; |
224 _loadingRetainedBytes = true; | 224 _loadingRetainedBytes = true; |
225 _retainedSize = await _retainedSizes.get(_isolate, _object.id); | 225 _retainedSize = await _retainedSizes.get(_isolate, _object.id); |
226 _r.dirty(); | 226 _r.dirty(); |
227 }); | 227 }); |
228 content.add(button); | 228 content.add(button); |
229 return content; | 229 return content; |
230 } | 230 } |
231 } | 231 } |
OLD | NEW |