Chromium Code Reviews| Index: runtime/bin/vmservice/client/lib/src/elements/service_view.dart |
| diff --git a/runtime/bin/vmservice/client/lib/src/elements/service_view.dart b/runtime/bin/vmservice/client/lib/src/elements/service_view.dart |
| index 05cb26690fa9f425f737fa6626f36096ec542c6d..5acf31bf2265195044012ca6752da69af2182c89 100644 |
| --- a/runtime/bin/vmservice/client/lib/src/elements/service_view.dart |
| +++ b/runtime/bin/vmservice/client/lib/src/elements/service_view.dart |
| @@ -4,8 +4,10 @@ |
| library service_object_view_element; |
| +import 'dart:html'; |
| import 'package:logging/logging.dart'; |
| import 'package:observatory/service.dart'; |
| +import 'package:observatory/elements.dart'; |
| import 'package:polymer/polymer.dart'; |
| import 'observatory_element.dart'; |
| @@ -15,11 +17,123 @@ class ServiceObjectViewElement extends ObservatoryElement { |
| ServiceObjectViewElement.created() : super.created(); |
|
turnidge
2014/03/12 17:46:29
Maybe a comment saying why we build the element af
|
| + ObservatoryElement _constructElementForObject() { |
| + var type = object.serviceType; |
| + switch (type) { |
| + case 'AllocationProfile': |
| + HeapProfileElement element = new Element.tag('heap-profile'); |
| + element.profile = object; |
| + return element; |
| + break; |
| + case 'Array': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'Bool': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
|
turnidge
2014/03/12 17:46:29
Combine labels with identical outcomes.
case 'Arr
|
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'BreakpointList': |
| + BreakpointListElement element = new Element.tag('breakpoint-list'); |
| + element.msg = object; |
| + return element; |
| + break; |
| + case 'Class': |
| + ClassViewElement element = new Element.tag('class-view'); |
| + element.cls = object; |
| + return element; |
| + break; |
| + case 'Closure': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'Code': |
| + CodeViewElement element = new Element.tag('code-view'); |
| + element.code = object; |
| + return element; |
| + break; |
| + case 'Error': |
| + ErrorViewElement element = new Element.tag('error-view'); |
| + element.error = object; |
| + return element; |
| + break; |
| + case 'Field': |
| + FieldViewElement element = new Element.tag('field-view'); |
| + element.field = object; |
| + return element; |
| + break; |
| + case 'Function': |
| + FunctionViewElement element = new Element.tag('function-view'); |
| + element.function = object; |
| + return element; |
| + break; |
| + case 'GrowableObjectArray': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'Instance': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'IsolateList': |
| + IsolateListElement element = new Element.tag('isolate-list'); |
| + element.isolates = object; |
| + return element; |
| + break; |
| + case 'Library': |
| + LibraryViewElement element = new Element.tag('library-view'); |
| + element.library = object; |
| + return element; |
| + break; |
| + case 'Profile': |
| + IsolateProfileElement element = new Element.tag('isolate-profile'); |
| + element.profile = object; |
| + return element; |
| + break; |
| + case 'Script': |
| + ScriptViewElement element = new Element.tag('script-view'); |
| + element.script = object; |
| + return element; |
| + break; |
| + case 'Smi': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + case 'StackTrace': |
| + StackTraceElement element = new Element.tag('stack-trace'); |
| + element.trace = object; |
| + return element; |
| + break; |
| + case 'String': |
| + InstanceViewElement element = new Element.tag('instance-view'); |
| + element.instance = object; |
| + return element; |
| + break; |
| + default: |
| + return null; |
| + } |
| + } |
| + |
| objectChanged(oldValue) { |
| + // Remove the current view. |
| + children.clear(); |
| if (object == null) { |
| - Logger.root.info('Message set to null.'); |
| + Logger.root.info('Viewing null object.'); |
| + return; |
| + } |
| + var type = object.serviceType; |
| + var element = _constructElementForObject(); |
| + if (element == null) { |
| + Logger.root.info('Unable to find a view element for \'${type}\''); |
| return; |
| } |
| - Logger.root.info('Viewing object of type \'${object.serviceType}\''); |
| + children.add(element); |
| + Logger.root.info('Viewing object of \'${type}\''); |
| } |
| } |