From 1718666cd6a0aac7273e12d5bad459dea9fe997c Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 22 Feb 2017 12:29:03 +0200 Subject: Make it possible to use an extended ComboBox in declarative files (#8651) --- .../com/vaadin/ui/declarative/DesignAttributeHandler.java | 5 +++-- .../server/component/combobox/ComboBoxDeclarativeTest.java | 14 ++++++++++++++ .../tests/server/component/combobox/ExtendedComboBox.java | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 server/src/test/java/com/vaadin/tests/server/component/combobox/ExtendedComboBox.java (limited to 'server/src') 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 @@ -70,6 +70,20 @@ public class ComboBoxDeclarativeTest testWrite(design, comboBox); } + @Test + public void extendedComboBox() { + ExtendedComboBox combo = new ExtendedComboBox(); + String design = "" // + + "" // + + "" + + "" + "" + "" + + "" + + "" + + ""; + testWrite(design, combo); + testRead(design, combo); + } + @Test public void optionStylesSerialization() throws InstantiationException, IllegalAccessException, InvocationTargetException { 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 { + +} -- cgit v1.2.3