package de.onyxbits.tradetrax.components; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import de.onyxbits.tradetrax.services.MoneyRepresentation; import de.onyxbits.tradetrax.services.SettingsStore; /** * Convert a monetary value from database to user format and wrap it in a * loss/profit CSS container before printing it. * * @author patrick * */ public class MoneyValue { /** * Monetary value in database format. */ @Parameter(required = true) private long amount; /** * Include the currency symbol when printing? */ @Parameter private boolean addSymbol = true; /** * Cut off decimals to get a fixed length fraction? */ @Parameter private boolean precise; @Property private String value; @Property private boolean loss; @Inject private SettingsStore settings; @Inject private MoneyRepresentation moneyRepresentation; protected void beginRender() { value = moneyRepresentation.databaseToUser(amount, precise, addSymbol); loss = amount < 0; } }