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

Side by Side Diff: sky/examples/stocks-fn/stocksapp.dart

Issue 998803002: Make the search box in the stocks app show a search field (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/examples/stocks-fn/stocks.sky ('k') | sky/framework/components/input.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 library stocksapp; 1 library stocksapp;
2 2
3 import '../../framework/fn.dart'; 3 import '../../framework/fn.dart';
4 import '../../framework/components/drawer.dart'; 4 import '../../framework/components/drawer.dart';
5 import '../../framework/components/drawer_header.dart'; 5 import '../../framework/components/drawer_header.dart';
6 import '../../framework/components/fixed_height_scrollable.dart'; 6 import '../../framework/components/fixed_height_scrollable.dart';
7 import '../../framework/components/floating_action_button.dart'; 7 import '../../framework/components/floating_action_button.dart';
8 import '../../framework/components/icon.dart'; 8 import '../../framework/components/icon.dart';
9 import '../../framework/components/input.dart';
9 import '../../framework/components/material.dart'; 10 import '../../framework/components/material.dart';
10 import '../../framework/components/menu_divider.dart'; 11 import '../../framework/components/menu_divider.dart';
11 import '../../framework/components/menu_item.dart'; 12 import '../../framework/components/menu_item.dart';
12 import '../../framework/components/toolbar.dart'; 13 import '../../framework/components/toolbar.dart';
13 import '../data/stocks.dart'; 14 import '../data/stocks.dart';
14 import 'dart:math'; 15 import 'dart:math';
15 16
16 part 'stockarrow.dart'; 17 part 'stockarrow.dart';
17 part 'stocklist.dart'; 18 part 'stocklist.dart';
18 part 'stockrow.dart'; 19 part 'stockrow.dart';
(...skipping 14 matching lines...) Expand all
33 padding: 8px; 34 padding: 8px;
34 margin: 0 4px;''' 35 margin: 0 4px;'''
35 ); 36 );
36 37
37 static Style _titleStyle = new Style(''' 38 static Style _titleStyle = new Style('''
38 flex: 1; 39 flex: 1;
39 margin: 0 4px;''' 40 margin: 0 4px;'''
40 ); 41 );
41 42
42 List<Stock> _sortedStocks; 43 List<Stock> _sortedStocks;
44 bool _isSearching = false;
43 45
44 StocksApp() : super() { 46 StocksApp() : super() {
45 _sortedStocks = oracle.stocks; 47 _sortedStocks = oracle.stocks;
46 _sortedStocks.sort((a, b) => a.symbol.compareTo(b.symbol)); 48 _sortedStocks.sort((a, b) => a.symbol.compareTo(b.symbol));
47 } 49 }
48 50
51 void _handleSearchClick(_) {
52 setState(() {
53 _isSearching = !_isSearching;
54 });
55 }
56
49 Node build() { 57 Node build() {
50 var drawer = new Drawer( 58 var drawer = new Drawer(
51 animation: _drawerAnimation, 59 animation: _drawerAnimation,
52 children: [ 60 children: [
53 new DrawerHeader( 61 new DrawerHeader(
54 children: [new Text('Stocks')] 62 children: [new Text('Stocks')]
55 ), 63 ),
56 new MenuItem( 64 new MenuItem(
57 key: 'Inbox', 65 key: 'Inbox',
58 icon: 'content/inbox', 66 icon: 'content/inbox',
(...skipping 12 matching lines...) Expand all
71 children: [new Text('Settings')] 79 children: [new Text('Settings')]
72 ), 80 ),
73 new MenuItem( 81 new MenuItem(
74 key: 'Help & Feedback', 82 key: 'Help & Feedback',
75 icon: 'action/help', 83 icon: 'action/help',
76 children: [new Text('Help & Feedback')] 84 children: [new Text('Help & Feedback')]
77 ) 85 )
78 ] 86 ]
79 ); 87 );
80 88
89 Node title = _isSearching ?
90 new Input(focused: true) : new Text('I am a stocks app');
91
81 var toolbar = new Toolbar( 92 var toolbar = new Toolbar(
82 children: [ 93 children: [
83 new Icon(key: 'menu', style: _iconStyle, 94 new Icon(key: 'menu', style: _iconStyle,
84 size: 24, 95 size: 24,
85 type: 'navigation/menu_white') 96 type: 'navigation/menu_white')
86 ..events.listen('click', _drawerAnimation.toggle), 97 ..events.listen('click', _drawerAnimation.toggle),
87 new Container( 98 new Container(
88 style: _titleStyle, 99 style: _titleStyle,
89 children: [new Text('I am a stocks app')] 100 children: [title]
90 ), 101 ),
91 new Icon(key: 'search', style: _iconStyle, 102 new Icon(key: 'search', style: _iconStyle,
92 size: 24, 103 size: 24,
93 type: 'action/search_white'), 104 type: 'action/search_white')
105 ..events.listen('click', _handleSearchClick),
94 new Icon(key: 'more_white', style: _iconStyle, 106 new Icon(key: 'more_white', style: _iconStyle,
95 size: 24, 107 size: 24,
96 type: 'navigation/more_vert_white') 108 type: 'navigation/more_vert_white')
97 ] 109 ]
98 ); 110 );
99 111
100 var fab = new FloatingActionButton(content: new Icon( 112 var fab = new FloatingActionButton(content: new Icon(
101 type: 'content/add_white', size: 24)); 113 type: 'content/add_white', size: 24));
102 114
103 return new Container( 115 return new Container(
104 key: 'StocksApp', 116 key: 'StocksApp',
105 children: [ 117 children: [
106 new Container( 118 new Container(
107 key: 'Content', 119 key: 'Content',
108 style: _style, 120 style: _style,
109 children: [toolbar, new Stocklist(stocks: _sortedStocks)] 121 children: [toolbar, new Stocklist(stocks: _sortedStocks)]
110 ), 122 ),
111 fab, 123 fab,
112 drawer, 124 drawer,
113 ] 125 ]
114 ); 126 );
115 } 127 }
116 } 128 }
OLDNEW
« no previous file with comments | « sky/examples/stocks-fn/stocks.sky ('k') | sky/framework/components/input.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698