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

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

Issue 1011023003: Make stocks-fn match the style for the Sky SDK (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: more 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/examples/stocks/stocks.sky » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 library stocksapp;
2
3 import '../data/stocks.dart';
4 import 'dart:math';
5 import 'package:sky/framework/animation/scroll_behavior.dart';
6 import 'package:sky/framework/components/action_bar.dart';
7 import 'package:sky/framework/components/drawer.dart';
8 import 'package:sky/framework/components/drawer_header.dart';
9 import 'package:sky/framework/components/fixed_height_scrollable.dart';
10 import 'package:sky/framework/components/floating_action_button.dart';
11 import 'package:sky/framework/components/icon.dart';
12 import 'package:sky/framework/components/input.dart';
13 import 'package:sky/framework/components/material.dart';
14 import 'package:sky/framework/components/menu_divider.dart';
15 import 'package:sky/framework/components/menu_item.dart';
16 import 'package:sky/framework/fn.dart';
17 import 'package:sky/framework/theme/typography.dart' as typography;
18
19 part 'stockarrow.dart';
20 part 'stocklist.dart';
21 part 'stockrow.dart';
22
23 class StocksApp extends App {
24
25 DrawerAnimation _drawerAnimation = new DrawerAnimation();
26
27 static Style _style = new Style('''
28 display: flex;
29 flex-direction: column;
30 height: -webkit-fill-available;
31 ${typography.typeface};
32 ${typography.black.body1};'''
33 );
34
35 static Style _iconStyle = new Style('''
36 padding: 8px;'''
37 );
38
39 static Style _titleStyle = new Style('''
40 padding-left: 24px;
41 flex: 1;
42 ${typography.white.title};'''
43 );
44
45 List<Stock> _sortedStocks;
46 bool _isSearching = false;
47 String _searchQuery;
48
49 StocksApp() : super() {
50 _sortedStocks = oracle.stocks;
51 _sortedStocks.sort((a, b) => a.symbol.compareTo(b.symbol));
52 }
53
54 void _handleSearchClick(_) {
55 setState(() {
56 _isSearching = !_isSearching;
57 });
58 }
59
60 void _handleSearchQueryChanged(query) {
61 setState(() {
62 _searchQuery = query;
63 });
64 }
65
66 Node build() {
67 var drawer = new Drawer(
68 animation: _drawerAnimation,
69 level: 3,
70 children: [
71 new DrawerHeader(
72 children: [new Text('Stocks')]
73 ),
74 new MenuItem(
75 key: 'Inbox',
76 icon: 'content/inbox',
77 children: [new Text('Inbox')]
78 ),
79 new MenuDivider(
80 ),
81 new MenuItem(
82 key: 'Drafts',
83 icon: 'content/drafts',
84 children: [new Text('Drafts')]
85 ),
86 new MenuItem(
87 key: 'Settings',
88 icon: 'action/settings',
89 children: [new Text('Settings')]
90 ),
91 new MenuItem(
92 key: 'Help & Feedback',
93 icon: 'action/help',
94 children: [new Text('Help & Feedback')]
95 )
96 ]
97 );
98
99 Node title;
100 if (_isSearching) {
101 title = new Input(focused: true, placeholder: 'Search stocks',
102 onChanged: _handleSearchQueryChanged);
103 } else {
104 title = new Text('Stocks');
105 }
106
107 var toolbar = new ActionBar(
108 children: [
109 new Icon(key: 'menu', style: _iconStyle,
110 size: 24,
111 type: 'navigation/menu_white')
112 ..events.listen('gesturetap', _drawerAnimation.toggle),
113 new Container(
114 style: _titleStyle,
115 children: [title]
116 ),
117 new Icon(key: 'search', style: _iconStyle,
118 size: 24,
119 type: 'action/search_white')
120 ..events.listen('gesturetap', _handleSearchClick),
121 new Icon(key: 'more_white', style: _iconStyle,
122 size: 24,
123 type: 'navigation/more_vert_white')
124 ]
125 );
126
127 var list = new Stocklist(stocks: _sortedStocks, query: _searchQuery);
128
129 var fab = new FloatingActionButton(content: new Icon(
130 type: 'content/add_white', size: 24), level: 3);
131
132 return new Container(
133 key: 'StocksApp',
134 children: [
135 new Container(
136 key: 'Content',
137 style: _style,
138 children: [toolbar, list]
139 ),
140 fab,
141 drawer,
142 ]
143 );
144 }
145 }
OLDNEW
« no previous file with comments | « sky/examples/stocks-fn/stocks.sky ('k') | sky/examples/stocks/stocks.sky » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698