diff options
author | Artur <artur@vaadin.com> | 2017-02-22 12:29:03 +0200 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-02-22 12:29:03 +0200 |
commit | 1718666cd6a0aac7273e12d5bad459dea9fe997c (patch) | |
tree | 661c00ff327c055f89e05fc98f5bc92ccf60346b | |
parent | 04a20bf66646bc10f219966ad18af8b7bd995c77 (diff) | |
download | vaadin-framework-1718666cd6a0aac7273e12d5bad459dea9fe997c.tar.gz vaadin-framework-1718666cd6a0aac7273e12d5bad459dea9fe997c.zip |
Make it possible to use an extended ComboBox in declarative files (#8651)
3 files changed, 25 insertions, 2 deletions
diff --git a/server/src/main/java/com/vaadin/ui/declarative/DesignAttributeHandler.java b/server/src/main/java/com/vaadin/ui/declarative/DesignAttributeHandler.java index 57bfde47fb..f40ef59028 100644 --- a/server/src/main/java/com/vaadin/ui/declarative/DesignAttributeHandler.java +++ b/server/src/main/java/com/vaadin/ui/declarative/DesignAttributeHandler.java @@ -176,8 +176,9 @@ public class DesignAttributeHandler implements Serializable { .getPropertyDescriptors()) { Method getter = descriptor.getReadMethod(); Method setter = descriptor.getWriteMethod(); - if (getter != null && setter != null && getFormatter() - .canConvert(descriptor.getPropertyType())) { + Class<?> propertyType = descriptor.getPropertyType(); + if (getter != null && setter != null && propertyType != null + && getFormatter().canConvert(propertyType)) { String attribute = toAttributeName(descriptor.getName()); entry.addAttribute(attribute, getter, setter); } diff --git a/server/src/test/java/com/vaadin/tests/server/component/combobox/ComboBoxDeclarativeTest.java b/server/src/test/java/com/vaadin/tests/server/component/combobox/ComboBoxDeclarativeTest.java index e2a0c67f2a..ffb76f986e 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/combobox/ComboBoxDeclarativeTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/combobox/ComboBoxDeclarativeTest.java @@ -71,6 +71,20 @@ public class ComboBoxDeclarativeTest } @Test + public void extendedComboBox() { + ExtendedComboBox combo = new ExtendedComboBox(); + String design = "<html>" // + + "<head>" // + + "<meta name='package-mapping' content='com_vaadin_tests_server_component_combobox:com.vaadin.tests.server.component.combobox'>" + + "</meta>" + "</head>" + "<body>" + + "<com_vaadin_tests_server_component_combobox-extended-combo-box>" + + "</com_vaadin_tests_server_component_combobox-extended-combo-box>" + + "</body></html>"; + testWrite(design, combo); + testRead(design, combo); + } + + @Test public void optionStylesSerialization() throws InstantiationException, IllegalAccessException, InvocationTargetException { List<String> items = Arrays.asList("foo", "bar", "foobar"); diff --git a/server/src/test/java/com/vaadin/tests/server/component/combobox/ExtendedComboBox.java b/server/src/test/java/com/vaadin/tests/server/component/combobox/ExtendedComboBox.java new file mode 100644 index 0000000000..8fe3ba340c --- /dev/null +++ b/server/src/test/java/com/vaadin/tests/server/component/combobox/ExtendedComboBox.java @@ -0,0 +1,8 @@ +package com.vaadin.tests.server.component.combobox; + +import com.vaadin.tests.data.bean.Person; +import com.vaadin.ui.ComboBox; + +public class ExtendedComboBox extends ComboBox<Person> { + +} |