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

Side by Side Diff: sky/framework/components/animated_component.dart

Issue 1027633003: [Effen] Add AnimatedComponent base class (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: moar Created 5 years, 9 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
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 import '../animation/animated_value.dart';
6 import '../fn.dart';
7 import 'dart:mirrors';
8
9 class AnimatedComponent extends Component {
10 AnimatedComponent({ Object key }) : super(key: key, stateful: true);
11
12 animateField(AnimatedValue value, Symbol symbol) {
13 // TODO(rafaelw): Assert symbol is present on |this|, is private and
14 // is over the same parameterized type as the animated value.
15 var mirror = reflect(this);
16 var subscription;
17
18 mirror.setField(symbol, value.value);
19
20 onDidMount(() {
21 subscription = value.onValueChanged.listen((_) {
22 mirror.setField(symbol, value.value);
23 scheduleBuild();
24 });
25 });
26
27 onDidUnmount(() {
28 if (subscription != null) {
29 subscription.cancel();
30 subscription = null;
31 }
32 });
33 }
34 }
abarth-chromium 2015/03/20 05:41:49 Wow
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698