dragged handle control &slider; rich:inputNumberSlider HtmlInputNumberSlider

Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.inputNumberSlider
component-class | org.richfaces.component.html.HtmlInputNumberSlider
component-family | org.richfaces.inputNumberSlider
renderer-type | org.richfaces.InputNumberSliderRenderer
tag-class | org.richfaces.taglib.InputNumberSliderTag

## Creating the Component with a Page Tag

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

Example:

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

## Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlInputNumberSlider;
    ...
    HtmlInputNumberSlider mySlider = new HtmlInputNumberSlider();
    ...

## Details of Usage

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

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

Example:

    <rich:inputNumberSlider></rich:inputNumberSlider>

It's generated on a page:

Generated <rich:inputNumberSlider>

Using "showInput" (default is "true") and "enableManualInput" (default value is "true") attributes, it's possible to output the input area near the slider, and make it read-only or editable.

To remove input area use `showInput = "false"` :

Example:

    <rich:inputNumberSlider minValue="1"  maxValue="100" showInput="false"/>

It's displayed at a page like:

<rich:inputNumberSlider> without input field

It's also possible to switch off displaying of "boundary values" and a toolTip showing on a handle drawing. This could be performed with the help of the component defined attributes: "showBoundaryValues" which is responsible for "boundary values" displaying (default is true) and "showToolTip" which is responsible for tooltTip displaying (default is "true").

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 a 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"`.

The "showArrows" boolean attribute when set to "true" enables additional controls for increasing and decreasing slider value. The controls (arrows by default) are placed in the beginning and in the end of slider track:

<rich:inputNumberSlider> with additional controls

Clicking an arrow changes the driven value on the amount defined with "step" attribute. Keepeng an arrow control pressed changes the value continuous. Time that value takes to change from one step to another is definded with "delay" attribute.

## 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:inputNumberSlider> components at once:

- Redefine the corresponding skin parameters

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

## Skin Parameters Redefinition

Skin parameters redefinition for a bar

Skin parameters | CSS properties
--- | ---
controlBackgroundColor | background-color

Skin parameters redefinition for numbers

Skin parameters | CSS properties
--- | ---
generalFamilyFont | font-family
generalSizeFont | font-size
generalTextColor | color
panelBorderColor | border-color
generalSizeFont | line-height

Skin parameters redefinition for a text field

Skin parameters | CSS properties
--- | ---
controlBackgroundColor | background-color
generalFamilyFont | font-family
generalSizeFont | font-size
controlTextColor | color
panelBorderColor | border-color
subBorderColor | border-bottom-color
subBorderColor | border-right-color

Skin parameters redefinition for a hint

Skin parameters | CSS properties
--- | ---
tipBackgroundColor | background-color
tipBorderColor | border-color
generalFamilyFont | font-family
generalSizeFont | font-size

## Definition of Custom Style Classes

Style classes names that define styles for component elements are shown on the picture below:

Style classes

Classes names that define a component appearance

Class name | Description
--- | ---
rich-slider | Defines styles for a wrapper table element of a component
rich-inslider-track | Defines styles for a bar
rich-inslider-handler | Defines styles for a slider handler
rich-inslider-handler-selected | Defines styles for a selected handler
rich-inslider-field | Defines styles for a text field
rich-inslider-right-num | Defines styles for the right number
rich-inslider-left-num | Defines styles for the left number
rich-inslider-track-border | Defines styles for track border
rich-inslider-tip | Defines styles for a hint
inputNumberSlider-increase-vertical | Defines styles for the top arrow
inputNumberSlider-decrease-vertical | Defines styles for the bottom arrow
inputNumberSlider-increase-horizontal | Defines styles for the right arrow
inputNumberSlider-decrease-horizontal | Defines styles for the left arrow

In order to redefine styles for all <rich:inputNumberSlider> 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-inslider-tip{
        background-color: #FFDAB9;
        font-family: Arial Black;
    }
    ...

This is a result:

Redefinition styles with predefined classes

In the example a tip background color and font family was changed.

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

Example:

    ...
    .myClass{
        font-style: italic;
        font-weight:bold;
        font-size:12px;
    }
    ...

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

Example:

    <rich: inputNumberSlider ... 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 style for input text was changed.

## Relevant Resources Links

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