FieldGroup bound to inherited Layout

Hi,

I have been using repeatedly the FieldGroup bound to layout pattern and I think it is really cool. In order to make the bindings easier I mark the fields in the layout with the @PropertyId annotation and then buildAndBindMembers.

Everything is perfect but when I tried to follow this approach with a layout that it is inheriting from another one with the @PropertyId annotations. This is the case:

I have an abstract layout like:

public abstract class MyAbstractLayout extends HorizontalLayout {

    protected Mode mode;

    @PropertyId(value = "sessionDate")
    protected DateField sessionDate = new DateField("Session Date");
    @PropertyId(value = "duration")
    protected TextField duration = new TextField();
    @PropertyId(value = "kind")
...

and then an implementation:

public class MyLayout extends MyAbstractLayout {
...

I cannot bind the FieldGroup to MyLayout. What I mean is that the annotations are not recognized in the inheriting classes.

Am I doing something wrong?

Thank you

Snif, snif…

The problem might be that FieldGroup uses layoutClass.getDeclaredFields where it should also inspect the parent and its parent. Create a ticket at http://dev.vaadin.com.