/* * Copyright (C) 2013 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.errai.samples.stockdemo.client.local; import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.Label; public class EquityRenderer { private FlexTable table; private int row; private String ticker; private Label tickerLabel = new Label(); private String companyName; private Label companyNameLabel = new Label(); private double openingPrice; private Label openingPriceLabel = new Label(); private double lastTrade; private Label lastTradeLabel = new Label(); private double volume; private Label volumeLabel = new Label(); private Label changeLabel = new Label(); private NumberFormat format = NumberFormat.getFormat("###,###.##"); private EquityRenderer(FlexTable table, int row, String ticker, String companyName, double openingPrice, double lastTrade, double volume) { this.table = table; this.row = row; setTicker(ticker); setCompanyName(companyName); setOpeningPrice(openingPrice); setLastTrade(lastTrade); setVolume(volume); renderOut(); } private void renderOut() { table.setWidget(row, 0, tickerLabel); table.setWidget(row, 1, companyNameLabel); table.setWidget(row, 2, volumeLabel); table.setWidget(row, 3, openingPriceLabel); table.setWidget(row, 4, lastTradeLabel); table.setWidget(row, 5, changeLabel); } public static EquityRenderer newEquity(FlexTable table, int row, String ticker) { return new EquityRenderer(table, row, ticker, null, 0, 0, 0); } public String getTicker() { return ticker; } public void setTicker(String ticker) { this.ticker = ticker; tickerLabel.setText(ticker); } public String getCompanyName() { return companyName; } public void setCompanyName(String companyName) { this.companyName = companyName; companyNameLabel.setText(companyName); } public double getOpeningPrice() { return openingPrice; } public void setOpeningPrice(double openingPrice) { this.openingPrice = openingPrice; openingPriceLabel.setText(format.format(openingPrice)); } public double getLastTrade() { return lastTrade; } public void setLastTrade(double lastTrade) { if (lastTrade < this.lastTrade) { lastTradeLabel.getElement().getStyle().setProperty("backgroundColor", "red"); } else if (lastTrade == this.lastTrade) { lastTradeLabel.getElement().getStyle().setProperty("backgroundColor", "transparent"); } else { lastTradeLabel.getElement().getStyle().setProperty("backgroundColor", "green"); } this.lastTrade = lastTrade; lastTradeLabel.setText(format.format(lastTrade)); double change = lastTrade - openingPrice; if (change >= 0) { changeLabel.getElement().getStyle().setProperty("color", "green"); } else { changeLabel.getElement().getStyle().setProperty("color", "red"); } changeLabel.setText(format.format(lastTrade - openingPrice)); } public double getVolume() { return volume; } public void setVolume(double volume) { this.volume = volume; volumeLabel.setText(format.format(volume)); } }