Index: client/observable/ChangeEvent.dart |
=================================================================== |
--- client/observable/ChangeEvent.dart (revision 4144) |
+++ client/observable/ChangeEvent.dart (working copy) |
@@ -1,84 +0,0 @@ |
-// Copyright (c) 2011, 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. |
- |
-/** A change to an observable instance. */ |
-class ChangeEvent { |
- // TODO(sigmund): capture language issues around enums & create a cannonical |
- // Dart enum design. |
- /** Type denoting an in-place update event. */ |
- static final UPDATE = 0; |
- |
- /** Type denoting an insertion event. */ |
- static final INSERT = 1; |
- |
- /** Type denoting a single-remove event. */ |
- static final REMOVE = 2; |
- |
- /** |
- * Type denoting events that affect the entire observable instance. For |
- * example, a list operation like clear or sort. |
- */ |
- static final GLOBAL = 3; |
- |
- /** The observable instance that changed. */ |
- final Observable target; |
- |
- /** Whether the change was an [INSERT], [REMOVE], or [UPDATE]. */ |
- final int type; |
- |
- /** The value after the change (or inserted value in a list). */ |
- final newValue = null; |
- |
- /** The value before the change (or removed value from a list). */ |
- final oldValue = null; |
- |
- /** Property that changed (null for list changes). */ |
- final String propertyName = null; |
- |
- /** |
- * Index of the list operation. Insertions prepend in front of the given |
- * index (insert at 0 means an insertion at the beginning of the list). |
- */ |
- final int index = null; |
- |
- /** Factory constructor for property change events. */ |
- ChangeEvent.property( |
- this.target, this.propertyName, this.newValue, this.oldValue) |
- : type = UPDATE; |
- |
- /** Factory constructor for list change events. */ |
- ChangeEvent.list( |
- this.target, this.type, this.index, this.newValue, this.oldValue); |
- |
- /** Factory constructor for [GLOBAL] change events. */ |
- ChangeEvent.global(this.target) : type = GLOBAL; |
-} |
- |
-/** A collection of change events on a single observable instance. */ |
-class EventSummary { |
- final Observable target; |
- |
- // TODO(sigmund): evolve this to track changes per property. |
- List<ChangeEvent> events; |
- |
- EventSummary(this.target) : events = new List<ChangeEvent>(); |
- |
- void addEvent(ChangeEvent e) { |
- events.add(e); |
- } |
- |
- /** Notify listeners of [target] and parents of [target] about all changes. */ |
- void notify() { |
- if (!events.isEmpty()) { |
- for (Observable obj = target; obj != null; obj = obj.parent) { |
- for (final listener in obj.listeners) { |
- listener(this); |
- } |
- } |
- } |
- } |
-} |
- |
-/** A listener of change events. */ |
-typedef void ChangeListener(EventSummary events); |