From 85d27e67c7be51150a8d4113700474f7dd564753 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Thu, 5 Feb 2015 01:35:09 +0200 Subject: [PATCH] Declarative support for AbstractSelect (#15545) Change-Id: Ie66ee3f2b02ce7b6aa2edb66176bfbf5bdcd6c33 --- server/src/com/vaadin/ui/AbstractField.java | 1 + server/src/com/vaadin/ui/AbstractSelect.java | 43 ++- .../ui/declarative/DesignFormatter.java | 8 + .../converters/DesignObjectConverter.java | 60 ++++ .../tests/design/DeclarativeTestBaseBase.java | 12 +- .../vaadin/tests/design/all-components.html | 12 + .../AbstractSelectDeclarativeTest.java | 277 ++++++++++++++++++ 7 files changed, 409 insertions(+), 4 deletions(-) create mode 100644 server/src/com/vaadin/ui/declarative/converters/DesignObjectConverter.java create mode 100644 server/tests/src/com/vaadin/tests/server/component/abstractselect/AbstractSelectDeclarativeTest.java diff --git a/server/src/com/vaadin/ui/AbstractField.java b/server/src/com/vaadin/ui/AbstractField.java index 9b9c7efd86..5c02c9e5fb 100644 --- a/server/src/com/vaadin/ui/AbstractField.java +++ b/server/src/com/vaadin/ui/AbstractField.java @@ -1772,6 +1772,7 @@ public abstract class AbstractField extends AbstractComponent implements attributes.add("readonly"); // must be handled by subclasses attributes.add("value"); + attributes.add("converted-value"); return attributes; } diff --git a/server/src/com/vaadin/ui/AbstractSelect.java b/server/src/com/vaadin/ui/AbstractSelect.java index 423ebcb46a..06790ca78d 100644 --- a/server/src/com/vaadin/ui/AbstractSelect.java +++ b/server/src/com/vaadin/ui/AbstractSelect.java @@ -29,6 +29,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.jsoup.nodes.Element; + import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.data.Property; @@ -49,6 +51,9 @@ import com.vaadin.server.PaintTarget; import com.vaadin.server.Resource; import com.vaadin.shared.ui.combobox.FilteringMode; import com.vaadin.shared.ui.dd.VerticalDropLocation; +import com.vaadin.ui.declarative.DesignAttributeHandler; +import com.vaadin.ui.declarative.DesignContext; +import com.vaadin.ui.declarative.DesignException; /** *

@@ -2181,4 +2186,40 @@ public abstract class AbstractSelect extends AbstractField implements public String generateDescription(Component source, Object itemId, Object propertyId); } -} + + @Override + public void readDesign(Element design, DesignContext designContext) { + // handle default attributes + super.readDesign(design, designContext); + // handle children specifying selectable items (