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_ref_element; | 5 library service_ref_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:polymer/polymer.dart'; | 9 import 'package:polymer/polymer.dart'; |
10 import 'observatory_element.dart'; | 10 import 'observatory_element.dart'; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 } | 57 } |
58 } | 58 } |
59 | 59 |
60 | 60 |
61 @CustomTag('any-service-ref') | 61 @CustomTag('any-service-ref') |
62 class AnyServiceRefElement extends ObservatoryElement { | 62 class AnyServiceRefElement extends ObservatoryElement { |
63 @published ServiceObject ref; | 63 @published ServiceObject ref; |
64 AnyServiceRefElement.created() : super.created(); | 64 AnyServiceRefElement.created() : super.created(); |
65 | 65 |
66 Element _constructElementForRef() { | 66 Element _constructElementForRef() { |
67 var type = ref.vmType; | 67 var type = ref.type; |
68 switch (type) { | 68 switch (type) { |
69 case 'Class': | 69 case 'Class': |
70 ServiceRefElement element = new Element.tag('class-ref'); | 70 ServiceRefElement element = new Element.tag('class-ref'); |
71 element.ref = ref; | 71 element.ref = ref; |
72 return element; | 72 return element; |
73 case 'Code': | 73 case 'Code': |
74 ServiceRefElement element = new Element.tag('code-ref'); | 74 ServiceRefElement element = new Element.tag('code-ref'); |
75 element.ref = ref; | 75 element.ref = ref; |
76 return element; | 76 return element; |
77 case 'Context': | 77 case 'Context': |
78 ServiceRefElement element = new Element.tag('context-ref'); | 78 ServiceRefElement element = new Element.tag('context-ref'); |
79 element.ref = ref; | 79 element.ref = ref; |
80 return element; | 80 return element; |
81 case 'Error': | 81 case 'Error': |
82 ServiceRefElement element = new Element.tag('error-ref'); | 82 ServiceRefElement element = new Element.tag('error-ref'); |
83 element.ref = ref; | 83 element.ref = ref; |
84 return element; | 84 return element; |
85 case 'Field': | 85 case 'Field': |
86 ServiceRefElement element = new Element.tag('field-ref'); | 86 ServiceRefElement element = new Element.tag('field-ref'); |
87 element.ref = ref; | 87 element.ref = ref; |
88 return element; | 88 return element; |
89 case 'Function': | 89 case 'Function': |
90 ServiceRefElement element = new Element.tag('function-ref'); | 90 ServiceRefElement element = new Element.tag('function-ref'); |
91 element.ref = ref; | 91 element.ref = ref; |
92 return element; | 92 return element; |
93 case 'Library': | 93 case 'Library': |
94 ServiceRefElement element = new Element.tag('library-ref'); | 94 ServiceRefElement element = new Element.tag('library-ref'); |
95 element.ref = ref; | 95 element.ref = ref; |
96 return element; | 96 return element; |
97 case 'Array': | |
98 case 'Bigint': | |
99 case 'Bool': | |
100 case 'Closure': | |
101 case 'Double': | |
102 case 'GrowableObjectArray': | |
103 case 'Instance': | |
104 case 'Mint': | |
105 case 'MirrorReference': | |
106 case 'Null': | |
107 case 'Sentinel': // TODO(rmacnak): Separate this out. | |
108 case 'Smi': | |
109 case 'String': | |
110 case 'Type': | |
111 case 'WeakProperty': | |
112 ServiceRefElement element = new Element.tag('instance-ref'); | |
113 element.ref = ref; | |
114 return element; | |
115 default: | 97 default: |
116 SpanElement element = new Element.tag('span'); | 98 if (ref.isInstance || |
117 element.text = "<<Unknown service ref: $ref>>"; | 99 ref.isSentinel) { // TODO(rmacnak): Separate this out. |
118 return element; | 100 ServiceRefElement element = new Element.tag('instance-ref'); |
| 101 element.ref = ref; |
| 102 return element; |
| 103 } else { |
| 104 SpanElement element = new Element.tag('span'); |
| 105 element.text = "<<Unknown service ref: $ref>>"; |
| 106 return element; |
| 107 } |
119 } | 108 } |
120 } | 109 } |
121 | 110 |
122 refChanged(oldValue) { | 111 refChanged(oldValue) { |
123 // Remove the current view. | 112 // Remove the current view. |
124 children.clear(); | 113 children.clear(); |
125 if (ref == null) { | 114 if (ref == null) { |
126 Logger.root.info('Viewing null object.'); | 115 Logger.root.info('Viewing null object.'); |
127 return; | 116 return; |
128 } | 117 } |
129 var type = ref.vmType; | 118 var type = ref.vmType; |
130 var element = _constructElementForRef(); | 119 var element = _constructElementForRef(); |
131 if (element == null) { | 120 if (element == null) { |
132 Logger.root.info('Unable to find a ref element for \'${type}\''); | 121 Logger.root.info('Unable to find a ref element for \'${type}\''); |
133 return; | 122 return; |
134 } | 123 } |
135 children.add(element); | 124 children.add(element); |
136 Logger.root.info('Viewing object of \'${type}\''); | 125 Logger.root.info('Viewing object of \'${type}\''); |
137 } | 126 } |
138 } | 127 } |
OLD | NEW |