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

Side by Side Diff: src/site/docs/tutorials/polymer-intro/examples/stopwatch/web/tute_stopwatch.dart

Issue 24269013: first draft of polymer element tutorial (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: Created 7 years, 2 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
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698