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

Side by Side Diff: lib/src/bind_property.dart

Issue 1616953004: Fixed strong mode errors and warnings reachable from lib/observe.dart (Closed) Base URL: https://github.com/dart-lang/observe.git@master
Patch Set: Removed inferrable type param Created 4 years, 11 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
« no previous file with comments | « lib/mirrors_used.dart ('k') | lib/src/change_notifier.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.bind_property; 5 library observe.src.bind_property;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'package:observe/observe.dart'; 8 import 'package:observe/observe.dart';
9 9
10 /// Forwards an observable property from one object to another. For example: 10 /// Forwards an observable property from one object to another. For example:
11 /// 11 ///
12 /// class MyModel extends Observable { 12 /// class MyModel extends Observable {
13 /// StreamSubscription _sub; 13 /// StreamSubscription _sub;
14 /// MyOtherModel _otherModel; 14 /// MyOtherModel _otherModel;
15 /// 15 ///
16 /// MyModel() { 16 /// MyModel() {
17 /// ... 17 /// ...
18 /// _sub = onPropertyChange(_otherModel, #value, 18 /// _sub = onPropertyChange(_otherModel, #value,
19 /// () => notifyPropertyChange(#prop, oldValue, newValue); 19 /// () => notifyPropertyChange(#prop, oldValue, newValue);
20 /// } 20 /// }
21 /// 21 ///
22 /// String get prop => _otherModel.value; 22 /// String get prop => _otherModel.value;
23 /// set prop(String value) { _otherModel.value = value; } 23 /// set prop(String value) { _otherModel.value = value; }
24 /// } 24 /// }
25 /// 25 ///
26 /// See also [notifyPropertyChange]. 26 /// See also [notifyPropertyChange].
27 // TODO(jmesserly): make this an instance method? 27 // TODO(jmesserly): make this an instance method?
28 StreamSubscription onPropertyChange(Observable source, Symbol sourceName, 28 StreamSubscription onPropertyChange(
29 void callback()) { 29 Observable source, Symbol sourceName, void callback()) {
30 return source.changes.listen((records) { 30 return source.changes.listen((records) {
31 for (var record in records) { 31 for (var record in records) {
32 if (record is PropertyChangeRecord && 32 if (record is PropertyChangeRecord &&
33 (record as PropertyChangeRecord).name == sourceName) { 33 (record as PropertyChangeRecord).name == sourceName) {
34 callback(); 34 callback();
35 break; 35 break;
36 } 36 }
37 } 37 }
38 }); 38 });
39 } 39 }
OLDNEW
« no previous file with comments | « lib/mirrors_used.dart ('k') | lib/src/change_notifier.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698