Index: src/site/articles/trydart/examples/4-classbadge/piratebadge.dart |
diff --git a/src/site/articles/trydart/examples/4-classbadge/piratebadge.dart b/src/site/articles/trydart/examples/4-classbadge/piratebadge.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bca43d8e687d2a23b219bad0d916453d0b40027a |
--- /dev/null |
+++ b/src/site/articles/trydart/examples/4-classbadge/piratebadge.dart |
@@ -0,0 +1,59 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+import 'dart:html'; |
+import 'dart:math'; |
+ |
+InputElement inputNameElement; |
+ButtonElement genButtonElement; |
+ |
+void main() { |
+ inputNameElement = query('#inputName'); |
+ inputNameElement.onChange.listen(generateBadge); |
+ |
+ genButtonElement = query('#generateButton'); |
+ genButtonElement.onClick.listen(generateBadge); |
+} |
+ |
+void generateBadge(Event event) { |
+ if (event.target == inputNameElement) { |
+ query('#badgeName').text = new PirateName(firstName: inputNameElement.value).name; |
+ } else { |
+ query('#badgeName').text = new PirateName().name; |
+ } |
+} |
+ |
+class PirateName { |
+ |
+ Random indexGen = new Random(); |
+ |
+ String _pirateName; |
+ |
+ String get name => _pirateName; |
+ set name(String value) => _pirateName = value; |
+ |
+ String toString() => name; |
+ |
+ PirateName({String firstName}) { |
+ if (firstName == null) { |
+ firstName = names[indexGen.nextInt(names.length)]; |
+ } |
+ _pirateName = '$firstName'; |
+ } |
+ |
+ List names = const [ 'Anne', 'Bette', 'Cate', 'Dawn', |
+ 'Elise', 'Faye', 'Ginger', 'Harriot', |
+ 'Izzy', 'Jane', 'Kaye', 'Liz', |
+ 'Maria', 'Nell', 'Olive', 'Pat', |
+ 'Queenie', 'Rae', 'Sal', 'Tam', |
+ 'Uma', 'Violet', 'Wilma', 'Xana', |
+ 'Yvonne', 'Zelda', |
+ 'Abe', 'Billy', 'Caleb', 'Davie', |
+ 'Eb', 'Frank', 'Gabe', 'House', |
+ 'Icarus', 'Jack', 'Kurt', 'Larry', |
+ 'Mike', 'Nolan', 'Oliver', 'Pat', |
+ 'Quib', 'Roy', 'Sal', 'Tom', |
+ 'Ube', 'Val', 'Walt', 'Xavier', |
+ 'Yvan', 'Zeb']; |
+} |