Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: sky/sdk/example/stocks/lib/stock_home.dart

Issue 1219933004: Make it harder to forget itemCount for FixedHeightScrollable (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: address ian's comments Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/sdk/example/demo_launcher/lib/main.dart ('k') | sky/sdk/example/stocks/lib/stock_list.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/editing/input.dart'; 5 import 'package:sky/editing/input.dart';
6 import 'package:sky/widgets/basic.dart'; 6 import 'package:sky/widgets/basic.dart';
7 import 'package:sky/widgets/drawer.dart'; 7 import 'package:sky/widgets/drawer.dart';
8 import 'package:sky/widgets/drawer_header.dart'; 8 import 'package:sky/widgets/drawer_header.dart';
9 import 'package:sky/widgets/floating_action_button.dart'; 9 import 'package:sky/widgets/floating_action_button.dart';
10 import 'package:sky/widgets/icon.dart'; 10 import 'package:sky/widgets/icon.dart';
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 ] 157 ]
158 ); 158 );
159 } 159 }
160 160
161 void _handleOpenDrawer() { 161 void _handleOpenDrawer() {
162 _drawerController.open(); 162 _drawerController.open();
163 navigator.pushState("/drawer", (_) { 163 navigator.pushState("/drawer", (_) {
164 _drawerController.close(); 164 _drawerController.close();
165 }); 165 });
166 } 166 }
167 167
168 Widget buildToolBar() { 168 Widget buildToolBar() {
169 return new ToolBar( 169 return new ToolBar(
170 left: new IconButton( 170 left: new IconButton(
171 icon: 'navigation/menu_white', 171 icon: 'navigation/menu_white',
172 onPressed: _handleOpenDrawer), 172 onPressed: _handleOpenDrawer),
173 center: new Text('Stocks'), 173 center: new Text('Stocks'),
174 right: [ 174 right: [
175 new IconButton( 175 new IconButton(
176 icon: 'action/search_white', 176 icon: 'action/search_white',
177 onPressed: _handleSearchBegin), 177 onPressed: _handleSearchBegin),
178 new IconButton( 178 new IconButton(
179 icon: 'navigation/more_vert_white', 179 icon: 'navigation/more_vert_white',
180 onPressed: _handleMenuShow) 180 onPressed: _handleMenuShow)
181 ] 181 ]
182 ); 182 );
183 } 183 }
184 184
185 int selectedTabIndex = 0; 185 int selectedTabIndex = 0;
186 List<String> portfolioSymbols = ["AAPL","FIZZ", "FIVE", "FLAT", "ZINC", "ZNGA" ]; 186 List<String> portfolioSymbols = ["AAPL","FIZZ", "FIVE", "FLAT", "ZINC", "ZNGA" ];
187 187
188 Iterable<Stock> _filterByPortfolio(Iterable<Stock> stocks) {
189 return stocks.where((stock) => portfolioSymbols.contains(stock.symbol));
190 }
191
192 Iterable<Stock> _filterBySearchQuery(Iterable<Stock> stocks) {
193 if (_searchQuery == null)
194 return stocks;
195 RegExp regexp = new RegExp(_searchQuery, caseSensitive: false);
196 return stocks.where((stock) => stock.symbol.contains(regexp));
197 }
198
199 Widget buildMarketStockList() {
200 return new Stocklist(stocks: _filterBySearchQuery(stocks).toList());
201 }
202
188 Widget buildPortfolioStocklist() { 203 Widget buildPortfolioStocklist() {
189 return new Stocklist( 204 return new Stocklist(stocks: _filterBySearchQuery(_filterByPortfolio(stocks) ).toList());
190 stocks: stocks.where((s) => portfolioSymbols.contains(s.symbol)).toList(),
191 query: _searchQuery
192 );
193 } 205 }
194 206
195 Widget buildTabNavigator() { 207 Widget buildTabNavigator() {
196 List<TabNavigatorView> views = <TabNavigatorView>[ 208 List<TabNavigatorView> views = <TabNavigatorView>[
197 new TabNavigatorView( 209 new TabNavigatorView(
198 label: const TabLabel(text: 'MARKET'), 210 label: const TabLabel(text: 'MARKET'),
199 builder: () => new Stocklist(stocks: stocks, query: _searchQuery) 211 builder: buildMarketStockList
200 ), 212 ),
201 new TabNavigatorView( 213 new TabNavigatorView(
202 label: const TabLabel(text: 'PORTFOLIO'), 214 label: const TabLabel(text: 'PORTFOLIO'),
203 builder: buildPortfolioStocklist 215 builder: buildPortfolioStocklist
204 ) 216 )
205 ]; 217 ];
206 return new TabNavigator( 218 return new TabNavigator(
207 views: views, 219 views: views,
208 selectedIndex: selectedTabIndex, 220 selectedIndex: selectedTabIndex,
209 onChanged: (tabIndex) { 221 onChanged: (tabIndex) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 body: buildTabNavigator(), 285 body: buildTabNavigator(),
274 snackBar: buildSnackBar(), 286 snackBar: buildSnackBar(),
275 floatingActionButton: buildFloatingActionButton(), 287 floatingActionButton: buildFloatingActionButton(),
276 drawer: _drawerShowing ? buildDrawer() : null 288 drawer: _drawerShowing ? buildDrawer() : null
277 ), 289 ),
278 ]; 290 ];
279 addMenuToOverlays(overlays); 291 addMenuToOverlays(overlays);
280 return new Stack(overlays); 292 return new Stack(overlays);
281 } 293 }
282 } 294 }
OLDNEW
« no previous file with comments | « sky/sdk/example/demo_launcher/lib/main.dart ('k') | sky/sdk/example/stocks/lib/stock_list.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698