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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_object_view_element; 5 library service_object_view_element;
6 6
7 import 'dart:html';
7 import 'package:logging/logging.dart'; 8 import 'package:logging/logging.dart';
8 import 'package:observatory/service.dart'; 9 import 'package:observatory/service.dart';
10 import 'package:observatory/elements.dart';
9 import 'package:polymer/polymer.dart'; 11 import 'package:polymer/polymer.dart';
10 import 'observatory_element.dart'; 12 import 'observatory_element.dart';
11 13
12 @CustomTag('service-view') 14 @CustomTag('service-view')
13 class ServiceObjectViewElement extends ObservatoryElement { 15 class ServiceObjectViewElement extends ObservatoryElement {
14 @published ServiceObject object; 16 @published ServiceObject object;
15 17
16 ServiceObjectViewElement.created() : super.created(); 18 ServiceObjectViewElement.created() : super.created();
17 19
turnidge 2014/03/12 17:46:29 Maybe a comment saying why we build the element af
20 ObservatoryElement _constructElementForObject() {
21 var type = object.serviceType;
22 switch (type) {
23 case 'AllocationProfile':
24 HeapProfileElement element = new Element.tag('heap-profile');
25 element.profile = object;
26 return element;
27 break;
28 case 'Array':
29 InstanceViewElement element = new Element.tag('instance-view');
30 element.instance = object;
31 return element;
32 break;
33 case 'Bool':
34 InstanceViewElement element = new Element.tag('instance-view');
turnidge 2014/03/12 17:46:29 Combine labels with identical outcomes. case 'Arr
35 element.instance = object;
36 return element;
37 break;
38 case 'BreakpointList':
39 BreakpointListElement element = new Element.tag('breakpoint-list');
40 element.msg = object;
41 return element;
42 break;
43 case 'Class':
44 ClassViewElement element = new Element.tag('class-view');
45 element.cls = object;
46 return element;
47 break;
48 case 'Closure':
49 InstanceViewElement element = new Element.tag('instance-view');
50 element.instance = object;
51 return element;
52 break;
53 case 'Code':
54 CodeViewElement element = new Element.tag('code-view');
55 element.code = object;
56 return element;
57 break;
58 case 'Error':
59 ErrorViewElement element = new Element.tag('error-view');
60 element.error = object;
61 return element;
62 break;
63 case 'Field':
64 FieldViewElement element = new Element.tag('field-view');
65 element.field = object;
66 return element;
67 break;
68 case 'Function':
69 FunctionViewElement element = new Element.tag('function-view');
70 element.function = object;
71 return element;
72 break;
73 case 'GrowableObjectArray':
74 InstanceViewElement element = new Element.tag('instance-view');
75 element.instance = object;
76 return element;
77 break;
78 case 'Instance':
79 InstanceViewElement element = new Element.tag('instance-view');
80 element.instance = object;
81 return element;
82 break;
83 case 'IsolateList':
84 IsolateListElement element = new Element.tag('isolate-list');
85 element.isolates = object;
86 return element;
87 break;
88 case 'Library':
89 LibraryViewElement element = new Element.tag('library-view');
90 element.library = object;
91 return element;
92 break;
93 case 'Profile':
94 IsolateProfileElement element = new Element.tag('isolate-profile');
95 element.profile = object;
96 return element;
97 break;
98 case 'Script':
99 ScriptViewElement element = new Element.tag('script-view');
100 element.script = object;
101 return element;
102 break;
103 case 'Smi':
104 InstanceViewElement element = new Element.tag('instance-view');
105 element.instance = object;
106 return element;
107 break;
108 case 'StackTrace':
109 StackTraceElement element = new Element.tag('stack-trace');
110 element.trace = object;
111 return element;
112 break;
113 case 'String':
114 InstanceViewElement element = new Element.tag('instance-view');
115 element.instance = object;
116 return element;
117 break;
118 default:
119 return null;
120 }
121 }
122
18 objectChanged(oldValue) { 123 objectChanged(oldValue) {
124 // Remove the current view.
125 children.clear();
19 if (object == null) { 126 if (object == null) {
20 Logger.root.info('Message set to null.'); 127 Logger.root.info('Viewing null object.');
21 return; 128 return;
22 } 129 }
23 Logger.root.info('Viewing object of type \'${object.serviceType}\''); 130 var type = object.serviceType;
131 var element = _constructElementForObject();
132 if (element == null) {
133 Logger.root.info('Unable to find a view element for \'${type}\'');
134 return;
135 }
136 children.add(element);
137 Logger.root.info('Viewing object of \'${type}\'');
24 } 138 }
25 } 139 }
OLDNEW
« 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