| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 library service_object_view_element; | |
| 6 | |
| 7 import 'dart:html'; | |
| 8 import 'package:logging/logging.dart'; | |
| 9 import 'package:observatory/service.dart'; | |
| 10 import 'package:observatory/elements.dart'; | |
| 11 import 'package:polymer/polymer.dart'; | |
| 12 import 'observatory_element.dart'; | |
| 13 | |
| 14 @CustomTag('service-view') | |
| 15 class ServiceObjectViewElement extends ObservatoryElement { | |
| 16 @published ServiceObject object; | |
| 17 @published ObservableMap args; | |
| 18 | |
| 19 ServiceObjectViewElement.created() : super.created(); | |
| 20 | |
| 21 ObservatoryElement _constructElementForObject() { | |
| 22 var type = object.serviceType; | |
| 23 switch (type) { | |
| 24 case 'AllocationProfile': | |
| 25 HeapProfileElement element = new Element.tag('heap-profile'); | |
| 26 element.profile = object; | |
| 27 return element; | |
| 28 case 'BreakpointList': | |
| 29 BreakpointListElement element = new Element.tag('breakpoint-list'); | |
| 30 element.msg = object; | |
| 31 return element; | |
| 32 case 'Class': | |
| 33 ClassViewElement element = new Element.tag('class-view'); | |
| 34 element.cls = object; | |
| 35 return element; | |
| 36 case 'Code': | |
| 37 CodeViewElement element = new Element.tag('code-view'); | |
| 38 element.code = object; | |
| 39 return element; | |
| 40 case 'Error': | |
| 41 ErrorViewElement element = new Element.tag('error-view'); | |
| 42 element.error = object; | |
| 43 return element; | |
| 44 case 'Field': | |
| 45 FieldViewElement element = new Element.tag('field-view'); | |
| 46 element.field = object; | |
| 47 return element; | |
| 48 case 'FlagList': | |
| 49 FlagListElement element = new Element.tag('flag-list'); | |
| 50 element.flagList = object; | |
| 51 return element; | |
| 52 case 'Function': | |
| 53 FunctionViewElement element = new Element.tag('function-view'); | |
| 54 element.function = object; | |
| 55 return element; | |
| 56 case 'HeapMap': | |
| 57 HeapMapElement element = new Element.tag('heap-map'); | |
| 58 element.fragmentation = object; | |
| 59 return element; | |
| 60 case 'LibraryPrefix': | |
| 61 case 'TypeRef': | |
| 62 case 'TypeParameter': | |
| 63 case 'BoundedType': | |
| 64 case 'Int32x4': | |
| 65 case 'Float32x4': | |
| 66 case 'Float64x4': | |
| 67 case 'TypedData': | |
| 68 case 'ExternalTypedData': | |
| 69 case 'Capability': | |
| 70 case 'ReceivePort': | |
| 71 case 'SendPort': | |
| 72 case 'Stacktrace': | |
| 73 case 'JSRegExp': | |
| 74 case 'WeakProperty': | |
| 75 case 'MirrorReference': | |
| 76 case 'UserTag': | |
| 77 // TODO(turnidge): The types above this comment are instance | |
| 78 // types and should be handled by the InstanceViewElement. We | |
| 79 // need to go through these and make sure that they print in a | |
| 80 // reasonable way. | |
| 81 case 'Type': | |
| 82 case 'Array': | |
| 83 case 'Bool': | |
| 84 case 'Closure': | |
| 85 case 'Double': | |
| 86 case 'GrowableObjectArray': | |
| 87 case 'Instance': | |
| 88 case 'Smi': | |
| 89 case 'Mint': | |
| 90 case 'Bigint': | |
| 91 case 'String': | |
| 92 InstanceViewElement element = new Element.tag('instance-view'); | |
| 93 element.instance = object; | |
| 94 return element; | |
| 95 case 'IO': | |
| 96 IOViewElement element = new Element.tag('io-view'); | |
| 97 element.io = object; | |
| 98 return element; | |
| 99 case 'HttpServerList': | |
| 100 IOHttpServerListViewElement element = | |
| 101 new Element.tag('io-http-server-list-view'); | |
| 102 element.list = object; | |
| 103 return element; | |
| 104 case 'HttpServer': | |
| 105 IOHttpServerViewElement element = | |
| 106 new Element.tag('io-http-server-view'); | |
| 107 element.httpServer = object; | |
| 108 return element; | |
| 109 case 'HttpServerConnection': | |
| 110 IOHttpServerConnectionViewElement element = | |
| 111 new Element.tag('io-http-server-connection-view'); | |
| 112 element.connection = object; | |
| 113 return element; | |
| 114 case 'SocketList': | |
| 115 IOSocketListViewElement element = | |
| 116 new Element.tag('io-socket-list-view'); | |
| 117 element.list = object; | |
| 118 return element; | |
| 119 case 'Socket': | |
| 120 IOSocketViewElement element = new Element.tag('io-socket-view'); | |
| 121 element.socket = object; | |
| 122 return element; | |
| 123 case 'WebSocketList': | |
| 124 IOWebSocketListViewElement element = | |
| 125 new Element.tag('io-web-socket-list-view'); | |
| 126 element.list = object; | |
| 127 return element; | |
| 128 case 'WebSocket': | |
| 129 IOWebSocketViewElement element = new Element.tag('io-web-socket-view'); | |
| 130 element.webSocket = object; | |
| 131 return element; | |
| 132 case 'Isolate': | |
| 133 IsolateViewElement element = new Element.tag('isolate-view'); | |
| 134 element.isolate = object; | |
| 135 return element; | |
| 136 case 'Library': | |
| 137 LibraryViewElement element = new Element.tag('library-view'); | |
| 138 element.library = object; | |
| 139 return element; | |
| 140 case 'ProcessList': | |
| 141 IOProcessListViewElement element = | |
| 142 new Element.tag('io-process-list-view'); | |
| 143 element.list = object; | |
| 144 return element; | |
| 145 case 'Process': | |
| 146 IOProcessViewElement element = new Element.tag('io-process-view'); | |
| 147 element.process = object; | |
| 148 return element; | |
| 149 case 'Profile': | |
| 150 IsolateProfileElement element = new Element.tag('isolate-profile'); | |
| 151 element.profile = object; | |
| 152 return element; | |
| 153 case 'RandomAccessFileList': | |
| 154 IORandomAccessFileListViewElement element = | |
| 155 new Element.tag('io-random-access-file-list-view'); | |
| 156 element.list = object; | |
| 157 return element; | |
| 158 case 'RandomAccessFile': | |
| 159 IORandomAccessFileViewElement element = | |
| 160 new Element.tag('io-random-access-file-view'); | |
| 161 element.file = object; | |
| 162 return element; | |
| 163 case 'ServiceError': | |
| 164 ServiceErrorViewElement element = | |
| 165 new Element.tag('service-error-view'); | |
| 166 element.error = object; | |
| 167 return element; | |
| 168 case 'ServiceException': | |
| 169 ServiceExceptionViewElement element = | |
| 170 new Element.tag('service-exception-view'); | |
| 171 element.exception = object; | |
| 172 return element; | |
| 173 case 'Script': | |
| 174 ScriptViewElement element = new Element.tag('script-view'); | |
| 175 element.script = object; | |
| 176 return element; | |
| 177 case 'StackTrace': | |
| 178 StackTraceElement element = new Element.tag('stack-trace'); | |
| 179 element.trace = object; | |
| 180 return element; | |
| 181 case 'VM': | |
| 182 VMViewElement element = new Element.tag('vm-view'); | |
| 183 element.vm = object; | |
| 184 return element; | |
| 185 default: | |
| 186 JsonViewElement element = new Element.tag('json-view'); | |
| 187 element.map = object; | |
| 188 return element; | |
| 189 } | |
| 190 } | |
| 191 | |
| 192 objectChanged(oldValue) { | |
| 193 // Remove the current view. | |
| 194 children.clear(); | |
| 195 if (object == null) { | |
| 196 Logger.root.info('Viewing null object.'); | |
| 197 return; | |
| 198 } | |
| 199 var type = object.serviceType; | |
| 200 var element = _constructElementForObject(); | |
| 201 if (element == null) { | |
| 202 Logger.root.info('Unable to find a view element for \'${type}\''); | |
| 203 return; | |
| 204 } | |
| 205 children.add(element); | |
| 206 Logger.root.info('Viewing object of \'${type}\''); | |
| 207 } | |
| 208 } | |
| OLD | NEW |