package com.revolsys.ui.html.fields; import java.math.BigDecimal; import com.revolsys.util.Property; public class BigDecimalField extends NumberField { private int scale; public BigDecimalField() { this(null, false); } public BigDecimalField(final String name, final boolean required) { super(name, 20, 50, null, required); } public BigDecimalField(final String name, final boolean required, final Object defaultValue) { super(name, 20, 50, defaultValue, required); } public BigDecimalField(final String name, final int scale, final boolean required) { super(name, 20, 50, null, required); this.scale = scale; } @Override public Number getNumber(final String value) { return new BigDecimal(value); } /** * @return Returns the scale. */ public final int getScale() { return this.scale; } public void setScale(final int scale) { this.scale = scale; } @Override public void setTextValue(final String value) { if (Property.hasValue(value)) { super.setTextValue(value); final BigDecimal numericValue = getValue(); if (numericValue.scale() > this.scale) { throw new IllegalArgumentException("Scale must be <= " + this.scale); } } else { setValue(null); } } }