Class SuperBigDecimalField

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<com.vaadin.flow.component.customfield.CustomField<T>,T>
com.vaadin.flow.component.customfield.CustomField<T>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<BigDecimal>>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<BigDecimal>>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<BigDecimal>>, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasHelper, com.vaadin.flow.component.HasLabel, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasTheme, com.vaadin.flow.component.HasValidation, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<BigDecimal>,BigDecimal>,BigDecimal>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<BigDecimal>,BigDecimal>,BigDecimal>, com.vaadin.flow.component.shared.HasClearButton, com.vaadin.flow.component.shared.HasPrefix, com.vaadin.flow.component.shared.HasSuffix, com.vaadin.flow.component.shared.HasTooltip, com.vaadin.flow.component.shared.HasValidationProperties, com.vaadin.flow.data.value.HasValueChangeMode, Serializable, TextSelectionNotifier<SuperBigDecimalField>, CanReceiveSelectionEventsFromClient, CanSelectText, HasHelperPositionable, HasId, HasLabelPositionable, HasLocale, HasNullValueOptionallyAllowed<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<BigDecimal>,BigDecimal>,BigDecimal>, HasPlaceholder, HasRequired, HasTextInputMode, WithClearButtonMixin<SuperBigDecimalField>, WithHelperMixin<SuperBigDecimalField>, WithHelperPositionableMixin<SuperBigDecimalField>, WithIdMixin<SuperBigDecimalField>, WithLabelMixin<SuperBigDecimalField>, WithLabelPositionableMixin<SuperBigDecimalField>, WithLocaleMixin<SuperBigDecimalField>, WithNullValueOptionallyAllowedMixin<SuperBigDecimalField,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<BigDecimal>,BigDecimal>,BigDecimal>, WithPlaceholderMixin<SuperBigDecimalField>, WithReceivingSelectionEventsFromClientMixin<SuperBigDecimalField>, WithRequiredMixin<SuperBigDecimalField>, WithTextInputModeMixin<SuperBigDecimalField>, WithTooltipMixin<SuperBigDecimalField>, WithValueMixin<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<BigDecimal>,BigDecimal>,BigDecimal,SuperBigDecimalField>

@JsModule("./super-big-decimal-field.ts") @Tag("super-big-decimal-field") public class SuperBigDecimalField extends AbstractSuperFloatingPointField<BigDecimal,SuperBigDecimalField>
A field for BigDecimal values that are properly formatted. In addition it supports entering precise numbers through scientific notation. Note: the value entered through scientific notation will be formatted according to the settings and as such the displayed value may differ from the actual value.
Since:
2020-04-08
Author:
miki
See Also:
  • Constructor Details

    • SuperBigDecimalField

      public SuperBigDecimalField()
      Constructs the field with an empty label, BigDecimal.ZERO as default value and with default Locale.
    • SuperBigDecimalField

      public SuperBigDecimalField(Locale locale)
      Constructs the field with an empty label and BigDecimal.ZERO as default value.
      Parameters:
      locale - Locale to use for formatting.
    • SuperBigDecimalField

      public SuperBigDecimalField(Locale locale, int maxFractionDigits)
      Constructs the field with an empty label and BigDecimal.ZERO as default value.
      Parameters:
      locale - Locale to use for formatting.
      maxFractionDigits - Maximum number of fraction digits allowed (overwrites setting found in locale.
    • SuperBigDecimalField

      public SuperBigDecimalField(String label)
      Constructs the field with default Locale and BigDecimal.ZERO as default value.
      Parameters:
      label - Label accompanying the field.
    • SuperBigDecimalField

      public SuperBigDecimalField(String label, Locale locale)
      Constructs the field with BigDecimal.ZERO as the default value.
      Parameters:
      label - Label accompanying the field.
      locale - Locale to use for formatting.
    • SuperBigDecimalField

      public SuperBigDecimalField(BigDecimal defaultValue, String label)
      Constructs the field with given default value and label, and with default Locale.
      Parameters:
      defaultValue - Default value.
      label - Label that accompanies the field.
    • SuperBigDecimalField

      public SuperBigDecimalField(String label, Locale locale, int maxFractionDigits)
      Constructs the field with BigDecimal.ZERO as the default value..
      Parameters:
      label - Label accompanying the field.
      locale - Locale to use for formatting.
      maxFractionDigits - Maximum number of fraction digits allowed (overwrites setting found in locale.
    • SuperBigDecimalField

      public SuperBigDecimalField(BigDecimal defaultValue, String label, Locale locale, int maxFractionDigits)
      Constructs the field.
      Parameters:
      defaultValue - Default value.
      label - Label accompanying the field.
      locale - Locale to use for formatting.
      maxFractionDigits - Maximum number of fraction digits allowed (overwrites setting found in locale.
  • Method Details

    • setDecimalFormat

      public void setDecimalFormat(DecimalFormat format)
      Description copied from class: AbstractSuperNumberField
      Sets the format definition used to displaying the value. Note: subclasses may overwrite the data in the format to make sure it follows type-specific constraints. Also note: changes to the format object may result in unpredictable behaviour of this component.
      Overrides:
      setDecimalFormat in class AbstractSuperNumberField<BigDecimal,SuperBigDecimalField>
      Parameters:
      format - DecimalFormat to use. When null, NumberFormat.getNumberInstance() will be used.
    • buildAllowedCharPattern

      protected StringBuilder buildAllowedCharPattern(StringBuilder builder)
      Description copied from class: AbstractSuperNumberField
      Specifies the allowed characters and prevents invalid input.
      Overrides:
      buildAllowedCharPattern in class AbstractSuperNumberField<BigDecimal,SuperBigDecimalField>
      Parameters:
      builder - Builder to be used. Note that the builder passed to it already starts with [\d and ] is added at the end.
      Returns:
      The passed builder with added allowed characters.
    • buildRegularExpression

      protected StringBuilder buildRegularExpression(StringBuilder builder, DecimalFormat format)
      Description copied from class: AbstractSuperNumberField
      Builds regular expression that allows neat typing of the number already formatted. Overwrite with care.
      Overrides:
      buildRegularExpression in class AbstractSuperNumberField<BigDecimal,SuperBigDecimalField>
      Parameters:
      builder - Builder, initially empty.
      format - Information about the format.
      Returns:
      Builder with the regular expression.
    • isScientificNotationEnabled

      public final boolean isScientificNotationEnabled()
      Checks whether scientific notation input is supported (by default it is not).
      Returns:
      true when getExponentSeparator() is defined and getMaximumExponentDigits() is greater than zero, false otherwise.
    • parseRawValue

      protected BigDecimal parseRawValue(String rawValue, DecimalFormat format) throws ParseException
      Description copied from class: AbstractSuperNumberField
      Parses (somewhat) raw value from the text field into a proper typed value.
      Specified by:
      parseRawValue in class AbstractSuperNumberField<BigDecimal,SuperBigDecimalField>
      Parameters:
      rawValue - Value from text field.
      format - Format to use.
      Returns:
      Parsed value.
      Throws:
      ParseException - When parsing goes wrong.
    • updateFieldValue

      protected void updateFieldValue()
      Description copied from class: AbstractSuperNumberField
      This method is called when the field loses its focus. Do not overwrite it without a very good reason.
      Overrides:
      updateFieldValue in class AbstractSuperNumberField<BigDecimal,SuperBigDecimalField>
    • setMaximumExponentDigits

      public void setMaximumExponentDigits(int maximumExponentDigits)
      Sets maximum allowed digits in exponent. If this number is greater than zero, it enables scientific notation input.
      Parameters:
      maximumExponentDigits - Number of digits allowed in the exponent part of scientific notation.
      See Also:
    • getMaximumExponentDigits

      public int getMaximumExponentDigits()
      Returns the number of allowed digits in exponent.
      Returns:
      Number of digits. Values of zero or less indicate that scientific notation input is not enabled.
    • withMaximumExponentDigits

      public final SuperBigDecimalField withMaximumExponentDigits(int maximumExponentDigits)
      Chains setMaximumExponentDigits(int) and returns itself.
      Parameters:
      maximumExponentDigits - Number of digits allowed in the exponent part of scientific notation.
      Returns:
      This.
      See Also:
    • getMaximumSignificandIntegerDigits

      public int getMaximumSignificandIntegerDigits()
      Returns the maximum number of digits allowed in the integer part of the significand in the scientific notation.
      Returns:
      The number of digits. It will never be more than AbstractSuperNumberField.getMaximumIntegerDigits().
      See Also:
      • AbstractSuperNumberField.getMaximumIntegerDigits()
    • setMaximumSignificandIntegerDigits

      public void setMaximumSignificandIntegerDigits(int maximumSignificandIntegerDigits)
      Sets the number of digits allowed in the integer part of the significand in the scientific notation.
      Parameters:
      maximumSignificandIntegerDigits - The number of digits. The lesser value of this number and AbstractSuperNumberField.getMaximumIntegerDigits() will be used.
    • withMaximumSignificandIntegerDigits

      public final SuperBigDecimalField withMaximumSignificandIntegerDigits(int maximumSignificandIntegerDigits)
      Chains setMaximumSignificandIntegerDigits(int) and returns itself.
      Parameters:
      maximumSignificandIntegerDigits - The number of digits allowed in the integer part of the significand.
      Returns:
      This.
      See Also:
    • getMaximumSignificandFractionDigits

      public int getMaximumSignificandFractionDigits()
      Returns the maximum number of digits allowed in the fractional (decimal) part of the significand in the scientific notation.
      Returns:
      The number of digits. It will never be more than AbstractSuperNumberField.getMaximumFractionDigits().
      See Also:
      • AbstractSuperNumberField.getMaximumFractionDigits()
    • setMaximumSignificandFractionDigits

      public void setMaximumSignificandFractionDigits(int maximumSignificandFractionDigits)
      Sets the number of digits allowed in the fractional (decimal) part of the significand in the scientific notation.
      Parameters:
      maximumSignificandFractionDigits - The number of digits. The lesser value of this number and AbstractSuperNumberField.getMaximumFractionDigits() will be used.
    • withMaximumSignificandFractionDigits

      public final SuperBigDecimalField withMaximumSignificandFractionDigits(int maximumSignificandFractionDigits)
      Chains setMaximumSignificandFractionDigits(int) and returns itself.
      Parameters:
      maximumSignificandFractionDigits - The number of digits allowed in the fraction (decimal) part of the significand.
      Returns:
      This.
      See Also:
    • getExponentSeparator

      public char getExponentSeparator()
      Returns the current exponent separator in the scientific notation. Both cases (according to AbstractSuperNumberField.getLocale() of this character are supported.
      Returns:
      A character that serves as a separator in scientific notation.
    • setExponentSeparator

      public void setExponentSeparator(char exponentSeparator)
      Sets the exponent separator. Both cases (according to AbstractSuperNumberField.getLocale()) of the character will be supported.
      Parameters:
      exponentSeparator - A character to use. Setting this to 0 will disable scientific notation support.
      See Also:
    • withExponentSeparator

      public final SuperBigDecimalField withExponentSeparator(char exponentSeparator)
      Chains setExponentSeparator(char) and returns itself.
      Parameters:
      exponentSeparator - A character to use as exponent separator in scientific notation.
      Returns:
      This.
      See Also:
    • isNegativeExponentAllowed

      public boolean isNegativeExponentAllowed()
      Checks whether or not negative exponent is allowed when entering number in scientific notation.
      Returns:
      true (default) when the exponent part can be negative number, false otherwise.
    • setNegativeExponentAllowed

      public void setNegativeExponentAllowed(boolean negativeExponentAllowed)
      Allows or disallows the exponent in scientific notation to be negative.
      Parameters:
      negativeExponentAllowed - Whether or not the exponent can be negative.
    • withNegativeExponentAllowed

      public final SuperBigDecimalField withNegativeExponentAllowed(boolean negativeExponentAllowed)
      Chains setNegativeExponentAllowed(boolean) and returns itself.
      Parameters:
      negativeExponentAllowed - Whether or not the exponent can be negative.
      Returns:
      This.
      See Also: