Index: src/site/docs/tutorials/polymer-intro/examples/stopwatch/web/tute_stopwatch.dart |
diff --git a/src/site/docs/tutorials/polymer-intro/examples/stopwatch/web/tute_stopwatch.dart b/src/site/docs/tutorials/polymer-intro/examples/stopwatch/web/tute_stopwatch.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c81e9414b5daa12663dc7f3a114e5f66dcbb9438 |
--- /dev/null |
+++ b/src/site/docs/tutorials/polymer-intro/examples/stopwatch/web/tute_stopwatch.dart |
@@ -0,0 +1,64 @@ |
+import 'dart:html'; |
+import 'dart:async'; |
+import 'package:polymer/polymer.dart'; |
+ |
+@CustomTag('tute-stopwatch') |
+class TuteStopwatch extends PolymerElement with ObservableMixin { |
+ @observable String counter='00:00'; |
+ |
+ Stopwatch mywatch = new Stopwatch(); |
+ Timer mytimer; |
+ |
+ ButtonElement stopButton; |
+ ButtonElement startButton; |
+ ButtonElement resetButton; |
+ |
+ void inserted() { |
+ super.inserted(); |
+ startButton = getShadowRoot('tute-stopwatch').query('#startButton'); |
+ stopButton = getShadowRoot('tute-stopwatch').query('#stopButton'); |
+ resetButton = getShadowRoot('tute-stopwatch').query('#resetButton'); |
+ |
+ stopButton.disabled = true; |
+ resetButton.disabled = true; |
+ } |
+ |
+ void removed() { |
+ super.removed(); |
+ mytimer.cancel(); |
+ } |
+ |
+ void start(Event e, var detail, Node target) { |
+ mywatch.start(); |
+ var oneSecond = new Duration(seconds:1); |
+ mytimer = new Timer.periodic(oneSecond, updateTime); |
+ startButton.disabled = true; |
+ stopButton.disabled = false; |
+ resetButton.disabled = true; |
+ } |
+ |
+ void stop(Event e, var detail, Node target) { |
+ mywatch.stop(); |
+ mytimer.cancel(); |
+ startButton.disabled = false; |
+ resetButton.disabled = false; |
+ stopButton.disabled = true; |
+ } |
+ |
+ void reset(Event e, var detail, Node target) { |
+ mywatch.reset(); |
+ counter = '00:00'; |
+ resetButton.disabled = true; |
+ } |
+ |
+ void updateTime(Timer _) { |
+ var s = mywatch.elapsedMilliseconds~/1000; |
+ var m = 0; |
+ |
+ if (s >= 60) { m = s ~/ 60; s = s % 60; } |
+ |
+ String minute = (m <= 9) ? '0$m' : '$m'; |
+ String second = (s <= 9) ? '0$s' : '$s'; |
+ counter = '$minute:$second'; |
+ } |
+} |