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

Side by Side Diff: sky/examples/stocks2/lib/stock_app.dart

Issue 1197333002: Make the checkbox in settings control the radio buttons in the drawer, to demonstrate how to link s… (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'package:sky/rendering/sky_binding.dart'; 5 import 'package:sky/rendering/sky_binding.dart';
6 import 'package:sky/theme/colors.dart' as colors; 6 import 'package:sky/theme/colors.dart' as colors;
7 import 'package:sky/theme/theme_data.dart'; 7 import 'package:sky/theme/theme_data.dart';
8 import 'package:sky/widgets/basic.dart'; 8 import 'package:sky/widgets/basic.dart';
9 import 'package:sky/widgets/navigator.dart'; 9 import 'package:sky/widgets/navigator.dart';
10 import 'package:sky/widgets/theme.dart'; 10 import 'package:sky/widgets/theme.dart';
11 import 'package:sky/widgets/widget.dart'; 11 import 'package:sky/widgets/widget.dart';
12 12
13 import 'stock_data.dart'; 13 import 'stock_data.dart';
14 import 'stock_home.dart'; 14 import 'stock_home.dart';
15 import 'stock_settings.dart'; 15 import 'stock_settings.dart';
16 16
17 class StocksApp extends App { 17 class StocksApp extends App {
18 18
19 NavigationState _navigationState;
19 StocksApp() { 20 StocksApp() {
20 _navigationState = new NavigationState([ 21 _navigationState = new NavigationState([
21 new Route( 22 new Route(
22 name: '/', 23 name: '/',
23 builder: (navigator, route) => new StockHome(navigator, route, _stocks) 24 builder: (navigator, route) => new StockHome(navigator, _stocks, stockMo de, modeUpdater)
24 ), 25 ),
25 new Route( 26 new Route(
26 name: '/settings', 27 name: '/settings',
27 builder: (navigator, route) => new StockSettings(navigator) 28 builder: (navigator, route) => new StockSettings(navigator, stockMode, s ettingsUpdater)
28 ), 29 ),
29 ]); 30 ]);
30 } 31 }
31 32
33 void onBack() {
34 setState(() {
35 _navigationState.pop();
36 });
37 // TODO(jackson): Need a way to invoke default back behavior here
38 }
39
40 StockMode stockMode = StockMode.optimistic;
41 void modeUpdater(StockMode value) {
42 setState(() {
43 stockMode = value;
44 });
45 }
46 void settingsUpdater({StockMode mode}) {
47 setState(() {
48 if (mode != null)
49 stockMode = mode;
50 });
51 }
52
53 final List<Stock> _stocks = [];
32 void didMount() { 54 void didMount() {
33 super.didMount(); 55 super.didMount();
34 new StockDataFetcher((StockData data) { 56 new StockDataFetcher((StockData data) {
35 setState(() { 57 setState(() {
36 data.appendTo(_stocks); 58 data.appendTo(_stocks);
37 }); 59 });
38 }); 60 });
39 } 61 }
40 62
41 final List<Stock> _stocks = [];
42 NavigationState _navigationState;
43
44 void onBack() {
45 setState(() {
46 _navigationState.pop();
47 });
48 // TODO(jackson): Need a way to invoke default back behavior here
49 }
50
51 Widget build() { 63 Widget build() {
52 return new Theme( 64 return new Theme(
53 data: new ThemeData.light( 65 data: new ThemeData.light(
54 primary: colors.Purple, 66 primary: colors.Purple,
55 accent: colors.RedAccent, 67 accent: colors.RedAccent,
56 darkToolbar: true), 68 darkToolbar: true),
57 child: new Navigator(_navigationState) 69 child: new Navigator(_navigationState)
58 ); 70 );
59 } 71 }
60 } 72 }
61 73
62 void main() { 74 void main() {
63 print("starting stocks app!"); 75 print("starting stocks app!");
64 runApp(new StocksApp()); 76 runApp(new StocksApp());
65 SkyBinding.instance.onFrame = () { 77 SkyBinding.instance.onFrame = () {
66 // uncomment this for debugging: 78 // uncomment this for debugging:
67 // SkyBinding.instance.debugDumpRenderTree(); 79 // SkyBinding.instance.debugDumpRenderTree();
68 }; 80 };
69 } 81 }
OLDNEW
« no previous file with comments | « no previous file | sky/examples/stocks2/lib/stock_home.dart » ('j') | sky/examples/stocks2/lib/stock_settings.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698