aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/components/components-slider.asciidoc
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
committerelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
commita1b265c318dbda4a213cec930785b81e4c0f7d2b (patch)
treeb149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/components/components-slider.asciidoc
parentb9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff)
downloadvaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.tar.gz
vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.zip
Framework documentation IN
Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
Diffstat (limited to 'documentation/components/components-slider.asciidoc')
-rw-r--r--documentation/components/components-slider.asciidoc112
1 files changed, 112 insertions, 0 deletions
diff --git a/documentation/components/components-slider.asciidoc b/documentation/components/components-slider.asciidoc
new file mode 100644
index 0000000000..cc0198baa5
--- /dev/null
+++ b/documentation/components/components-slider.asciidoc
@@ -0,0 +1,112 @@
+---
+title: Slider
+order: 28
+layout: page
+---
+
+[[components.slider]]
+= [classname]#Slider#
+
+The [classname]#Slider# is a vertical or horizontal bar that allows setting a
+numeric value within a defined range by dragging a bar handle with the mouse.
+The value is shown when dragging the handle.
+
+[classname]#Slider# has a number of different constructors that take a
+combination of the caption, __minimum__ and __maximum__ value, __resolution__,
+and the __orientation__ of the slider.
+
+
+[source, java]
+----
+// Create a vertical slider
+final Slider vertslider = new Slider(1, 100);
+vertslider.setOrientation(SliderOrientation.VERTICAL);
+----
+
+__min__:: Minimum value of the slider range. The default is 0.0.
+
+__max__:: Maximum value of the slider range. The default is 100.0.
+
+__resolution__:: The number of digits after the decimal point. The default is 0.
+
+__orientation__:: The orientation can be either horizontal (
+[parameter]#SliderOrientation.HORIZONTAL#) or vertical (
+[parameter]#SliderOrientation.VERTICAL#). The default is horizontal.
+
+
+
+As the [classname]#Slider# is a field component, you can handle value changes
+with a [classname]#ValueChangeListener#. The value of the [classname]#Slider#
+field is a [classname]#Double# object.
+
+
+[source, java]
+----
+// Shows the value of the vertical slider
+final Label vertvalue = new Label();
+vertvalue.setSizeUndefined();
+
+// Handle changes in slider value.
+vertslider.addValueChangeListener(
+ new Property.ValueChangeListener() {
+ public void valueChange(ValueChangeEvent event) {
+ double value = (Double) vertslider.getValue();
+
+ // Use the value
+ box.setHeight((float) value, Sizeable.UNITS_PERCENTAGE);
+ vertvalue.setValue(String.valueOf(value));
+ }
+});
+
+// The slider has to be immediate to send the changes
+// immediately after the user drags the handle.
+vertslider.setImmediate(true);
+----
+
+You can set the value with the [methodname]#setValue()# method defined in
+[classname]#Slider# that takes the value as a native double value. The setter
+can throw a [classname]#ValueOutOfBoundsException#, which you must handle.
+
+
+[source, java]
+----
+// Set the initial value. This has to be set after the
+// listener is added if we want the listener to handle
+// also this value change.
+try {
+ vertslider.setValue(50.0);
+} catch (ValueOutOfBoundsException e) {
+}
+----
+
+Alternatively, you can use the regular [methodname]#setValue(Object)#, which
+does not do bounds checking.
+
+<<figure.components.slider.example1>> shows both vertical (from the code
+examples) and horizontal sliders that control the size of a box. The slider
+values are displayed also in separate labels.
+
+[[figure.components.slider.example1]]
+.The [classname]#Slider# Component
+image::img/slider-example1-hi.png[]
+
+== CSS Style Rules
+
+
+[source, css]
+----
+.v-slider {}
+.v-slider-base {}
+.v-slider-handle {}
+----
+
+The enclosing style for the [classname]#Slider# is [literal]#++v-slider++#. The
+slider bar has style [literal]#++v-slider-base++#. Even though the handle is
+higher (for horizontal slider) or wider (for vertical slider) than the bar, the
+handle element is nevertheless contained within the slider bar element. The
+appearance of the handle comes from a background image defined in the
+__background__ CSS property.
+
+
+
+