OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library code_view_element; | |
6 | |
7 import 'dart:html'; | |
8 import 'observatory_element.dart'; | |
9 import 'package:observatory/service.dart'; | |
10 import 'package:polymer/polymer.dart'; | |
11 | |
12 @CustomTag('code-view') | |
13 class CodeViewElement extends ObservatoryElement { | |
14 @published Code code; | |
15 CodeViewElement.created() : super.created(); | |
16 | |
17 @override | |
18 void attached() { | |
19 super.attached(); | |
20 if (code == null) { | |
21 return; | |
22 } | |
23 code.load().then((Code c) { | |
24 c.loadScript(); | |
25 }); | |
26 } | |
27 | |
28 void refresh(var done) { | |
29 code.reload().whenComplete(done); | |
30 } | |
31 | |
32 Element _findJumpTarget(Element target) { | |
33 var jumpTarget = target.attributes['data-jump-target']; | |
34 if (jumpTarget == '') { | |
35 return null; | |
36 } | |
37 var address = int.parse(jumpTarget); | |
38 var node = shadowRoot.querySelector('#addr-$address'); | |
39 if (node == null) { | |
40 return null; | |
41 } | |
42 return node; | |
43 } | |
44 | |
45 void mouseOver(Event e, var detail, Node target) { | |
46 var jt = _findJumpTarget(target); | |
47 if (jt == null) { | |
48 return; | |
49 } | |
50 jt.classes.add('highlight'); | |
51 } | |
52 | |
53 void mouseOut(Event e, var detail, Node target) { | |
54 var jt = _findJumpTarget(target); | |
55 if (jt == null) { | |
56 return; | |
57 } | |
58 jt.classes.remove('highlight'); | |
59 } | |
60 } | |
OLD | NEW |