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

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

Issue 2287793002: Converted Observatory field-view element (Closed)
Patch Set: Fixed tests 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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_tree_element; 5 library class_tree_element;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 import 'dart:async'; 8 import 'dart:async';
9 import 'package:observatory/models.dart' as M; 9 import 'package:observatory/models.dart' as M;
10 import 'package:observatory/src/elements/class_ref.dart'; 10 import 'package:observatory/src/elements/class_ref.dart';
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 _tree = new VirtualTreeElement(_create, _update, _children, 108 _tree = new VirtualTreeElement(_create, _update, _children,
109 items: [_object], queue: _r.queue); 109 items: [_object], queue: _r.queue);
110 _tree.expand(_object, autoExpandSingleChildNodes: true); 110 _tree.expand(_object, autoExpandSingleChildNodes: true);
111 return _tree; 111 return _tree;
112 } 112 }
113 113
114 Future _refresh() async { 114 Future _refresh() async {
115 _object = null; 115 _object = null;
116 _subclasses.clear(); 116 _subclasses.clear();
117 _mixins.clear(); 117 _mixins.clear();
118 _object = await _register(await _classes.getObject()); 118 _object = await _register(await _classes.getObject(_isolate));
119 _r.dirty(); 119 _r.dirty();
120 } 120 }
121 121
122 Future<M.Class> _register(M.Class cls) async { 122 Future<M.Class> _register(M.Class cls) async {
123 _subclasses[cls.id] = await Future.wait( 123 _subclasses[cls.id] = await Future.wait(
124 (await Future.wait(cls.subclasses.map(_getActualChildrens))) 124 (await Future.wait(cls.subclasses.map(_getActualChildrens)))
125 .expand((f) => f) 125 .expand((f) => f)
126 .map(_register) 126 .map(_register)
127 ); 127 );
128 return cls; 128 return cls;
129 } 129 }
130 130
131 Future<Iterable<M.Class>> _getActualChildrens(M.ClassRef ref) async { 131 Future<Iterable<M.Class>> _getActualChildrens(M.ClassRef ref) async {
132 var cls = await _classes.get(ref.id); 132 var cls = await _classes.get(_isolate, ref.id);
133 if (cls.isPatch) { 133 if (cls.isPatch) {
134 return const []; 134 return const [];
135 } 135 }
136 if (cls.mixin == null) { 136 if (cls.mixin == null) {
137 return [cls]; 137 return [cls];
138 } 138 }
139 return (await Future.wait(cls.subclasses.map(_getActualChildrens))) 139 return (await Future.wait(cls.subclasses.map(_getActualChildrens)))
140 .expand((f) => f) 140 .expand((f) => f)
141 ..forEach((subcls) { 141 ..forEach((subcls) {
142 _mixins[subcls.id] = (_mixins[subcls.id] ?? [])..add(cls.mixin); 142 _mixins[subcls.id] = (_mixins[subcls.id] ?? [])..add(cls.mixin);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 : new ClassRefElement(_isolate, type.typeClass, queue: _r.queue) 176 : new ClassRefElement(_isolate, type.typeClass, queue: _r.queue)
177 ]).toList(); 177 ]).toList();
178 children.first.text = ' with '; 178 children.first.text = ' with ';
179 return children; 179 return children;
180 } 180 }
181 181
182 Iterable<M.Class> _children(M.Class cls) { 182 Iterable<M.Class> _children(M.Class cls) {
183 return _subclasses[cls.id]; 183 return _subclasses[cls.id];
184 } 184 }
185 } 185 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/app/page.dart ('k') | runtime/observatory/lib/src/elements/field_view.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698