diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/com/vaadin/data/fieldgroup/BeanFieldGroup.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/server/src/com/vaadin/data/fieldgroup/BeanFieldGroup.java b/server/src/com/vaadin/data/fieldgroup/BeanFieldGroup.java index 7e44c26c9e..b0d03af8d6 100644 --- a/server/src/com/vaadin/data/fieldgroup/BeanFieldGroup.java +++ b/server/src/com/vaadin/data/fieldgroup/BeanFieldGroup.java @@ -110,8 +110,7 @@ public class BeanFieldGroup<T> extends FieldGroup { return (BeanItem<T>) super.getItemDataSource(); } - @Override - public void bind(Field field, Object propertyId) { + private void ensureNestedPropertyAdded(Object propertyId) { if (getItemDataSource() != null) { // The data source is set so the property must be found in the item. // If it is not we try to add it. @@ -123,11 +122,22 @@ public class BeanFieldGroup<T> extends FieldGroup { getItemDataSource().addNestedProperty((String) propertyId); } } + } + @Override + public void bind(Field field, Object propertyId) { + ensureNestedPropertyAdded(propertyId); super.bind(field, propertyId); } @Override + public Field<?> buildAndBind(String caption, Object propertyId) + throws BindException { + ensureNestedPropertyAdded(propertyId); + return super.buildAndBind(caption, propertyId); + } + + @Override protected void configureField(Field<?> field) { super.configureField(field); // Add Bean validators if there are annotations |