Re: Dealing with subeditors and null proxy values

44 views
Skip to first unread message

Thomas Broyer

unread,
Nov 15, 2012, 3:47:56 AM11/15/12
to google-we...@googlegroups.com


On Thursday, November 15, 2012 8:20:05 AM UTC+1, Aleks wrote:
Hi all,

I've only recently started playing with GWT editors and have run into what I think is a simple problem but have not been able to find a solution to it.

Basically, I have the class Person/Address scenario, with a PersonEditor/PersonValueProxy and AddressEditor/AddressValueProxy. The AddressEditor is a subeditor within PersonProxy.

My issue is that when I load the editor, the PersonProxy is not null (I create it first), but the AddressProxy is null. Even if I add values in the address form, the AddressProxy remains null.

I would like to get at least one of the following two working:

1. What I would really like is to have an AddressProxy created IF the user has populated any address fields in the form.

2. If that is not possible, I would at least like an AddressProxy automatically created when I start the PersonEditor - or as a general rule I would like all sub-objects to be created once an editor for the parent container is created.

Now, I did manage to create an AddressProxy object and the PersonEditor seemed to recognize this (there were no more validation errors saying "address is null"), however it seems as if the AddressEditor knows nothing about this.
I say this because Address has validations such as "streetname cannot be null" and that error keeps appearing even if I do enter a street name in the form - so it seems that the proxy object is somehow detached from the AddressEditor?!


Note that I wouldn't like to have to create all possible proxies before I load the editor - I would much rather create them on demand, as new editors are loaded.

In case I didn't make much sense:

public class PersonEditor extends Composite implements  Editor<PersonProxy> {

@UiField
AddressEditor address;
....
}

public class AddressEditor extends Composite implements  Editor<AddressProxy> {
...

}


Is there a standard best practice for achieving this..Or forget best practice - something that works? :)

I remember having answered the exact same question some months ago, either here or on StackOverflow.

Things to look at (from memory): OptionalFieldEditor (possibly extend it to automatically create an AddressProxy in setValue when called with null); if you want the AddressProxy to be created only when fields are not null/empty, then create a class that implements AddressProxy, that you edit when the original value is 'null', and on flush() check whether it's empty or not and decide whether to create a "real" AddressProxy.
Reply all
Reply to author
Forward
0 new messages