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

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

Issue 2304463002: Converted Observatory vm-view && isolate-view elements (Closed)
Patch Set: Fixed typo 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'dart:html'; 5 import 'dart:html';
6 import 'dart:async'; 6 import 'dart:async';
7 import 'package:observatory/models.dart' as M; 7 import 'package:observatory/models.dart' as M;
8 import 'package:observatory/utils.dart'; 8 import 'package:observatory/utils.dart';
9 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; 9 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
10 import 'package:observatory/src/elements/helpers/tag.dart'; 10 import 'package:observatory/src/elements/helpers/tag.dart';
11 import 'package:observatory/src/elements/helpers/uris.dart'; 11 import 'package:observatory/src/elements/helpers/uris.dart';
12 import 'package:observatory/src/elements/isolate/counter_chart.dart'; 12 import 'package:observatory/src/elements/isolate/counter_chart.dart';
13 13
14 class IsolateSharedSummaryElement extends HtmlElement implements Renderable { 14 class IsolateSharedSummaryElement extends HtmlElement implements Renderable {
15 static const tag = 15 static const tag =
16 const Tag<IsolateSharedSummaryElement>('isolate-shared-summary-wrapped', 16 const Tag<IsolateSharedSummaryElement>('isolate-shared-summary',
17 dependencies: const [ 17 dependencies: const [
18 IsolateCounterChartElement.tag 18 IsolateCounterChartElement.tag
19 ]); 19 ]);
20 20
21 RenderingScheduler<IsolateSharedSummaryElement> _r; 21 RenderingScheduler<IsolateSharedSummaryElement> _r;
22 22
23 Stream<RenderedEvent<IsolateSharedSummaryElement>> get onRendered => 23 Stream<RenderedEvent<IsolateSharedSummaryElement>> get onRendered =>
24 _r.onRendered; 24 _r.onRendered;
25 25
26 M.Isolate _isolate; 26 M.Isolate _isolate;
27 M.EventRepository _events;
28 StreamSubscription _isolateSubscription;
27 29
28 factory IsolateSharedSummaryElement(M.Isolate isolate, 30 factory IsolateSharedSummaryElement(M.Isolate isolate,
31 M.EventRepository events,
29 {RenderingQueue queue}) { 32 {RenderingQueue queue}) {
30 assert(isolate != null); 33 assert(isolate != null);
34 assert(events != null);
31 IsolateSharedSummaryElement e = document.createElement(tag.name); 35 IsolateSharedSummaryElement e = document.createElement(tag.name);
32 e._r = new RenderingScheduler(e, queue: queue); 36 e._r = new RenderingScheduler(e, queue: queue);
33 e._isolate = isolate; 37 e._isolate = isolate;
38 e._events = events;
34 return e; 39 return e;
35 } 40 }
36 41
37 IsolateSharedSummaryElement.created() : super.created(); 42 IsolateSharedSummaryElement.created() : super.created();
38 43
39 @override 44 @override
40 void attached() { 45 void attached() {
41 super.attached(); 46 super.attached();
42 _r.enable(); 47 _r.enable();
48 _isolateSubscription = _events.onIsolateEvent.listen(_eventListener);
43 } 49 }
44 50
45 @override 51 @override
46 void detached() { 52 void detached() {
47 super.detached(); 53 super.detached();
48 children = []; 54 children = [];
49 _r.disable(notify: true); 55 _r.disable(notify: true);
56 _isolateSubscription.cancel();
50 } 57 }
51 58
52 void render() { 59 void render() {
53 final newHeapUsed = Utils.formatSize(_isolate.newSpace.used); 60 final newHeapUsed = Utils.formatSize(_isolate.newSpace.used);
54 final newHeapCapacity = Utils.formatSize(_isolate.newSpace.capacity); 61 final newHeapCapacity = Utils.formatSize(_isolate.newSpace.capacity);
55 final oldHeapUsed = Utils.formatSize(_isolate.oldSpace.used); 62 final oldHeapUsed = Utils.formatSize(_isolate.oldSpace.used);
56 final oldHeapCapacity = Utils.formatSize(_isolate.oldSpace.capacity); 63 final oldHeapCapacity = Utils.formatSize(_isolate.oldSpace.capacity);
57 final content = [ 64 final content = [
58 new DivElement()..classes = ['menu'] 65 new DivElement()..classes = ['menu']
59 ..children = [ 66 ..children = [
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 new DivElement()..classes = ['summary'] 158 new DivElement()..classes = ['summary']
152 ..children = content 159 ..children = content
153 ]; 160 ];
154 } else { 161 } else {
155 children = [ 162 children = [
156 new DivElement()..classes = ['summary'] 163 new DivElement()..classes = ['summary']
157 ..children = content 164 ..children = content
158 ]; 165 ];
159 } 166 }
160 } 167 }
168
169 void _eventListener(e) {
170 if (e.isolate.id == _isolate.id) {
171 _isolate = e.isolate;
172 _r.dirty();
173 }
174 }
161 } 175 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698