This widget is going to replace the traditional <b:slider />
of BootsFaces. The old component is
a jQueryUI widget. This dependency, in turn, causes many incompatibilities, so we searched for a slider component that
doesn't use jQueryUI. The new <b:slider2 />
widget is based on
http://seiyria.com/bootstrap-slider/ which is available at an MIT license.
You can use the attributes min
, max
, orientation
and step
.
There are three modes available that you can choose from with the mode
attribute: basic, badge and edit.
In basic mode, only the slider and the label(if present) will be shown and the slider value will be hidden.
In badge mode, the default, the slider value will be shown in a badge. This is the default mode.
In edit mode, an editable input field showing the slider value will be shown; in this mode you can change the value by sliding or editing the value in the field.
By default, the slider is 210 pixels wide. You can use the span
attribute to control the width, in terms of Bootstrap's grid columns,
if you override this setting with a CSS rule:
You can use more than one slider to get input for complex values, like the time:
You can use the orientation
attribute to obtain a vertical slider.
If you specify orientation="vertical"
, the Label is rendered on top, then the value and the slider on the bottom.
If orientation="vertical-bottom"
is used, the slider is rendered on top, then the value and the Label on the bottom.
Until version 1.0.2 of BootsFaces, the style
and style-class
attributes applied only
the the optional badge.
Since 1.1.0, there are three separate pairs of options:
style
and style-class
apply to the entire slider.label-style
and label-style-class
apply to the optional label.badge-style
and badge-style-class
apply to the optional badge or to the optional input field.The Slider component has been developed so that it fits well both in forms and in Bootstrap Grid system.
This allows you to obtain complex input interfaces that adapt to all media screen sizes, taking advantage of the responsive features of the Grid system.
If you are targeting Mobile, it can be useful to have a bigger handle.
You can control the handle size adding the handleShape
attribute, using the md
or lg
values for a Medium sized handle and a Large sized handle respectively.
Note: the same applies to Vertical Sliders.
The default handle has a rounded shape.
If you prefer a square or triangle handle you can add the handleShape="square"
or handleShape="triangle"
attribute.
Note: the same applies to Vertical Sliders.
The attributes readonly
and disabled
can also be applied to sliders.
You can add a label by adding the attribute label
. The label is also used by the JSF messages. To give you maximum flexibility,
you can suppress automatic rendering of labels by adding renderLabel="false"
.
Required inputs fields and their labels both bear the CSS class bf-required
. By default, this adds an asterisk to the label.
If the field has a FacesMessage, one of the CSS classes bf-info
, bf-warning
,
bf-error
or bf-fatal
, depending on which error severity the message has.
The latter two classes color the label red.
If there's no message,
the field and its label bear the pseudo CSS class bf-no-message
and has-success
. The latter colors the label green by default.
bf-info
, bf-warning
,
bf-error
or bf-fatal
have been dropped in favor of the standard Bootstrap CSS classes has-success
,
has-warning
and has-error
. Plus, they are applied to the form-group
instead of the labels and input fields.
If your application depends on the old HTML code, activate the context parameter net.bootsfaces.legacy_error_classes
in the web.xml.
Another feature is the option to use float values to with the slider.
Just bind the slider value
to a float type property
and use a float value with the step
attribute.
Attribute | Default value | Description |
---|---|---|
auto-update autoUpdate (alternative writing) |
false | Setting this flag updates the widget on every AJAX request. |
badge-span badgeSpan (alternative writing) |
1 | The column span of the badge or input field (if it's shown). |
badge-style badgeStyle (alternative writing) |
(none) | Inline style of the badge or input field (if it's shown). |
badge-style-class badgeStyleClass (alternative writing) |
(none) | Style class of the badge or input field (if it's shown). |
binding | (none) | An EL expression referring to a server side UIComponent instance in a backing bean. |
disabled | false | If true, you can't move the slider, nor can you edit the number. |
focus | false | Focus the appropriate slider handle after a value change. |
formatter | (none) | Javascript function that returns the plain value to be displayed in the tooltip |
handle-shape handleShape (alternative writing) |
round | Handle shape. Accepts: 'round', 'square', 'triangle' or 'custom' |
id | (none) | Unique identifier of the component in a namingContainer. |
inline | false | Inline forms are more compact and put the label to the left hand side of the input field instead of putting it above the input field. Inline applies only to screens that are at least 768 pixels wide. |
label | (none) | Label for the widget field. |
label-style labelStyle (alternative writing) |
(none) | The CSS inline style of the label. |
label-style-class labelStyleClass (alternative writing) |
(none) | The CSS class of the label. |
labelled-by labelledBy (alternative writing) |
(none) | Labels for the slider handle's, Use array for multiple values in a range slider. |
max | 100 | The maximum value of the slider. (default 100) |
min | 0 | The maximum value of the slider. (default 0) |
mode | badge | Mode of the Slider Widget. There are three modes available : badge, edit and basic. In basic mode, only the slider and the label(if present) will be shown and the slider value will be hidden. In badge mode, the default, the slider value will be shown in a badge. In edit mode, an editable input field showing the slider value will be shown; in this mode you can change the value by sliding or editing the value in the field. |
natural_arrow_keys | false | The natural order is used for the arrow keys. Arrow up select the upper slider value for vertical sliders, arrow right the righter slider value for a horizontal slider - no matter if the slider was reversed or not. By default the arrow keys are oriented by arrow up/right to the higher slider value, arrow down/left to the lower slider value. |
orientation | horizontal | Set the orientation. Accepts 'vertical' or 'horizontal' |
precision | 0 | The number of digits shown after the decimal. Defaults to the number of digits after the decimal of step value. |
rendered | false | Boolean value to specify the rendering of the component, when set to false the component will not be rendered. |
reversed | false | Whether or not the slider should be reversed |
scale | linear | Set to 'logarithmic' to use a logarithmic scale. |
selection | before | Selection placement. Accepts: 'before', 'after' or 'none'. In case of a range slider, the selection will be placed between the handles. |
span | 12 | The column span of the slider. |
step | 1 | Increment step |
style | (none) | Inline style of the entire slider. |
style-class styleClass (alternative writing) |
(none) | Style class of the entire slider. |
tooltip-slider-position tooltipSliderPosition (alternative writing) |
(none) | Position of tooltip, relative to slider. Accepts 'top'/'bottom' for horizontal sliders and 'left'/'right' for vertically orientated sliders. Default positions are 'top' for horizontal and 'right' for vertical slider. |
tooltip-split tooltipSplit (alternative writing) |
false | If false show one tootip if true show two tooltips one for each handler. |
tooltip-visibility tooltipVisibility (alternative writing) |
show | Whether to show the tooltip on drag, hide the tooltip, or always show the tooltip. Accepts: 'show', 'hide', or 'always'. |
value | 5 | Initial position of the slider. |
widgetVar | (none) | Optional widget variable to access the slider2 widget in JavaScript code. |
required
is true, the pseudo CSS class bf-required
is added. Thus you can define your custom style for required fields.
FacesMessage
, the input field is bears one of the pseudo CSS classes
bf-info
, bf-warning
, bf-error
or bf-fatal
. If there are no messages,
the input field bears the pseudo CSS class bf-no-message
and has-success
. The latter colors the label green by default.
required
, if it's a mandatory field.
This class adds an asterisk to the label text. You can override the CSS class to remove the asterisk
or to replace it by something else.bf-info
, bf-warning
,
bf-error
or bf-fatal
, depending on which error message the input field has.
The latter two classes color the label red.bf-no-message
and has-success
. The latter colors the label green by default.