Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1792)

Unified Diff: runtime/bin/vmservice/client/lib/src/elements/service_view.dart

Issue 195763005: Make service-view programmatically switch views (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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}\'');
}
}
« no previous file with comments | « runtime/bin/vmservice/client/lib/elements.dart ('k') | runtime/bin/vmservice/client/lib/src/elements/service_view.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698