| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| part of stocks; |
| |
| class StockSymbolViewer extends StatelessComponent { |
| StockSymbolViewer(this.stock); |
| |
| final Stock stock; |
| |
| Widget build(BuildContext context) { |
| String lastSale = "\$${stock.lastSale.toStringAsFixed(2)}"; |
| String changeInPrice = "${stock.percentChange.toStringAsFixed(2)}%"; |
| if (stock.percentChange > 0) |
| changeInPrice = "+" + changeInPrice; |
| TextStyle headings = Theme.of(context).text.body2; |
| return new Scaffold( |
| toolBar: new ToolBar( |
| left: new IconButton( |
| icon: 'navigation/arrow_back', |
| onPressed: () { |
| Navigator.of(context).pop(); |
| } |
| ), |
| center: new Text(stock.name) |
| ), |
| body: new Block(<Widget>[ |
| new Container( |
| margin: new EdgeDims.all(20.0), |
| child: new Card( |
| child: new Container( |
| padding: new EdgeDims.all(20.0), |
| child: new Column(<Widget>[ |
| new Row(<Widget>[ |
| new Text( |
| '${stock.symbol}', |
| style: Theme.of(context).text.display2 |
| ), |
| new Hero( |
| tag: StockRowPartKind.arrow, |
| turns: 2, |
| child: new StockArrow(percentChange: stock.percentChange) |
| ), |
| ], |
| justifyContent: FlexJustifyContent.spaceBetween |
| ), |
| new Text('Last Sale', style: headings), |
| new Text('$lastSale ($changeInPrice)'), |
| new Container( |
| height: 8.0 |
| ), |
| new Text('Market Cap', style: headings), |
| new Text('${stock.marketCap}'), |
| ]) |
| ) |
| ) |
| ) |
| ] |
| ) |
| ); |
| } |
| |
| } |