Package org.zkoss.zul.impl

## Class NumberInputElement

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.impl.InputElement
        - - org.zkoss.zul.impl.FormatInputElement
          - - org.zkoss.zul.impl.NumberInputElement

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Disable`, `Readonly`, `Scope`, `ComponentCtrl`, `Constrainted`
  Direct Known Subclasses:
    `Decimalbox`, `Doublebox`, `Doublespinner`, `Intbox`, `Longbox`, `Spinner`

      public abstract class NumberInputElement
      extends FormatInputElement

  A skeletal implementation for number-type input box.
  Author:
    tomyeh
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `HtmlBasedComponent.ExtraCtrl`

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### Field Summary

    - ### Fields inherited from class org.zkoss.zul.impl.InputElement

      `_cols, _value`

    - ### Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `_zclass`

    - ### Fields inherited from interface org.zkoss.zk.ui.Component

      `APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE`

    - ### Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

      `AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NumberInputElement()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected java.lang.String` | `formatNumber​(java.lang.Object value, java.lang.String defaultFormat)` | Formats a number (Integer, BigDecimal...) into a string.
    `protected java.lang.String` | `getDefaultFormat()` | Return a default format for the number input element when the locale is specified.
    `protected java.util.Locale` | `getDefaultLocale()` | Returns the default locale, either `getLocale()` or `Locales.getCurrent()` (never null).
    `java.util.Locale` | `getLocale()` | Returns the locale associated with this number input element, or null if `Locales.getCurrent()` is preferred.
    `PropertyAccess` | `getPropertyAccess​(java.lang.String prop)` | Returns the corresponding property access object from the given property name, if any.
    `int` | `getRoundingMode()` | Returns the rounding mode.
    `protected boolean` | `isLocaleFormat()` | Returns if the "locale:" in `FormatInputElement.getFormat()` is presented.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setLocale​(java.lang.String locale)` | Sets the locale used to identify the symbols of this number input element.
    `void` | `setLocale​(java.util.Locale locale)` | Sets the locale used to identify the symbols of this number input element.
    `void` | `setRoundingMode​(int mode)` | Sets the rounding mode.
    `void` | `setRoundingMode​(java.lang.String name)` | Sets the rounding mode by the name.
    `protected java.lang.Object[]` | `toNumberOnly​(java.lang.String val)` | Filters out non digit characters, such comma and whitespace, from the specified value.

    - ### Methods inherited from class org.zkoss.zul.impl.FormatInputElement

      `getFormat, getRealFormat, setFormat`

    - ### Methods inherited from class org.zkoss.zul.impl.InputElement

      `checkUserError, clearErrorMessage, clearErrorMessage, clone, coerceFromString, coerceToString, getCols, getConstraint, getConstraintString, getErrorboxIconSclass, getErrorboxSclass, getErrorMessage, getInputAttributes, getInstant, getMaxlength, getName, getPlaceholder, getRawText, getRawValue, getTargetValue, getText, getType, isChildable, isDisabled, isInplace, isInstant, isMultiline, isReadonly, isValid, marshall, onWrongValue, select, service, setCols, setConstraint, setConstraint, setDisabled, setErrorboxIconSclass, setErrorboxSclass, setErrorMessage, setInplace, setInputAttributes, setInputAttributes, setInsertedText, setInstant, setMaxlength, setName, setPlaceholder, setRawValue, setReadonly, setSelectedText, setSelectionRange, setText, setValueDirectly, showCustomError, unmarshall, validate`

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes`

    - ### Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly`

    - ### Methods inherited from class org.zkoss.zk.ui.AbstractComponent

      `addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### NumberInputElement

          public NumberInputElement()

  - ### Method Detail

    - #### setRoundingMode

          public void setRoundingMode​(int mode)

      Sets the rounding mode. Note: You cannot change the rounding mode unless you are using Java 6 or later.
      Parameters:
        `mode` - the rounding mode. Allowed value: `BigDecimal.ROUND_CEILING`, `BigDecimal.ROUND_DOWN`, `BigDecimal.ROUND_FLOOR`, `BigDecimal.ROUND_HALF_DOWN`, `BigDecimal.ROUND_HALF_UP`, `BigDecimal.ROUND_HALF_EVEN`, `BigDecimal.ROUND_UNNECESSARY` and `BigDecimal.ROUND_UP`
      Throws:
        `java.lang.UnsupportedOperationException` - if Java 5 or below

    - #### setRoundingMode

          public void setRoundingMode​(java.lang.String name)

      Sets the rounding mode by the name. Note: You cannot change the rounding mode unless you are using Java 6 or later.
      Parameters:
        `name` - the rounding mode's name. Allowed value:
        CEILING
          Rounding mode to round towards positive infinity.
        DOWN
          Rounding mode to round towards zero.
        FLOOR
          Rounding mode to round towards negative infinity.
        HALF_DOWN
          Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
        HALF_EVEN
          Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
        HALF_UP
          Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
        UNNECESSARY
          Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
        UP
          Rounding mode to round away from zero.
      Throws:
        `java.lang.UnsupportedOperationException` - if Java 5 or below
      See Also:
        `RoundingModes`

    - #### getRoundingMode

          public int getRoundingMode()

      Returns the rounding mode.

      Default: `BigDecimal.ROUND_HALF_EVEN`.

    - #### getLocale

          public java.util.Locale getLocale()

      Returns the locale associated with this number input element, or null if `Locales.getCurrent()` is preferred.
      Since:
        5.0.8

    - #### setLocale

          public void setLocale​(java.util.Locale locale)

      Sets the locale used to identify the symbols of this number input element.

      Default: null (i.e., `Locales.getCurrent()`, the current locale is assumed)

      If the format of `FormatInputElement.getFormat()` is null, the format is assumed from `getDefaultFormat()`. (since 5.0.9)

      Since:
        5.0.8

    - #### setLocale

          public void setLocale​(java.lang.String locale)

      Sets the locale used to identify the symbols of this number input element.

      Default: null (i.e., `Locales.getCurrent()`, the current locale is assumed)

      Since:
        5.0.8

    - #### isLocaleFormat

          protected boolean isLocaleFormat()

      Returns if the "locale:" in `FormatInputElement.getFormat()` is presented.
      Since:
        9.5.1

    - #### getDefaultLocale

          protected java.util.Locale getDefaultLocale()

      Returns the default locale, either `getLocale()` or `Locales.getCurrent()` (never null). It is useful when you wan to get a locale for this input.
      Since:
        5.0.10

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `HtmlBasedComponent`
      Renders the content of this component, excluding the enclosing tags and children.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `FormatInputElement`
      Throws:
        `java.io.IOException`

    - #### getDefaultFormat

          protected java.lang.String getDefaultFormat()

      Return a default format for the number input element when the locale is specified.

      Default: `##,##0.##`, you can overwrite this by specifying the following setting in zk.xml

          	<library-property>
          		<name>org.zkoss.zul.numberFormat</name>
          		<value>##,##0.##</value>
          	</library-property>

      Since:
        5.0.9
      See Also:
        `setLocale(Locale)`

    - #### formatNumber

          protected java.lang.String formatNumber​(java.lang.Object value,
                                                  java.lang.String defaultFormat)

      Formats a number (Integer, BigDecimal...) into a string. If null, an empty string is returned.

      A utility to assist the handling of numeric data.

      Parameters:
        `defaultFormat` - used if `FormatInputElement.getFormat()` returns null. If defaultFormat and `FormatInputElement.getFormat()` are both null, the system's default format is used.
      See Also:
        `toNumberOnly(java.lang.String)`

    - #### toNumberOnly

          protected java.lang.Object[] toNumberOnly​(java.lang.String val)

      Filters out non digit characters, such comma and whitespace, from the specified value. It is designed to let user enter data in more free style. They may or may not enter data in the specified format.
      Returns:
        a two element array. The first element is the string to parse with, say, Double.parseDouble. The second element is an integer to indicate how many digits the result shall be scaled. For example, if the second element is 2. Then, the result shall be divided with 10 ^ 2.
      See Also:
        `formatNumber(java.lang.Object, java.lang.String)`

    - #### getPropertyAccess

          public PropertyAccess getPropertyAccess​(java.lang.String prop)

      Description copied from interface: `ComponentCtrl`
      Returns the corresponding property access object from the given property name, if any.
      Specified by:
        `getPropertyAccess` in interface `ComponentCtrl`
      Overrides:
        `getPropertyAccess` in class `FormatInputElement`
      Parameters:
        `prop` - the name of the property
      Returns:
        null it means not to support for the property name.