// 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 StockRow extends Component { StockRow({ Stock stock }) : this.stock = stock, super(key: new Key(stock.symbol)); final Stock stock; static const double kHeight = 79.0; Widget build() { String lastSale = "\$${stock.lastSale.toStringAsFixed(2)}"; String changeInPrice = "${stock.percentChange.toStringAsFixed(2)}%"; if (stock.percentChange > 0) changeInPrice = "+" + changeInPrice; List<Widget> children = [ new Flexible( child: new Text(stock.symbol), flex: 2 ), new Flexible( child: new Text( lastSale, style: const TextStyle(textAlign: TextAlign.right) ) ), new Flexible( child: new Text( changeInPrice, style: Theme.of(this).text.caption.copyWith(textAlign: TextAlign.right) ) ) ]; // TODO(hansmuller): An explicit |height| shouldn't be needed return new Container( padding: const EdgeDims(16.0, 16.0, 20.0, 16.0), height: kHeight, decoration: new BoxDecoration( border: new Border( bottom: new BorderSide(color: Theme.of(this).dividerColor) ) ), child: new Row([ new Container( child: new StockArrow(percentChange: stock.percentChange), margin: const EdgeDims.only(right: 5.0) ), new Flexible( child: new Row( children, alignItems: FlexAlignItems.baseline, textBaseline: DefaultTextStyle.of(this).textBaseline ) ) ]) ); } }