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) |
] |
), |
]) |