| OLD | NEW |
| (Empty) |
| 1 import 'dart:html'; | |
| 2 import 'dart:async'; | |
| 3 import 'package:polymer/polymer.dart'; | |
| 4 | |
| 5 @CustomTag('tute-stopwatch') | |
| 6 class TuteStopwatch extends PolymerElement with ObservableMixin { | |
| 7 @observable String counter='00:00'; | |
| 8 | |
| 9 Stopwatch mywatch = new Stopwatch(); | |
| 10 Timer mytimer; | |
| 11 | |
| 12 ButtonElement stopButton; | |
| 13 ButtonElement startButton; | |
| 14 ButtonElement resetButton; | |
| 15 | |
| 16 void inserted() { | |
| 17 super.inserted(); | |
| 18 startButton = getShadowRoot('tute-stopwatch').query('#startButton'); | |
| 19 stopButton = getShadowRoot('tute-stopwatch').query('#stopButton'); | |
| 20 resetButton = getShadowRoot('tute-stopwatch').query('#resetButton'); | |
| 21 | |
| 22 stopButton.disabled = true; | |
| 23 resetButton.disabled = true; | |
| 24 } | |
| 25 | |
| 26 void removed() { | |
| 27 super.removed(); | |
| 28 mytimer.cancel(); | |
| 29 } | |
| 30 | |
| 31 void start(Event e, var detail, Node target) { | |
| 32 mywatch.start(); | |
| 33 var oneSecond = new Duration(seconds:1); | |
| 34 mytimer = new Timer.periodic(oneSecond, updateTime); | |
| 35 startButton.disabled = true; | |
| 36 stopButton.disabled = false; | |
| 37 resetButton.disabled = true; | |
| 38 } | |
| 39 | |
| 40 void stop(Event e, var detail, Node target) { | |
| 41 mywatch.stop(); | |
| 42 mytimer.cancel(); | |
| 43 startButton.disabled = false; | |
| 44 resetButton.disabled = false; | |
| 45 stopButton.disabled = true; | |
| 46 } | |
| 47 | |
| 48 void reset(Event e, var detail, Node target) { | |
| 49 mywatch.reset(); | |
| 50 counter = '00:00'; | |
| 51 resetButton.disabled = true; | |
| 52 } | |
| 53 | |
| 54 void updateTime(Timer _) { | |
| 55 var s = mywatch.elapsedMilliseconds~/1000; | |
| 56 var m = 0; | |
| 57 | |
| 58 if (s >= 60) { m = s ~/ 60; s = s % 60; } | |
| 59 | |
| 60 String minute = (m <= 9) ? '0$m' : '$m'; | |
| 61 String second = (s <= 9) ? '0$s' : '$s'; | |
| 62 counter = '$minute:$second'; | |
| 63 } | |
| 64 } | |
| OLD | NEW |