Index: sky/examples/stocks2/lib/stock_home.dart |
diff --git a/sky/examples/stocks2/lib/stock_home.dart b/sky/examples/stocks2/lib/stock_home.dart |
index cc98bb8f7e6d8b5d14c32975933d5bace7bcc06d..fb510aff25fb344c4ebf59a408a9b889a85d0a92 100644 |
--- a/sky/examples/stocks2/lib/stock_home.dart |
+++ b/sky/examples/stocks2/lib/stock_home.dart |
@@ -29,19 +29,19 @@ enum StockMode { optimistic, pessimistic } |
class StockHome extends Component { |
- StockHome(this._navigator) { |
+ StockHome(this.navigator, RouteBase route, this.stocks) : super(stateful: true) { |
// if (debug) |
// new Timer(new Duration(seconds: 1), dumpState); |
- new StockDataFetcher((StockData data) { |
- setState(() { |
- data.appendTo(_stocks); |
- }); |
- }); |
_drawerController = new DrawerController(_handleDrawerStatusChanged); |
} |
- List<Stock> _stocks = []; |
- Navigator _navigator; |
+ void syncFields(StockHome source) { |
+ navigator = source.navigator; |
+ stocks = source.stocks; |
+ } |
+ |
+ Navigator navigator; |
+ List<Stock> stocks; |
bool _isSearching = false; |
String _searchQuery; |
@@ -69,6 +69,9 @@ class StockHome extends Component { |
bool _drawerShowing = false; |
void _handleDrawerStatusChanged(bool showing) { |
+ if (!showing && navigator.currentRoute.name == "/drawer") { |
+ navigator.pop(); |
+ } |
setState(() { |
_drawerShowing = showing; |
}); |
@@ -137,7 +140,7 @@ class StockHome extends Component { |
new MenuDivider(), |
new MenuItem( |
icon: 'action/settings', |
- onPressed: () => _navigator.pushNamed('/settings'), |
+ onPressed: () => navigator.pushNamed('/settings'), |
children: [new Text('Settings')]), |
new MenuItem( |
icon: 'action/help', |
@@ -146,11 +149,18 @@ class StockHome extends Component { |
); |
} |
+ void _handleOpenDrawer() { |
+ _drawerController.open(); |
+ navigator.pushState("/drawer", (route) { |
abarth-chromium
2015/06/18 22:23:59
If you ignore arguments, the convention is to use
|
+ _drawerController.close(); |
+ }); |
+ } |
+ |
Widget buildToolBar() { |
return new ToolBar( |
left: new IconButton( |
icon: 'navigation/menu_white', |
- onPressed: _drawerController.toggle), |
+ onPressed: _handleOpenDrawer), |
center: new Text('Stocks', style: typography.white.title), |
right: [ |
new IconButton( |
@@ -194,7 +204,7 @@ class StockHome extends Component { |
List<Widget> overlays = [ |
new Scaffold( |
toolbar: _isSearching ? buildSearchBar() : buildToolBar(), |
- body: new Stocklist(stocks: _stocks, query: _searchQuery), |
+ body: new Stocklist(stocks: stocks, query: _searchQuery), |
floatingActionButton: new FloatingActionButton( |
child: new Icon(type: 'content/add_white', size: 24) |
), |