| OLD | NEW |
| 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:async'; | 5 import 'dart:async'; |
| 6 import 'dart:html'; | 6 import 'dart:html'; |
| 7 import 'package:observatory/models.dart' as M show Target; | 7 import 'package:observatory/models.dart' as M show Target; |
| 8 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; | 8 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; |
| 9 import 'package:observatory/src/elements/helpers/tag.dart'; | 9 import 'package:observatory/src/elements/helpers/tag.dart'; |
| 10 import 'package:observatory/src/elements/helpers/uris.dart'; | |
| 11 | 10 |
| 12 class TargetEvent { | 11 class TargetEvent { |
| 13 final M.Target target; | 12 final M.Target target; |
| 14 | 13 |
| 15 TargetEvent(this.target); | 14 TargetEvent(this.target); |
| 16 } | 15 } |
| 17 | 16 |
| 18 class VMConnectTargetElement extends HtmlElement implements Renderable { | 17 class VMConnectTargetElement extends HtmlElement implements Renderable { |
| 19 static const tag = const Tag<VMConnectTargetElement>('vm-connect-target'); | 18 static const tag = const Tag<VMConnectTargetElement>('vm-connect-target'); |
| 20 | 19 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 void connect() { | 63 void connect() { |
| 65 _connect(new TargetEvent(target)); | 64 _connect(new TargetEvent(target)); |
| 66 } | 65 } |
| 67 | 66 |
| 68 void delete() { | 67 void delete() { |
| 69 _delete(new TargetEvent(target)); | 68 _delete(new TargetEvent(target)); |
| 70 } | 69 } |
| 71 | 70 |
| 72 void render() { | 71 void render() { |
| 73 children = [ | 72 children = [ |
| 74 new AnchorElement(href: Uris.vm()) | 73 new AnchorElement() |
| 75 ..text = current ? '${target.name} (Connected)' : '${target.name}' | 74 ..text = current ? '${target.name} (Connected)' : '${target.name}' |
| 76 ..onClick.where(_filter).map(_toEvent).listen(_connect), | 75 ..onClick.where(_filter).map(_toEvent).listen(_connect), |
| 77 new ButtonElement() | 76 new ButtonElement() |
| 78 ..text = '✖ Remove' | 77 ..text = '✖ Remove' |
| 79 ..classes = ['delete-button'] | 78 ..classes = ['delete-button'] |
| 80 ..onClick.map(_toEvent).listen(_delete) | 79 ..onClick.map(_toEvent).listen(_delete) |
| 81 ]; | 80 ]; |
| 82 } | 81 } |
| 83 | 82 |
| 84 void _connect(TargetEvent e) { | 83 void _connect(TargetEvent e) { |
| 85 _onConnect.add(e); | 84 _onConnect.add(e); |
| 86 } | 85 } |
| 87 | 86 |
| 88 void _delete(TargetEvent e) { | 87 void _delete(TargetEvent e) { |
| 89 _onDelete.add(e); | 88 _onDelete.add(e); |
| 90 } | 89 } |
| 91 | 90 |
| 92 TargetEvent _toEvent(_) { | 91 TargetEvent _toEvent(_) { |
| 93 return new TargetEvent(target); | 92 return new TargetEvent(target); |
| 94 } | 93 } |
| 95 | 94 |
| 96 static bool _filter(MouseEvent event) { | 95 static bool _filter(MouseEvent event) { |
| 97 return !(event.button > 0 || | 96 return !(event.button > 0 || |
| 98 event.metaKey || | 97 event.metaKey || |
| 99 event.ctrlKey || | 98 event.ctrlKey || |
| 100 event.shiftKey || | 99 event.shiftKey || |
| 101 event.altKey); | 100 event.altKey); |
| 102 } | 101 } |
| 103 } | 102 } |
| OLD | NEW |