Index: sky/examples/stocks/lib/stock_app.dart |
diff --git a/sky/examples/stocks/lib/stock_app.dart b/sky/examples/stocks/lib/stock_app.dart |
index 2c63f6a073e6ccb94fe2462108ee9a2d5f2f36fa..3b6ad62e8f5434ffdf15be0696865ab550e2bfe1 100644 |
--- a/sky/examples/stocks/lib/stock_app.dart |
+++ b/sky/examples/stocks/lib/stock_app.dart |
@@ -13,6 +13,7 @@ import 'package:sky/framework/components/menu_divider.dart'; |
import 'package:sky/framework/components/menu_item.dart'; |
import 'package:sky/framework/components/modal_overlay.dart'; |
import 'package:sky/framework/components/popup_menu.dart'; |
+import 'package:sky/framework/components/radio.dart'; |
import 'package:sky/framework/components/scaffold.dart'; |
import 'package:sky/framework/fn.dart'; |
import 'package:sky/framework/theme/typography.dart' as typography; |
@@ -26,6 +27,8 @@ import 'package:sky/framework/layout.dart'; |
const bool debug = false; // set to true to dump the DOM for debugging purposes |
+enum StockMode { Optimistic, Pessimistic } |
+ |
class StocksApp extends App { |
static final Style _actionBarStyle = new Style(''' |
@@ -100,6 +103,22 @@ class StocksApp extends App { |
}); |
} |
+ bool _autorefresh = false; |
+ void _handleAutorefreshChanged(bool value) { |
+ setState(() { |
+ _autorefresh = value; |
+ }); |
+ } |
+ |
+ StockMode _stockMode = StockMode.Optimistic; |
+ void _handleStockModeChange(StockMode value) { |
+ setState(() { |
+ _stockMode = value; |
+ }); |
+ } |
+ |
+ static FlexBoxParentData _flex1 = new FlexBoxParentData()..flex = 1; |
+ |
Drawer buildDrawer() { |
return new Drawer( |
controller: _drawerController, |
@@ -107,14 +126,31 @@ class StocksApp extends App { |
children: [ |
new DrawerHeader(children: [new Text('Stocks')]), |
new MenuItem( |
- key: 'Inbox', |
- icon: 'content/inbox', |
- children: [new Text('Inbox')]), |
- new MenuDivider(), |
+ key: 'Stock list', |
+ icon: 'action/assessment', |
+ children: [new Text('Stock List')]), |
+ new MenuItem( |
+ key: 'Account Balance', |
+ icon: 'action/account_balance', |
+ children: [new Text('Account Balance')]), |
+ new MenuDivider(key: 'div1'), |
+ new MenuItem( |
+ key: 'Optimistic Menu Item', |
+ icon: 'action/thumb_up', |
+ onGestureTap: (event) => _handleStockModeChange(StockMode.Optimistic), |
+ children: [ |
+ new ParentDataNode(new Text('Optimistic'), _flex1), |
+ new Radio(key: 'optimistic-radio', value: StockMode.Optimistic, groupValue: _stockMode, onChanged: _handleStockModeChange) |
+ ]), |
new MenuItem( |
- key: 'Drafts', |
- icon: 'content/drafts', |
- children: [new Text('Drafts')]), |
+ key: 'Pessimistic Menu Item', |
+ icon: 'action/thumb_down', |
+ onGestureTap: (event) => _handleStockModeChange(StockMode.Pessimistic), |
+ children: [ |
+ new ParentDataNode(new Text('Pessimistic'), _flex1), |
+ new Radio(key: 'pessimistic-radio', value: StockMode.Pessimistic, groupValue: _stockMode, onChanged: _handleStockModeChange) |
+ ]), |
+ new MenuDivider(key: 'div2'), |
new MenuItem( |
key: 'Settings', |
icon: 'action/settings', |
@@ -165,7 +201,11 @@ class StocksApp extends App { |
if (_menuController == null) |
return; |
overlays.add(new ModalOverlay( |
- children: [new StockMenu(controller: _menuController)], |
+ children: [new StockMenu( |
+ controller: _menuController, |
+ autorefresh: _autorefresh, |
+ onAutorefreshChanged: _handleAutorefreshChanged |
+ )], |
onDismiss: _handleMenuHide)); |
} |