OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 import 'package:sky/painting/text_style.dart'; | |
6 import 'package:sky/rendering/box.dart'; | |
7 import 'package:sky/widgets/ink_well.dart'; | |
8 import 'package:sky/widgets/basic.dart'; | |
9 import 'package:sky/widgets/theme.dart'; | |
10 | |
11 import 'stock_arrow.dart'; | |
12 import 'stock_data.dart'; | |
13 | |
14 class StockRow extends Component { | |
15 | |
16 StockRow({ Stock stock }) : this.stock = stock, super(key: stock.symbol); | |
17 | |
18 final Stock stock; | |
19 | |
20 static const double kHeight = 79.0; | |
21 | |
22 Widget build() { | |
23 String lastSale = "\$${stock.lastSale.toStringAsFixed(2)}"; | |
24 | |
25 String changeInPrice = "${stock.percentChange.toStringAsFixed(2)}%"; | |
26 if (stock.percentChange > 0) changeInPrice = "+" + changeInPrice; | |
27 | |
28 List<Widget> children = [ | |
29 new Container( | |
30 child: new StockArrow(percentChange: stock.percentChange), | |
31 margin: const EdgeDims.only(right: 5.0) | |
32 ), | |
33 new Flexible( | |
34 child: new Text(stock.symbol), | |
35 flex: 2 | |
36 ), | |
37 new Flexible( | |
38 child: new Text( | |
39 lastSale, | |
40 style: const TextStyle(textAlign: TextAlign.right) | |
41 ) | |
42 ), | |
43 new Flexible( | |
44 child: new Text( | |
45 changeInPrice, | |
46 style: Theme.of(this).text.caption.copyWith(textAlign: TextAlign.right
) | |
47 ) | |
48 ) | |
49 ]; | |
50 | |
51 // TODO(hansmuller): An explicit |height| shouldn't be needed | |
52 return new InkWell( | |
53 child: new Container( | |
54 padding: const EdgeDims(16.0, 16.0, 20.0, 16.0), | |
55 height: kHeight, | |
56 decoration: const BoxDecoration( | |
57 border: const Border( | |
58 bottom: const BorderSide(color: const Color(0xFFF4F4F4)))), | |
59 child: new Flex(children) | |
60 ) | |
61 ); | |
62 } | |
63 } | |
OLD | NEW |