Index: samples/third_party/todomvc_performance/web/elements/td_model.dart |
diff --git a/samples/third_party/todomvc_performance/web/elements/td_model.dart b/samples/third_party/todomvc_performance/web/elements/td_model.dart |
deleted file mode 100644 |
index 40fe7569a5ac7c533aadbbf5999fc0b8885a118c..0000000000000000000000000000000000000000 |
--- a/samples/third_party/todomvc_performance/web/elements/td_model.dart |
+++ /dev/null |
@@ -1,101 +0,0 @@ |
-library todomvc.web.elements.td_model; |
- |
-import 'dart:html'; |
-import 'package:polymer/polymer.dart'; |
-import '../lib-elements/polymer_localstorage.dart'; |
- |
-class Todo extends Observable { |
- @observable String title; |
- @observable bool completed = false; |
- |
- Todo(this.title); |
- |
- Todo.fromJson(Map json) |
- : title = json['title'], completed = json['completed']; |
- |
- Map toJson() => { 'title': title, 'completed': completed }; |
- |
- String toString() => "$title (${completed ? '' : 'not '}done)"; |
-} |
- |
-@CustomTag('td-model') |
-class TodoModel extends PolymerElement { |
- @published ObservableList<Todo> items; |
- @published Iterable<Todo> filtered; |
- @published String storageId; |
- |
- @observable int completedCount = 0; |
- @observable int activeCount = 0; |
- @observable bool allCompleted = false; |
- @observable PolymerLocalStorage storage; |
- @observable String filter; |
- @observable String activeItemWord; |
- |
- final filters = { |
- 'active': (item) => !item.completed, |
- 'completed': (item) => item.completed |
- }; |
- |
- factory TodoModel() => new Element.tag('td-model'); |
- TodoModel.created() : super.created(); |
- |
- void ready() { |
- async((_) { |
- if (items == null) items = new ObservableList<Todo>(); |
- }); |
- } |
- |
- void filterChanged() { |
- filterItems(); |
- } |
- |
- void itemsChanged() { |
- completedCount = items.where(filters['completed']).length; |
- activeCount = items.length - completedCount; |
- allCompleted = completedCount > 0 && activeCount == 0; |
- |
- filterItems(); |
- if (storage != null) { |
- storage.value = items; |
- storage.save(); |
- } |
- |
- // TODO(jmesserly): polymer_expressions lacks ternary operator. |
- activeItemWord = activeCount == 1 ? 'item' : 'items'; |
- } |
- |
- void storageIdChanged() { |
- storage = document.querySelector('#$storageId'); |
- if (storage != null && storage.value != null) { |
- items = toObservable(storage.value.map((i) => new Todo.fromJson(i))); |
- } |
- } |
- |
- void filterItems() { |
- var fn = filters[filter]; |
- filtered = fn != null ? items.where(fn) : items; |
- } |
- |
- void newItem(String title) { |
- title = title.trim(); |
- if (title != '') { |
- items.add(new Todo(title)); |
- itemsChanged(); |
- } |
- } |
- |
- void destroyItem(Todo item) { |
- if (items.remove(item)) itemsChanged(); |
- } |
- |
- void clearItems() { |
- items.removeWhere(filters['completed']); |
- } |
- |
- void setItemsCompleted(bool completed) { |
- for (var item in items) { |
- item.completed = completed; |
- } |
- itemsChanged(); |
- } |
-} |