| 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'; | |
| 8 | |
| 9 import 'package:logging/logging.dart'; | |
| 10 import 'package:observatory/service.dart'; | 7 import 'package:observatory/service.dart'; |
| 11 import 'package:polymer/polymer.dart'; | 8 import 'package:polymer/polymer.dart'; |
| 12 | 9 |
| 13 import 'class_ref.dart'; | |
| 14 import 'library_ref.dart'; | |
| 15 import 'observatory_element.dart'; | 10 import 'observatory_element.dart'; |
| 16 | 11 |
| 17 @CustomTag('service-ref') | 12 @CustomTag('service-ref') |
| 18 class ServiceRefElement extends ObservatoryElement { | 13 class ServiceRefElement extends ObservatoryElement { |
| 19 @published ServiceObject ref; | 14 @published ServiceObject ref; |
| 20 @published bool internal = false; | 15 @published bool internal = false; |
| 21 @published String expandKey; | 16 @published String expandKey; |
| 22 ServiceRefElement.created() : super.created(); | 17 ServiceRefElement.created() : super.created(); |
| 23 | 18 |
| 24 void refChanged(oldValue) { | 19 void refChanged(oldValue) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 notifyPropertyChange(#ref, 0, 1); | 68 notifyPropertyChange(#ref, 0, 1); |
| 74 expanded = true; | 69 expanded = true; |
| 75 }).whenComplete(onDone); | 70 }).whenComplete(onDone); |
| 76 } else { | 71 } else { |
| 77 expanded = false; | 72 expanded = false; |
| 78 onDone(); | 73 onDone(); |
| 79 } | 74 } |
| 80 } | 75 } |
| 81 } | 76 } |
| 82 | 77 |
| 83 | |
| 84 @CustomTag('any-service-ref') | |
| 85 class AnyServiceRefElement extends ObservatoryElement { | |
| 86 @published ServiceObject ref; | |
| 87 @published String expandKey; | |
| 88 @published bool asValue = false; | |
| 89 AnyServiceRefElement.created() : super.created(); | |
| 90 | |
| 91 Element _constructElementForRef() { | |
| 92 var type = ref.type; | |
| 93 switch (type) { | |
| 94 case 'Class': | |
| 95 ClassRefElement element = new Element.tag('class-ref'); | |
| 96 element.ref = ref; | |
| 97 element.asValue = asValue; | |
| 98 return element; | |
| 99 case 'Code': | |
| 100 ServiceRefElement element = new Element.tag('code-ref'); | |
| 101 element.ref = ref; | |
| 102 return element; | |
| 103 case 'Context': | |
| 104 ServiceRefElement element = new Element.tag('context-ref'); | |
| 105 element.ref = ref; | |
| 106 return element; | |
| 107 case 'Error': | |
| 108 ServiceRefElement element = new Element.tag('error-ref'); | |
| 109 element.ref = ref; | |
| 110 return element; | |
| 111 case 'Field': | |
| 112 ServiceRefElement element = new Element.tag('field-ref'); | |
| 113 element.ref = ref; | |
| 114 return element; | |
| 115 case 'Function': | |
| 116 ServiceRefElement element = new Element.tag('function-ref'); | |
| 117 element.ref = ref; | |
| 118 return element; | |
| 119 case 'Library': | |
| 120 LibraryRefElement element = new Element.tag('library-ref'); | |
| 121 element.ref = ref; | |
| 122 element.asValue = asValue; | |
| 123 return element; | |
| 124 case 'Object': | |
| 125 ServiceRefElement element = new Element.tag('object-ref'); | |
| 126 element.ref = ref; | |
| 127 return element; | |
| 128 case 'Script': | |
| 129 ServiceRefElement element = new Element.tag('script-ref'); | |
| 130 element.ref = ref; | |
| 131 return element; | |
| 132 case 'Instance': | |
| 133 case 'Sentinel': | |
| 134 ServiceRefElement element = new Element.tag('instance-ref'); | |
| 135 element.ref = ref; | |
| 136 if (expandKey != null) { | |
| 137 element.expandKey = expandKey; | |
| 138 } | |
| 139 return element; | |
| 140 default: | |
| 141 SpanElement element = new Element.tag('span'); | |
| 142 element.text = "<<Unknown service ref: $ref>>"; | |
| 143 return element; | |
| 144 } | |
| 145 } | |
| 146 | |
| 147 refChanged(oldValue) { | |
| 148 // Remove the current view. | |
| 149 children.clear(); | |
| 150 if (ref == null) { | |
| 151 Logger.root.info('Viewing null object.'); | |
| 152 return; | |
| 153 } | |
| 154 var type = ref.type; | |
| 155 var element = _constructElementForRef(); | |
| 156 if (element == null) { | |
| 157 Logger.root.info('Unable to find a ref element for \'${type}\''); | |
| 158 return; | |
| 159 } | |
| 160 children.add(element); | |
| 161 } | |
| 162 } | |
| 163 | |
| 164 @CustomTag('object-ref') | 78 @CustomTag('object-ref') |
| 165 class ObjectRefElement extends ServiceRefElement { | 79 class ObjectRefElement extends ServiceRefElement { |
| 166 ObjectRefElement.created() : super.created(); | 80 ObjectRefElement.created() : super.created(); |
| 167 } | 81 } |
| OLD | NEW |