OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library observe.src.observable_list; | 5 library observe.src.observable_list; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection' show ListBase, UnmodifiableListView; | 8 import 'dart:collection' show ListBase, UnmodifiableListView; |
9 import 'package:observe/observe.dart'; | 9 import 'package:observe/observe.dart'; |
10 import 'list_diff.dart' show projectListSplices, calcSplices; | 10 import 'list_diff.dart' show projectListSplices, calcSplices; |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 } | 240 } |
241 _listRecords.add(record); | 241 _listRecords.add(record); |
242 } | 242 } |
243 | 243 |
244 void _notifyChangeLength(int oldValue, int newValue) { | 244 void _notifyChangeLength(int oldValue, int newValue) { |
245 notifyPropertyChange(#length, oldValue, newValue); | 245 notifyPropertyChange(#length, oldValue, newValue); |
246 notifyPropertyChange(#isEmpty, oldValue == 0, newValue == 0); | 246 notifyPropertyChange(#isEmpty, oldValue == 0, newValue == 0); |
247 notifyPropertyChange(#isNotEmpty, oldValue != 0, newValue != 0); | 247 notifyPropertyChange(#isNotEmpty, oldValue != 0, newValue != 0); |
248 } | 248 } |
249 | 249 |
250 void discardListChages() { | 250 /// Deprecated. Name had a typo, use [discardListChanges] instead. |
| 251 @deprecated |
| 252 void discardListChages() => discardListChanges(); |
| 253 |
| 254 void discardListChanges() { |
251 // Leave _listRecords set so we don't schedule another delivery. | 255 // Leave _listRecords set so we don't schedule another delivery. |
252 if (_listRecords != null) _listRecords = []; | 256 if (_listRecords != null) _listRecords = []; |
253 } | 257 } |
254 | 258 |
255 bool deliverListChanges() { | 259 bool deliverListChanges() { |
256 if (_listRecords == null) return false; | 260 if (_listRecords == null) return false; |
257 var records = projectListSplices(this, _listRecords); | 261 var records = projectListSplices(this, _listRecords); |
258 _listRecords = null; | 262 _listRecords = null; |
259 | 263 |
260 if (_hasListObservers && !records.isEmpty) { | 264 if (_hasListObservers && !records.isEmpty) { |
(...skipping 30 matching lines...) Expand all Loading... |
291 | 295 |
292 for (var change in changeRecords) { | 296 for (var change in changeRecords) { |
293 int addEnd = change.index + change.addedCount; | 297 int addEnd = change.index + change.addedCount; |
294 int removeEnd = change.index + change.removed.length; | 298 int removeEnd = change.index + change.removed.length; |
295 | 299 |
296 var addedItems = current.getRange(change.index, addEnd); | 300 var addedItems = current.getRange(change.index, addEnd); |
297 previous.replaceRange(change.index, removeEnd, addedItems); | 301 previous.replaceRange(change.index, removeEnd, addedItems); |
298 } | 302 } |
299 } | 303 } |
300 } | 304 } |
OLD | NEW |