| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 import 'package:sky/editing2/input.dart'; | 5 import 'package:sky/editing2/input.dart'; | 
| 6 import 'package:sky/theme2/colors.dart' as colors; | 6 import 'package:sky/theme2/colors.dart' as colors; | 
| 7 import 'package:sky/theme2/typography.dart' as typography; | 7 import 'package:sky/theme2/typography.dart' as typography; | 
| 8 import 'package:sky/widgets/basic.dart'; | 8 import 'package:sky/widgets/basic.dart'; | 
| 9 import 'package:sky/widgets/drawer.dart'; | 9 import 'package:sky/widgets/drawer.dart'; | 
| 10 import 'package:sky/widgets/drawer_header.dart'; | 10 import 'package:sky/widgets/drawer_header.dart'; | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 39     }); | 39     }); | 
| 40     _drawerController = new DrawerController(_handleDrawerStatusChanged); | 40     _drawerController = new DrawerController(_handleDrawerStatusChanged); | 
| 41   } | 41   } | 
| 42 | 42 | 
| 43   List<Stock> _stocks = []; | 43   List<Stock> _stocks = []; | 
| 44   Navigator _navigator; | 44   Navigator _navigator; | 
| 45 | 45 | 
| 46   bool _isSearching = false; | 46   bool _isSearching = false; | 
| 47   String _searchQuery; | 47   String _searchQuery; | 
| 48 | 48 | 
| 49   void _handleSearchBegin(_) { | 49   void _handleSearchBegin() { | 
| 50     setState(() { | 50     setState(() { | 
| 51       _isSearching = true; | 51       _isSearching = true; | 
| 52     }); | 52     }); | 
| 53   } | 53   } | 
| 54 | 54 | 
| 55   void _handleSearchEnd(_) { | 55   void _handleSearchEnd() { | 
| 56     setState(() { | 56     setState(() { | 
| 57       _isSearching = false; | 57       _isSearching = false; | 
| 58       _searchQuery = null; | 58       _searchQuery = null; | 
| 59     }); | 59     }); | 
| 60   } | 60   } | 
| 61 | 61 | 
| 62   void _handleSearchQueryChanged(String query) { | 62   void _handleSearchQueryChanged(String query) { | 
| 63     setState(() { | 63     setState(() { | 
| 64       _searchQuery = query; | 64       _searchQuery = query; | 
| 65     }); | 65     }); | 
| 66   } | 66   } | 
| 67 | 67 | 
| 68   DrawerController _drawerController; | 68   DrawerController _drawerController; | 
| 69   bool _drawerShowing = false; | 69   bool _drawerShowing = false; | 
| 70 | 70 | 
| 71   void _handleDrawerStatusChanged(bool showing) { | 71   void _handleDrawerStatusChanged(bool showing) { | 
| 72     setState(() { | 72     setState(() { | 
| 73       _drawerShowing = showing; | 73       _drawerShowing = showing; | 
| 74     }); | 74     }); | 
| 75   } | 75   } | 
| 76 | 76 | 
| 77   PopupMenuController _menuController; | 77   PopupMenuController _menuController; | 
| 78 | 78 | 
| 79   void _handleMenuShow(_) { | 79   void _handleMenuShow() { | 
| 80     setState(() { | 80     setState(() { | 
| 81       _menuController = new PopupMenuController(); | 81       _menuController = new PopupMenuController(); | 
| 82       _menuController.open(); | 82       _menuController.open(); | 
| 83     }); | 83     }); | 
| 84   } | 84   } | 
| 85 | 85 | 
| 86   void _handleMenuHide(_) { | 86   void _handleMenuHide() { | 
| 87     setState(() { | 87     setState(() { | 
| 88       _menuController.close().then((_) { | 88       _menuController.close().then((_) { | 
| 89         setState(() { | 89         setState(() { | 
| 90           _menuController = null; | 90           _menuController = null; | 
| 91         }); | 91         }); | 
| 92       }); | 92       }); | 
| 93     }); | 93     }); | 
| 94   } | 94   } | 
| 95 | 95 | 
| 96   bool _autorefresh = false; | 96   bool _autorefresh = false; | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 118           icon: 'action/assessment', | 118           icon: 'action/assessment', | 
| 119           children: [new Text('Stock List')]), | 119           children: [new Text('Stock List')]), | 
| 120         new MenuItem( | 120         new MenuItem( | 
| 121           key: 'Account Balance', | 121           key: 'Account Balance', | 
| 122           icon: 'action/account_balance', | 122           icon: 'action/account_balance', | 
| 123           children: [new Text('Account Balance')]), | 123           children: [new Text('Account Balance')]), | 
| 124         new MenuDivider(key: 'div1'), | 124         new MenuDivider(key: 'div1'), | 
| 125         new MenuItem( | 125         new MenuItem( | 
| 126           key: 'Optimistic Menu Item', | 126           key: 'Optimistic Menu Item', | 
| 127           icon: 'action/thumb_up', | 127           icon: 'action/thumb_up', | 
| 128           onGestureTap: (event) => _handleStockModeChange(StockMode.optimistic), | 128           onPressed: () => _handleStockModeChange(StockMode.optimistic), | 
| 129           children: [ | 129           children: [ | 
| 130             new Flexible(child: new Text('Optimistic')), | 130             new Flexible(child: new Text('Optimistic')), | 
| 131             new Radio(key: 'optimistic-radio', value: StockMode.optimistic, grou
     pValue: _stockMode, onChanged: _handleStockModeChange) | 131             new Radio(key: 'optimistic-radio', value: StockMode.optimistic, grou
     pValue: _stockMode, onChanged: _handleStockModeChange) | 
| 132           ]), | 132           ]), | 
| 133         new MenuItem( | 133         new MenuItem( | 
| 134           key: 'Pessimistic Menu Item', | 134           key: 'Pessimistic Menu Item', | 
| 135           icon: 'action/thumb_down', | 135           icon: 'action/thumb_down', | 
| 136           onGestureTap: (event) => _handleStockModeChange(StockMode.pessimistic)
     , | 136           onPressed: () => _handleStockModeChange(StockMode.pessimistic), | 
| 137           children: [ | 137           children: [ | 
| 138             new Flexible(child: new Text('Pessimistic')), | 138             new Flexible(child: new Text('Pessimistic')), | 
| 139             new Radio(key: 'pessimistic-radio', value: StockMode.pessimistic, gr
     oupValue: _stockMode, onChanged: _handleStockModeChange) | 139             new Radio(key: 'pessimistic-radio', value: StockMode.pessimistic, gr
     oupValue: _stockMode, onChanged: _handleStockModeChange) | 
| 140           ]), | 140           ]), | 
| 141         new MenuDivider(key: 'div2'), | 141         new MenuDivider(key: 'div2'), | 
| 142         new MenuItem( | 142         new MenuItem( | 
| 143           key: 'Settings', | 143           key: 'Settings', | 
| 144           icon: 'action/settings', | 144           icon: 'action/settings', | 
| 145           onGestureTap: (event) => _navigator.pushNamed('/settings'), | 145           onPressed: () => _navigator.pushNamed('/settings'), | 
| 146           children: [new Text('Settings')]), | 146           children: [new Text('Settings')]), | 
| 147         new MenuItem( | 147         new MenuItem( | 
| 148           key: 'Help & Feedback', | 148           key: 'Help & Feedback', | 
| 149           icon: 'action/help', | 149           icon: 'action/help', | 
| 150           children: [new Text('Help & Feedback')]) | 150           children: [new Text('Help & Feedback')]) | 
| 151      ] | 151      ] | 
| 152     ); | 152     ); | 
| 153   } | 153   } | 
| 154 | 154 | 
| 155   Widget buildToolBar() { | 155   Widget buildToolBar() { | 
| 156     return new ToolBar( | 156     return new ToolBar( | 
| 157         left: new IconButton( | 157         left: new IconButton( | 
| 158           icon: 'navigation/menu_white', | 158           icon: 'navigation/menu_white', | 
| 159           onGestureTap: (_) => _drawerController.toggle()), | 159           onPressed: _drawerController.toggle), | 
| 160         center: new Text('Stocks', style: typography.white.title), | 160         center: new Text('Stocks', style: typography.white.title), | 
| 161         right: [ | 161         right: [ | 
| 162           new IconButton( | 162           new IconButton( | 
| 163             icon: 'action/search_white', | 163             icon: 'action/search_white', | 
| 164             onGestureTap: _handleSearchBegin), | 164             onPressed: _handleSearchBegin), | 
| 165           new IconButton( | 165           new IconButton( | 
| 166             icon: 'navigation/more_vert_white', | 166             icon: 'navigation/more_vert_white', | 
| 167             onGestureTap: _handleMenuShow) | 167             onPressed: _handleMenuShow) | 
| 168         ], | 168         ], | 
| 169         backgroundColor: colors.Purple[500] | 169         backgroundColor: colors.Purple[500] | 
| 170       ); | 170       ); | 
| 171   } | 171   } | 
| 172 | 172 | 
| 173   // TODO(abarth): Should we factor this into a SearchBar in the framework? | 173   // TODO(abarth): Should we factor this into a SearchBar in the framework? | 
| 174   Widget buildSearchBar() { | 174   Widget buildSearchBar() { | 
| 175     return new ToolBar( | 175     return new ToolBar( | 
| 176       left: new IconButton( | 176       left: new IconButton( | 
| 177         icon: 'navigation/arrow_back_grey600', | 177         icon: 'navigation/arrow_back_grey600', | 
| 178         onGestureTap: _handleSearchEnd), | 178         onPressed: _handleSearchEnd), | 
| 179       center: new Input( | 179       center: new Input( | 
| 180         focused: true, | 180         focused: true, | 
| 181         placeholder: 'Search stocks', | 181         placeholder: 'Search stocks', | 
| 182         onChanged: _handleSearchQueryChanged), | 182         onChanged: _handleSearchQueryChanged), | 
| 183       backgroundColor: colors.Grey[50] | 183       backgroundColor: colors.Grey[50] | 
| 184     ); | 184     ); | 
| 185   } | 185   } | 
| 186 | 186 | 
| 187   void addMenuToOverlays(List<Widget> overlays) { | 187   void addMenuToOverlays(List<Widget> overlays) { | 
| 188     if (_menuController == null) | 188     if (_menuController == null) | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 204         floatingActionButton: new FloatingActionButton( | 204         floatingActionButton: new FloatingActionButton( | 
| 205           child: new Icon(type: 'content/add_white', size: 24) | 205           child: new Icon(type: 'content/add_white', size: 24) | 
| 206         ), | 206         ), | 
| 207         drawer: _drawerShowing ? buildDrawer() : null | 207         drawer: _drawerShowing ? buildDrawer() : null | 
| 208       ), | 208       ), | 
| 209     ]; | 209     ]; | 
| 210     addMenuToOverlays(overlays); | 210     addMenuToOverlays(overlays); | 
| 211     return new Stack(overlays); | 211     return new Stack(overlays); | 
| 212   } | 212   } | 
| 213 } | 213 } | 
| OLD | NEW | 
|---|