input field rich:inputNumberSpinner HtmlInputNumberSpinner

Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.inputNumberSpinner
component-class | org.richfaces.component.html.HtmlInputNumberSpinner
component-family | org.richfaces.inputNumberSpinner
renderer-type | org.richfaces.InputNumberSpinnerRenderer
tag-class | org.richfaces.taglib.InputNumberSpinnerTag

## Creating the Component with a Page Tag

To create the simplest variant on a page use the following syntax:

Example:

    ...
        <rich:inputNumberSpinner minValue="0" maxValue="100" step="1"/>
    ...

## Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlInputNumberSpinner;
    ...
    HtmlInputNumberSpinner mySpinner = new HtmlInputNumberSpinner ();
    ...

## Details of Usage

<rich:inputNumberSpinner> is used to facilitate your data input with rich UI Controls.

Here is the simplest variant of spinner definition with "minValue" , "maxValue" and "step" (on default is "1") attributes, which define the beginning and the end of numerical area and a spinner step.

Example:

    ...
        <rich:inputNumberSpinner minValue="1" maxValue="100"/>
    ...

It generates on a page:

Generated <rich:inputNumberSpinner>

There are also several attributes to define functionality peculiarities:

- "cycled" if the attribute is "true" after the current value reaches the border value it's be reversed to another border value after next increasing/decreasing. In other case possibilities of next increasing/decreasing are locked

- "disabled" is an attribute that defines whether a component is active on a page

- "enableManualInput" is an attribute that defines whether a keyboard input is possible or only UI controls could be used

Moreover, to add e.g. some JavaScript effects, events defined on it are used

- "onchange"

- "onmouseover"

- "onclick"

- "onfocus"

- "onmouseout"

- etc.

The "label" attribute is a generic attribute. The "label" attribute provides an association between a component, and the message that the component (indirectly) produced. This attribute defines the parameters of localized error and informational messages that occur as a result of conversion, validation, or other application actions during the request processing lifecycle. With the help of this attribute you can replace the last parameter substitution token shown in the messages. For example, {1} for `"DoubleRangeValidator.MAXIMUM"` , {2} for `"ShortConverter.SHORT"` .

## Look-and-Feel Customization

For skinnability implementation, the components use a style class redefinition method. Default style classes are mapped on skin parameters.

There are two ways to redefine the appearance of all <rich:inputNumberSpinner> components at once:

- Redefine the corresponding skin parameters

- Add to your style sheets style classes used by a <rich:inputNumberSpinner> component

## Skin Parameters Redefinition

Skin parameters redefinition for a container

Skin parameters | CSS properties
--- | ---
controlBackgroundColor | background-color
panelBorderColor | border-color
subBorderColor | border-bottom-color
subBorderColor | border-right-color

Skin parameters redefinition for an input field

Skin parameters | CSS properties
--- | ---
buttonSizeFont | font-size
buttonFamilyFont | font-family

## Definition of Custom Style Classes

On the screenshot there are classes names that define styles for component elements.

Style classes

Classes names that define a component appearance

Class name | Description
--- | ---
rich-spinner-c | Defines styles for a wrapper table element of a component
rich-spinner-input-container | Defines styles for a container
rich-spinner-input | Defines styles for a wrapper <td> element for input fields
rich-spinner-button | Defines styles for a button
rich-spinner-buttons | Defines styles for all buttons

In order to redefine styles for all <rich:inputNumberSpinner> components on a page using CSS, it's enough to create classes with the same names (possible classes could be found in the table above ) and define necessary properties in them. An example is placed below:

Example:

    ...
    .rich-spinner-input{
        font-style:italic;
    }
    ...

This is a result:

Redefinition styles with predefined classes

In the example an input text font style was changed.

Also it's possible to change styles of particular <rich:inputNumberSpinner> component. In this case you should create own style classes and use them in corresponding <rich:inputNumberSpinner> styleClass attributes. An example is placed below:

Example:

    ...
    .myClass{
        font-family: Arial Black;
    }
    ...

The "inputClass" attribute for <rich:inputNumberSpinner> is defined as it's shown in the example below:

Example:

    <rich: inputNumberSpinner ... inputClass="myClass"/>

This is a result:

Redefinition styles with own classes and styleClass attributes

As it could be seen on the picture above, the font family for input text was changed.

## Relevant Resources Links

On the component Live Demo page you can see the example of <rich:inputNumberSpinner> usage and sources for the given example.