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

Side by Side Diff: runtime/observatory/lib/src/elements/class_view.dart

Issue 2310003004: Removed polymer & mirror from Observatory (Closed)
Patch Set: Fixed crash in heap-map page Created 4 years, 3 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
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 class_view_element; 5 library class_view_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'package:observatory/models.dart' as M; 9 import 'package:observatory/models.dart' as M;
10 import 'package:observatory/src/elements/class_allocation_profile.dart'; 10 import 'package:observatory/src/elements/class_allocation_profile.dart';
11 import 'package:observatory/src/elements/class_instances.dart'; 11 import 'package:observatory/src/elements/class_instances.dart';
12 import 'package:observatory/src/elements/class_ref.dart'; 12 import 'package:observatory/src/elements/class_ref.dart';
13 import 'package:observatory/src/elements/curly_block.dart'; 13 import 'package:observatory/src/elements/curly_block.dart';
14 import 'package:observatory/src/elements/error_ref.dart'; 14 import 'package:observatory/src/elements/error_ref.dart';
15 import 'package:observatory/src/elements/eval_box.dart'; 15 import 'package:observatory/src/elements/eval_box.dart';
16 import 'package:observatory/src/elements/field_ref.dart'; 16 import 'package:observatory/src/elements/field_ref.dart';
17 import 'package:observatory/src/elements/function_ref.dart'; 17 import 'package:observatory/src/elements/function_ref.dart';
18 import 'package:observatory/src/elements/helpers/any_ref.dart'; 18 import 'package:observatory/src/elements/helpers/any_ref.dart';
19 import 'package:observatory/src/elements/helpers/nav_bar.dart';
20 import 'package:observatory/src/elements/helpers/nav_menu.dart';
19 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; 21 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
20 import 'package:observatory/src/elements/helpers/tag.dart'; 22 import 'package:observatory/src/elements/helpers/tag.dart';
21 import 'package:observatory/src/elements/instance_ref.dart'; 23 import 'package:observatory/src/elements/instance_ref.dart';
22 import 'package:observatory/src/elements/library_ref.dart'; 24 import 'package:observatory/src/elements/library_ref.dart';
23 import 'package:observatory/src/elements/nav/bar.dart';
24 import 'package:observatory/src/elements/nav/class_menu.dart'; 25 import 'package:observatory/src/elements/nav/class_menu.dart';
25 import 'package:observatory/src/elements/nav/isolate_menu.dart'; 26 import 'package:observatory/src/elements/nav/isolate_menu.dart';
26 import 'package:observatory/src/elements/nav/menu.dart';
27 import 'package:observatory/src/elements/nav/notify.dart'; 27 import 'package:observatory/src/elements/nav/notify.dart';
28 import 'package:observatory/src/elements/nav/refresh.dart'; 28 import 'package:observatory/src/elements/nav/refresh.dart';
29 import 'package:observatory/src/elements/nav/top_menu.dart'; 29 import 'package:observatory/src/elements/nav/top_menu.dart';
30 import 'package:observatory/src/elements/nav/vm_menu.dart'; 30 import 'package:observatory/src/elements/nav/vm_menu.dart';
31 import 'package:observatory/src/elements/object_common.dart'; 31 import 'package:observatory/src/elements/object_common.dart';
32 import 'package:observatory/src/elements/source_inset.dart'; 32 import 'package:observatory/src/elements/source_inset.dart';
33 import 'package:observatory/src/elements/source_link.dart'; 33 import 'package:observatory/src/elements/source_link.dart';
34 import 'package:observatory/src/elements/view_footer.dart'; 34 import 'package:observatory/src/elements/view_footer.dart';
35 35
36 class ClassViewElement extends HtmlElement implements Renderable { 36 class ClassViewElement extends HtmlElement implements Renderable {
37 static const tag = const Tag<ClassViewElement>('class-view', 37 static const tag = const Tag<ClassViewElement>('class-view',
38 dependencies: const [ 38 dependencies: const [
39 ClassInstancesElement.tag, 39 ClassInstancesElement.tag,
40 ClassRefElement.tag, 40 ClassRefElement.tag,
41 CurlyBlockElement.tag, 41 CurlyBlockElement.tag,
42 ErrorRefElement.tag, 42 ErrorRefElement.tag,
43 EvalBoxElement.tag, 43 EvalBoxElement.tag,
44 FieldRefElement.tag, 44 FieldRefElement.tag,
45 FunctionRefElement.tag, 45 FunctionRefElement.tag,
46 InstanceRefElement.tag, 46 InstanceRefElement.tag,
47 LibraryRefElement.tag, 47 LibraryRefElement.tag,
48 NavBarElement.tag,
49 NavClassMenuElement.tag, 48 NavClassMenuElement.tag,
50 NavTopMenuElement.tag, 49 NavTopMenuElement.tag,
51 NavVMMenuElement.tag, 50 NavVMMenuElement.tag,
52 NavIsolateMenuElement.tag, 51 NavIsolateMenuElement.tag,
53 NavMenuElement.tag,
54 NavRefreshElement.tag, 52 NavRefreshElement.tag,
55 NavNotifyElement.tag, 53 NavNotifyElement.tag,
56 ObjectCommonElement.tag, 54 ObjectCommonElement.tag,
57 SourceInsetElement.tag, 55 SourceInsetElement.tag,
58 SourceLinkElement.tag, 56 SourceLinkElement.tag,
59 ViewFooterElement.tag 57 ViewFooterElement.tag
60 ]); 58 ]);
61 59
62 RenderingScheduler<ClassViewElement> _r; 60 RenderingScheduler<ClassViewElement> _r;
63 61
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 _cls, _retainedSizes, _reachableSizes, _stronglyReachableInstances, 169 _cls, _retainedSizes, _reachableSizes, _stronglyReachableInstances,
172 _topRetainedInstances, _instances, queue: _r.queue); 170 _topRetainedInstances, _instances, queue: _r.queue);
173 var header = ''; 171 var header = '';
174 if (_cls.isAbstract) { 172 if (_cls.isAbstract) {
175 header += 'abstract '; 173 header += 'abstract ';
176 } 174 }
177 if (_cls.isPatch) { 175 if (_cls.isPatch) {
178 header += 'patch '; 176 header += 'patch ';
179 } 177 }
180 children = [ 178 children = [
181 new NavBarElement(queue: _r.queue) 179 navBar([
182 ..children = [ 180 new NavTopMenuElement(queue: _r.queue),
183 new NavTopMenuElement(queue: _r.queue), 181 new NavVMMenuElement(_vm, _events, queue: _r.queue),
184 new NavVMMenuElement(_vm, _events, queue: _r.queue), 182 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue),
185 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue), 183 new NavClassMenuElement(_isolate, _cls, queue: _r.queue),
186 new NavClassMenuElement(_isolate, _cls, queue: _r.queue), 184 new NavRefreshElement(label: 'Refresh Allocation Profile',
187 new NavRefreshElement(label: 'Refresh Allocation Profile', 185 queue: _r.queue)
188 queue: _r.queue) 186 ..onRefresh.listen((e) {
189 ..onRefresh.listen((e) { 187 e.element.disabled = true;
190 e.element.disabled = true; 188 _loadProfile = true;
191 _loadProfile = true; 189 _r.dirty();
192 _r.dirty(); 190 }),
193 }), 191 new NavRefreshElement(queue: _r.queue)
194 new NavRefreshElement(queue: _r.queue) 192 ..onRefresh.listen((e) {
195 ..onRefresh.listen((e) { 193 e.element.disabled = true;
196 e.element.disabled = true; 194 _common = null;
197 _common = null; 195 _classInstances = null;
198 _classInstances = null; 196 _fieldsExpanded = null;
199 _fieldsExpanded = null; 197 _functionsExpanded = null;
200 _functionsExpanded = null; 198 _refresh();
201 _refresh(); 199 }),
202 }), 200 new NavNotifyElement(_notifications, queue: _r.queue)
203 new NavNotifyElement(_notifications, queue: _r.queue) 201 ]),
204 ],
205 new DivElement()..classes = ['content-centered-big'] 202 new DivElement()..classes = ['content-centered-big']
206 ..children = [ 203 ..children = [
207 new HeadingElement.h2()..text = '$header class ${_cls.name}', 204 new HeadingElement.h2()..text = '$header class ${_cls.name}',
208 new HRElement(), 205 new HRElement(),
209 _common, 206 _common,
210 new BRElement(), 207 new BRElement(),
211 new DivElement()..classes = ['memberList'] 208 new DivElement()..classes = ['memberList']
212 ..children = _createMembers(), 209 ..children = _createMembers(),
213 new DivElement() 210 new DivElement()
214 ..children = _cls.error == null 211 ..children = _cls.error == null
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 _fieldsExpanded = _fieldsExpanded ?? (fields.length <= 8); 398 _fieldsExpanded = _fieldsExpanded ?? (fields.length <= 8);
402 members.add( 399 members.add(
403 new DivElement()..classes = ['memberItem'] 400 new DivElement()..classes = ['memberItem']
404 ..children = [ 401 ..children = [
405 new DivElement()..classes = ['memberName'] 402 new DivElement()..classes = ['memberName']
406 ..text = 'fields ${fields.length}', 403 ..text = 'fields ${fields.length}',
407 new DivElement()..classes = ['memberValue'] 404 new DivElement()..classes = ['memberValue']
408 ..children =[ 405 ..children =[
409 new CurlyBlockElement(expanded: _fieldsExpanded) 406 new CurlyBlockElement(expanded: _fieldsExpanded)
410 ..onToggle.listen((e) => _fieldsExpanded = e.control.expanded) 407 ..onToggle.listen((e) => _fieldsExpanded = e.control.expanded)
411 ..children = [ 408 ..content = [
412 new DivElement()..classes = ['memberList'] 409 new DivElement()..classes = ['memberList']
413 ..children = (fields.map((f) => 410 ..children = (fields.map((f) =>
414 new DivElement()..classes = ['memberItem'] 411 new DivElement()..classes = ['memberItem']
415 ..children = [ 412 ..children = [
416 new DivElement()..classes = ['memberName'] 413 new DivElement()..classes = ['memberName']
417 ..children =[ 414 ..children =[
418 new FieldRefElement(_isolate, f, _instances, 415 new FieldRefElement(_isolate, f, _instances,
419 queue: _r.queue) 416 queue: _r.queue)
420 ], 417 ],
421 new DivElement()..classes = ['memberValue'] 418 new DivElement()..classes = ['memberValue']
(...skipping 17 matching lines...) Expand all
439 members.add( 436 members.add(
440 new DivElement()..classes = ['memberItem'] 437 new DivElement()..classes = ['memberItem']
441 ..children = [ 438 ..children = [
442 new DivElement()..classes = ['memberName'] 439 new DivElement()..classes = ['memberName']
443 ..text = 'functions (${functions.length})', 440 ..text = 'functions (${functions.length})',
444 new DivElement()..classes = ['memberValue'] 441 new DivElement()..classes = ['memberValue']
445 ..children =[ 442 ..children =[
446 new CurlyBlockElement(expanded: _functionsExpanded) 443 new CurlyBlockElement(expanded: _functionsExpanded)
447 ..onToggle.listen((e) => 444 ..onToggle.listen((e) =>
448 _functionsExpanded = e.control.expanded) 445 _functionsExpanded = e.control.expanded)
449 ..children = (functions.map((f) => 446 ..content = (functions.map((f) =>
450 new DivElement()..classes = ['indent'] 447 new DivElement()..classes = ['indent']
451 ..children = [ 448 ..children = [
452 new FunctionRefElement(_isolate, f, queue: _r.queue) 449 new FunctionRefElement(_isolate, f, queue: _r.queue)
453 ] 450 ]
454 ).toList()) 451 ).toList())
455 ] 452 ]
456 ] 453 ]
457 ); 454 );
458 } 455 }
459 return members; 456 return members;
460 } 457 }
461 458
462 Future _refresh() async { 459 Future _refresh() async {
463 _cls = await _classes.get(_isolate, _cls.id); 460 _cls = await _classes.get(_isolate, _cls.id);
464 await _loadAdditionalData(); 461 await _loadAdditionalData();
465 _r.dirty(); 462 _r.dirty();
466 } 463 }
467 464
468 Future _loadAdditionalData() async { 465 Future _loadAdditionalData() async {
469 _classFields = await Future.wait(_cls.fields.map((f) 466 _classFields = await Future.wait(_cls.fields.map((f)
470 => _fields.get(_isolate, f.id))); 467 => _fields.get(_isolate, f.id)));
471 _r.dirty(); 468 _r.dirty();
472 } 469 }
473 } 470 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/class_tree.dart ('k') | runtime/observatory/lib/src/elements/code_ref.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698