| 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..4d3977aa4daa793befe10fed62959f380899c9d0 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_types.dart';
|
| +
|
| +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) {
|
| + void _handleStockModeChanged(bool value) {
|
| 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: () => _handleStockModeChanged(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: _handleStockModeChanged)
|
| ]
|
| ),
|
| ])
|
|
|