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

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

Issue 2283263002: Converted Observatory script-view element (Closed)
Patch Set: Removed dead code 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 script_view_element; 5 library script_view;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'observatory_element.dart'; 8 import 'dart:html';
9 import 'package:observatory/elements.dart'; 9 import 'package:observatory/models.dart' as M;
10 import 'package:observatory/service.dart'; 10 import 'package:observatory/src/elements/context_ref.dart';
11 import 'package:polymer/polymer.dart'; 11 import 'package:observatory/src/elements/curly_block.dart';
12 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
13 import 'package:observatory/src/elements/helpers/tag.dart';
14 import 'package:observatory/src/elements/nav/bar.dart';
15 import 'package:observatory/src/elements/nav/isolate_menu.dart';
16 import 'package:observatory/src/elements/nav/library_menu.dart';
17 import 'package:observatory/src/elements/nav/menu.dart';
18 import 'package:observatory/src/elements/nav/notify.dart';
19 import 'package:observatory/src/elements/nav/refresh.dart';
20 import 'package:observatory/src/elements/nav/top_menu.dart';
21 import 'package:observatory/src/elements/nav/vm_menu.dart';
22 import 'package:observatory/src/elements/object_common.dart';
23 import 'package:observatory/src/elements/script_inset.dart';
24 import 'package:observatory/src/elements/view_footer.dart';
12 25
13 /// Displays an Script response. 26 class ScriptViewElement extends HtmlElement implements Renderable {
14 @CustomTag('script-view') 27 static const tag = const Tag<ScriptViewElement>('script-view',
15 class ScriptViewElement extends ObservatoryElement { 28 dependencies: const [
16 @published Script script; 29 ContextRefElement.tag,
30 CurlyBlockElement.tag,
31 NavBarElement.tag,
32 NavTopMenuElement.tag,
33 NavVMMenuElement.tag,
34 NavIsolateMenuElement.tag,
35 NavLibraryMenuElement.tag,
36 NavMenuElement.tag,
37 NavRefreshElement.tag,
38 NavNotifyElement.tag,
39 ObjectCommonElement.tag,
40 ScriptInsetElement.tag,
41 ViewFooterElement.tag
42 ]);
43
44 RenderingScheduler<ScriptViewElement> _r;
45
46 Stream<RenderedEvent<ScriptViewElement>> get onRendered =>
47 _r.onRendered;
48
49 M.VM _vm;
50 M.IsolateRef _isolate;
51 M.EventRepository _events;
52 M.NotificationRepository _notifications;
53 M.Script _script;
54 M.ScriptRepository _scripts;
55 M.RetainedSizeRepository _retainedSizes;
56 M.ReachableSizeRepository _reachableSizes;
57 M.InboundReferencesRepository _references;
58 M.RetainingPathRepository _retainingPaths;
59 M.InstanceRepository _instances;
60 int _pos;
61
62
63 M.VMRef get vm => _vm;
64 M.IsolateRef get isolate => _isolate;
65 M.NotificationRepository get notifications => _notifications;
66 M.Script get script => _script;
67
68 factory ScriptViewElement(M.VM vm, M.IsolateRef isolate,
69 M.Script script,
70 M.EventRepository events,
71 M.NotificationRepository notifications,
72 M.ScriptRepository scripts,
73 M.RetainedSizeRepository retainedSizes,
74 M.ReachableSizeRepository reachableSizes,
75 M.InboundReferencesRepository references,
76 M.RetainingPathRepository retainingPaths,
77 M.InstanceRepository instances,
78 {int pos, RenderingQueue queue}) {
79 assert(vm != null);
80 assert(isolate != null);
81 assert(events != null);
82 assert(notifications != null);
83 assert(script != null);
84 assert(scripts != null);
85 assert(retainedSizes != null);
86 assert(reachableSizes != null);
87 assert(references != null);
88 assert(retainingPaths != null);
89 assert(instances != null);
90 ScriptViewElement e = document.createElement(tag.name);
91 e._r = new RenderingScheduler(e, queue: queue);
92 e._vm = vm;
93 e._isolate = isolate;
94 e._events = events;
95 e._notifications = notifications;
96 e._script = script;
97 e._scripts = scripts;
98 e._retainedSizes = retainedSizes;
99 e._reachableSizes = reachableSizes;
100 e._references = references;
101 e._retainingPaths = retainingPaths;
102 e._instances = instances;
103 e._pos = pos;
104 return e;
105 }
17 106
18 ScriptViewElement.created() : super.created(); 107 ScriptViewElement.created() : super.created();
19 108
20 Future refresh() { 109 @override
21 return script.reload(); 110 attached() {
111 super.attached();
112 _r.enable();
113 }
114
115 @override
116 detached() {
117 super.detached();
118 _r.disable(notify: true);
119 children = [];
120 }
121
122 void render() {
123 children = [
124 new NavBarElement(queue: _r.queue)
125 ..children = [
126 new NavTopMenuElement(queue: _r.queue),
127 new NavVMMenuElement(_vm, _events, queue: _r.queue),
128 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue),
129 new NavLibraryMenuElement(_isolate, _script.library, queue: _r.queue),
130 new NavMenuElement('object', last: true, queue: _r.queue),
131 new NavRefreshElement(queue: _r.queue)
132 ..onRefresh.listen((e) async {
133 e.element.disabled = true;
134 _script = await _scripts.get(_isolate, _script.id);
135 _r.dirty();
136 }),
137 new NavNotifyElement(_notifications, queue: _r.queue)
138 ],
139 new DivElement()..classes = const ['content-centered-big']
140 ..children = [
141 new HeadingElement.h2()..text = 'Script',
142 new HRElement(),
143 new ObjectCommonElement(_isolate, _script, _retainedSizes,
144 _reachableSizes, _references, _retainingPaths,
145 _instances, queue: _r.queue),
146 new BRElement(),
147 new DivElement()..classes = ['memberList']
148 ..children = [
149 new DivElement()..classes = ['memberItem']
150 ..children = [
151 new DivElement()..classes = ['memberName']
152 ..text = 'load time',
153 new DivElement()..classes = ['memberName']
154 ..text = '${_script.loadTime}'
155 ],
156 ],
157 new HRElement(),
158 new ScriptInsetElement(_isolate, _script, _scripts, _instances,
159 _events, currentPos: _pos, queue: _r.queue),
160 new ViewFooterElement(queue: _r.queue)
161 ]
162 ];
22 } 163 }
23 } 164 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/script_inset_wrapper.dart ('k') | runtime/observatory/lib/src/elements/script_view.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698