diff options
author | Johannes Dahlström <johannesd@vaadin.com> | 2015-03-18 15:42:48 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-03-24 13:39:37 +0000 |
commit | e3bf98708cb02e0772a46496ef8720657253e1ce (patch) | |
tree | c663ae7178c17253d02c40c987eb1cb23b4066fc /server/src/com/vaadin/ui/Slider.java | |
parent | f18a9642b7ad5831719b2c15c1b4adb788b386e8 (diff) | |
download | vaadin-framework-e3bf98708cb02e0772a46496ef8720657253e1ce.tar.gz vaadin-framework-e3bf98708cb02e0772a46496ef8720657253e1ce.zip |
Fix Declarative support for Slider (#17196)
Change-Id: I5cc390566af38115939416591a549f06e39d3153
Diffstat (limited to 'server/src/com/vaadin/ui/Slider.java')
-rw-r--r-- | server/src/com/vaadin/ui/Slider.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Slider.java b/server/src/com/vaadin/ui/Slider.java index 99e1e8d5e9..40a4047d53 100644 --- a/server/src/com/vaadin/ui/Slider.java +++ b/server/src/com/vaadin/ui/Slider.java @@ -16,9 +16,16 @@ package com.vaadin.ui; +import java.util.Collection; + +import org.jsoup.nodes.Attributes; +import org.jsoup.nodes.Element; + import com.vaadin.shared.ui.slider.SliderOrientation; import com.vaadin.shared.ui.slider.SliderServerRpc; import com.vaadin.shared.ui.slider.SliderState; +import com.vaadin.ui.declarative.DesignAttributeHandler; +import com.vaadin.ui.declarative.DesignContext; /** * A component for selecting a numerical value within a range. @@ -353,4 +360,35 @@ public class Slider extends AbstractField<Double> { // Slider is never really "empty" return false; } + + @Override + public void readDesign(Element design, DesignContext context) { + super.readDesign(design, context); + Attributes attr = design.attributes(); + if (attr.hasKey("vertical")) { + setOrientation(SliderOrientation.VERTICAL); + } + if (!attr.get("value").isEmpty()) { + setValue(DesignAttributeHandler.readAttribute("value", attr, + Double.class)); + } + } + + @Override + public void writeDesign(Element design, DesignContext context) { + super.writeDesign(design, context); + if (getOrientation() == SliderOrientation.VERTICAL) { + design.attr("vertical", ""); + } + Slider defaultSlider = context.getDefaultInstance(this); + DesignAttributeHandler.writeAttribute(this, "value", + design.attributes(), defaultSlider); + } + + @Override + protected Collection<String> getCustomAttributes() { + Collection<String> result = super.getCustomAttributes(); + result.add("orientation"); + return result; + } } |