blob: c13b66f2c225371e42214a94cd0e8c27511769b9 [file] [log] [blame]
// 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.
import 'package:sky/painting/text_style.dart';
import 'package:sky/rendering/box.dart';
import 'package:sky/widgets/ink_well.dart';
import 'package:sky/widgets/basic.dart';
import 'package:sky/widgets/theme.dart';
import 'stock_arrow.dart';
import 'stock_data.dart';
class StockRow extends Component {
StockRow({ Stock stock }) : this.stock = stock, super(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 Container(
child: new StockArrow(percentChange: stock.percentChange),
margin: const EdgeDims.only(right: 5.0)
),
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 InkWell(
child: new Container(
padding: const EdgeDims(16.0, 16.0, 20.0, 16.0),
height: kHeight,
decoration: const BoxDecoration(
border: const Border(
bottom: const BorderSide(color: const Color(0xFFF4F4F4)))),
child: new Flex(children)
)
);
}
}