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 library service_object_view_element; | 5 library service_object_view_element; |
6 | 6 |
7 import 'dart:html'; | 7 import 'dart:html'; |
8 import 'package:logging/logging.dart'; | 8 import 'package:logging/logging.dart'; |
9 import 'package:observatory/service.dart'; | 9 import 'package:observatory/service.dart'; |
10 import 'package:observatory/tracer.dart'; | 10 import 'package:observatory/tracer.dart'; |
11 import 'package:observatory/elements.dart'; | 11 import 'package:observatory/elements.dart'; |
12 import 'package:polymer/polymer.dart'; | 12 import 'package:polymer/polymer.dart'; |
13 import 'observatory_element.dart'; | 13 import 'observatory_element.dart'; |
14 | 14 |
15 @CustomTag('service-view') | 15 @CustomTag('service-view') |
16 class ServiceObjectViewElement extends ObservatoryElement { | 16 class ServiceObjectViewElement extends ObservatoryElement { |
17 @published ServiceObject object; | 17 @published ServiceObject object; |
18 @published ObservableMap args; | 18 @published ObservableMap args; |
19 | 19 |
20 ServiceObjectViewElement.created() : super.created(); | 20 ServiceObjectViewElement.created() : super.created(); |
21 | 21 |
22 ObservatoryElement _constructElementForObject() { | 22 ObservatoryElement _constructElementForObject() { |
23 var type = object.vmType; | 23 var type = object.type; |
24 switch (type) { | 24 switch (type) { |
25 case 'AllocationProfile': | 25 case 'AllocationProfile': |
26 HeapProfileElement element = new Element.tag('heap-profile'); | 26 HeapProfileElement element = new Element.tag('heap-profile'); |
27 element.profile = object; | 27 element.profile = object; |
28 return element; | 28 return element; |
29 case 'BreakpointList': | 29 case 'BreakpointList': |
30 BreakpointListElement element = new Element.tag('breakpoint-list'); | 30 BreakpointListElement element = new Element.tag('breakpoint-list'); |
31 element.msg = object; | 31 element.msg = object; |
32 return element; | 32 return element; |
33 case 'Class': | 33 case 'Class': |
(...skipping 21 matching lines...) Expand all Loading... |
55 element.flagList = object; | 55 element.flagList = object; |
56 return element; | 56 return element; |
57 case 'Function': | 57 case 'Function': |
58 FunctionViewElement element = new Element.tag('function-view'); | 58 FunctionViewElement element = new Element.tag('function-view'); |
59 element.function = object; | 59 element.function = object; |
60 return element; | 60 return element; |
61 case 'HeapMap': | 61 case 'HeapMap': |
62 HeapMapElement element = new Element.tag('heap-map'); | 62 HeapMapElement element = new Element.tag('heap-map'); |
63 element.fragmentation = object; | 63 element.fragmentation = object; |
64 return element; | 64 return element; |
65 case 'LibraryPrefix': | |
66 case 'TypeRef': | |
67 case 'TypeParameter': | |
68 case 'BoundedType': | |
69 case 'Int32x4': | |
70 case 'Float32x4': | |
71 case 'Float64x4': | |
72 case 'TypedData': | |
73 case 'ExternalTypedData': | |
74 case 'Capability': | |
75 case 'ReceivePort': | |
76 case 'SendPort': | |
77 case 'Stacktrace': | |
78 case 'JSRegExp': | |
79 case 'UserTag': | |
80 // TODO(turnidge): The types above this comment are instance | |
81 // types and should be handled by the InstanceViewElement. We | |
82 // need to go through these and make sure that they print in a | |
83 // reasonable way. | |
84 case 'Type': | |
85 case 'Array': | |
86 case 'Bool': | |
87 case 'Closure': | |
88 case 'Double': | |
89 case 'GrowableObjectArray': | |
90 case 'Instance': | |
91 case 'Smi': | |
92 case 'Mint': | |
93 case 'MirrorReference': | |
94 case 'Null': | |
95 case 'Bigint': | |
96 case 'String': | |
97 case 'WeakProperty': | |
98 InstanceViewElement element = new Element.tag('instance-view'); | |
99 element.instance = object; | |
100 return element; | |
101 case 'IO': | 65 case 'IO': |
102 IOViewElement element = new Element.tag('io-view'); | 66 IOViewElement element = new Element.tag('io-view'); |
103 element.io = object; | 67 element.io = object; |
104 return element; | 68 return element; |
105 case 'HttpServerList': | 69 case 'HttpServerList': |
106 IOHttpServerListViewElement element = | 70 IOHttpServerListViewElement element = |
107 new Element.tag('io-http-server-list-view'); | 71 new Element.tag('io-http-server-list-view'); |
108 element.list = object; | 72 element.list = object; |
109 return element; | 73 return element; |
110 case 'HttpServer': | 74 case 'HttpServer': |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 return element; | 146 return element; |
183 case 'StackTrace': | 147 case 'StackTrace': |
184 StackTraceElement element = new Element.tag('stack-trace'); | 148 StackTraceElement element = new Element.tag('stack-trace'); |
185 element.trace = object; | 149 element.trace = object; |
186 return element; | 150 return element; |
187 case 'VM': | 151 case 'VM': |
188 VMViewElement element = new Element.tag('vm-view'); | 152 VMViewElement element = new Element.tag('vm-view'); |
189 element.vm = object; | 153 element.vm = object; |
190 return element; | 154 return element; |
191 default: | 155 default: |
192 JsonViewElement element = new Element.tag('json-view'); | 156 if (object.isInstance || |
193 element.map = object; | 157 object.isSentinel) { // TODO(rmacnak): Separate this out. |
194 return element; | 158 InstanceViewElement element = new Element.tag('instance-view'); |
| 159 element.instance = object; |
| 160 return element; |
| 161 } else { |
| 162 JsonViewElement element = new Element.tag('json-view'); |
| 163 element.map = object; |
| 164 return element; |
| 165 } |
195 } | 166 } |
196 } | 167 } |
197 | 168 |
198 objectChanged(oldValue) { | 169 objectChanged(oldValue) { |
199 // Remove the current view. | 170 // Remove the current view. |
200 children.clear(); | 171 children.clear(); |
201 if (object == null) { | 172 if (object == null) { |
202 Logger.root.info('Viewing null object.'); | 173 Logger.root.info('Viewing null object.'); |
203 return; | 174 return; |
204 } | 175 } |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 | 230 |
260 dynamic expander() { | 231 dynamic expander() { |
261 return expandEvent; | 232 return expandEvent; |
262 } | 233 } |
263 | 234 |
264 void expandEvent(bool exp, var done) { | 235 void expandEvent(bool exp, var done) { |
265 expand = exp; | 236 expand = exp; |
266 done(); | 237 done(); |
267 } | 238 } |
268 } | 239 } |
OLD | NEW |