Hello,
I recently discovered Vaadin, and I must admit it is a great framework. However, like in most Java web application frameworks, there is one widget that is missing for me: a property grid like in .NET (see
http://msdn.microsoft.com/en-us/library/aa302326.aspx
). Some frameworks offer a bean editor, but most of the time this is rather primitive.
So I decided to develop my own widget, and hopefully some day I can add it to the Directory for the community. The BeanItem has an extendproperty method that fits my needs, but I also need to drill down (to show the nested properties X levels deep). Vaadin 7 offers Nested properties, but this new functionality has a limitation (see below) that I cannot get around. So I opened a ticket 8 weeks ago and I included a patch, but until now nobody responded to it. Probably I did something wrong when registering the ticket, so hopefully someone can help me out reviewing it.
http://dev.vaadin.com/ticket/8457
To summarize the problem from the ticket: suppose I have following two classes:
public class ClassA {
private boolean fieldOfClassA;
}
public class ClassB extends ClassA {
private boolean fieldOfClassB;
}
These are used to type a field in another class:
public class ClassC {
private ClassA fieldOfClassC = new ClassB();
}
When I expand an instance of ClassC (after wrapping it in a BeanItem) in my property grid, I see following fields:
- fieldOfClassC
+----fieldOfClassA
However, I expected to see also the fields of the subclass B:
- fieldOfClassC
+----fieldOfClassA
+----fieldOfClassB
So the field of subclass B isn’t expanded, since Vaadin is looking at the type of the reference variable (which is ClassA), while it should look at the referenced value (which is ClassB ) if not null.
I have added a patch in my ticket, and it seems to work fine in my local Vaadin version. However, I might have forgotten something…
Thanks in advance for helping me out !
Bart Butenaers