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

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
« no previous file with comments | « no previous file | sky/examples/stocks2/lib/stock_home.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 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 import 'stock_types.dart';
16 17
17 class StocksApp extends App { 18 class StocksApp extends App {
18 19
20 NavigationState _navigationState;
19 StocksApp() { 21 StocksApp() {
20 _navigationState = new NavigationState([ 22 _navigationState = new NavigationState([
21 new Route( 23 new Route(
22 name: '/', 24 name: '/',
23 builder: (navigator, route) => new StockHome(navigator, route, _stocks) 25 builder: (navigator, route) => new StockHome(navigator, _stocks, stockMo de, modeUpdater)
24 ), 26 ),
25 new Route( 27 new Route(
26 name: '/settings', 28 name: '/settings',
27 builder: (navigator, route) => new StockSettings(navigator) 29 builder: (navigator, route) => new StockSettings(navigator, stockMode, s ettingsUpdater)
28 ), 30 ),
29 ]); 31 ]);
30 } 32 }
31 33
34 void onBack() {
35 setState(() {
36 _navigationState.pop();
37 });
38 // TODO(jackson): Need a way to invoke default back behavior here
39 }
40
41 StockMode stockMode = StockMode.optimistic;
42 void modeUpdater(StockMode value) {
43 setState(() {
44 stockMode = value;
45 });
46 }
47 void settingsUpdater({StockMode mode}) {
48 setState(() {
49 if (mode != null)
50 stockMode = mode;
51 });
52 }
53
54 final List<Stock> _stocks = [];
32 void didMount() { 55 void didMount() {
33 super.didMount(); 56 super.didMount();
34 new StockDataFetcher((StockData data) { 57 new StockDataFetcher((StockData data) {
35 setState(() { 58 setState(() {
36 data.appendTo(_stocks); 59 data.appendTo(_stocks);
37 }); 60 });
38 }); 61 });
39 } 62 }
40 63
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() { 64 Widget build() {
52 return new Theme( 65 return new Theme(
53 data: new ThemeData.light( 66 data: new ThemeData.light(
54 primary: colors.Purple, 67 primary: colors.Purple,
55 accent: colors.RedAccent, 68 accent: colors.RedAccent,
56 darkToolbar: true), 69 darkToolbar: true),
57 child: new Navigator(_navigationState) 70 child: new Navigator(_navigationState)
58 ); 71 );
59 } 72 }
60 } 73 }
61 74
62 void main() { 75 void main() {
63 print("starting stocks app!"); 76 print("starting stocks app!");
64 runApp(new StocksApp()); 77 runApp(new StocksApp());
65 SkyBinding.instance.onFrame = () { 78 SkyBinding.instance.onFrame = () {
66 // uncomment this for debugging: 79 // uncomment this for debugging:
67 // SkyBinding.instance.debugDumpRenderTree(); 80 // SkyBinding.instance.debugDumpRenderTree();
68 }; 81 };
69 } 82 }
OLDNEW
« no previous file with comments | « no previous file | sky/examples/stocks2/lib/stock_home.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698