Chromium Code Reviews| Index: sky/examples/stocks2/lib/stock_settings.dart |
| diff --git a/sky/examples/stocks2/lib/stock_settings.dart b/sky/examples/stocks2/lib/stock_settings.dart |
| index dedcd868463b470f71f6234c4a68b94cd1c79067..ec76447ff193f97371a0e53b5de79f1c19a7cb40 100644 |
| --- a/sky/examples/stocks2/lib/stock_settings.dart |
| +++ b/sky/examples/stocks2/lib/stock_settings.dart |
| @@ -12,24 +12,43 @@ import 'package:sky/widgets/scaffold.dart'; |
| import 'package:sky/widgets/theme.dart'; |
| import 'package:sky/widgets/tool_bar.dart'; |
| +import 'stock_home.dart'; |
|
jackson
2015/06/23 00:44:03
I don't think the settings page should need to kno
|
| + |
| +typedef void SettingsUpdater({StockMode mode}); |
| + |
| class StockSettings extends Component { |
| - StockSettings(this._navigator); |
| + StockSettings(this.navigator, this.stockMode, this.updater) : super(stateful: true); |
| + |
| + Navigator navigator; |
| + StockMode stockMode; |
| + SettingsUpdater updater; |
| - Navigator _navigator; |
| + void syncFields(StockSettings source) { |
| + navigator = source.navigator; |
| + stockMode = source.stockMode; |
| + updater = source.updater; |
| + } |
| - bool _awesome = false; |
| void _handleAwesomeChanged(bool value) { |
|
jackson
2015/06/23 00:44:03
might want to rename this _handleModeChanged
|
| setState(() { |
| - _awesome = value; |
| + stockMode = value ? StockMode.optimistic : StockMode.pessimistic; |
| }); |
| + sendUpdates(); |
| + } |
| + |
| + void sendUpdates() { |
| + if (updater != null) |
| + updater( |
| + mode: stockMode |
| + ); |
| } |
| Widget buildToolBar() { |
| return new ToolBar( |
| left: new IconButton( |
| icon: 'navigation/arrow_back_white', |
| - onPressed: _navigator.pop), |
| + onPressed: navigator.pop), |
| center: new Text('Settings', style: Theme.of(this).text.title) |
| ); |
| } |
| @@ -41,10 +60,10 @@ class StockSettings extends Component { |
| child: new Block([ |
| new MenuItem( |
| icon: 'action/thumb_up', |
| - onPressed: () => _handleAwesomeChanged(!_awesome), |
| + onPressed: () => _handleAwesomeChanged(stockMode == StockMode.optimistic ? false : true), |
| children: [ |
| new Flexible(child: new Text('Everything is awesome')), |
| - new Checkbox(value: _awesome, onChanged: _handleAwesomeChanged) |
| + new Checkbox(value: stockMode == StockMode.optimistic, onChanged: _handleAwesomeChanged) |
| ] |
| ), |
| ]) |