package pl.touk.tola.gwt.client.utils; import com.google.gwt.i18n.client.NumberFormat; import java.math.BigDecimal; import static pl.touk.tola.gwt.client.utils.BigDecimalConverter.convertFromDouble; import static pl.touk.tola.gwt.client.utils.BigDecimalConverter.convertToDouble; public class DecimalsFormatter { public static final String DECIMAL_SEPARATOR = ","; public static final DecimalsFormatter DECIMAL_FORMATTER = new DecimalsFormatter(NumberFormat.getFormat("#,###,##0.0##")); public static final DecimalsFormatter PERCENT_FORMATTER = new DecimalsFormatter(NumberFormat.getFormat("#,###,##0.00##%")); private final NumberFormat format; public DecimalsFormatter(NumberFormat number_format) { format = number_format; } public String format(BigDecimal value) { if (value == null) { return null; } double valueAsDouble = convertToDouble(value); return format.format(valueAsDouble); } public BigDecimal parseToBigDecimal(String valueAsString) { if (valueAsString == null) { return null; } double valueAsDouble = format.parse(valueAsString); return convertFromDouble(valueAsDouble); } }