Re: ListEditor adding immutable object from another RequestFactory request.
Thanks Thomas,
Explicit edit()ing does seem good as then the developer is aware that there will be two versions of the "same" object. What was catching me out is that the mutable copy is not equal() to its original, so remove from the list didn't work if I used the wrong reference. My only niggle with this is that the Editor/RequestFactory framework sometimes does this for you so not a nice simple "always pass editable proxies for the Editor framework to use"...
This seems quite a nasty gotcha for ListEditor with RequestFactory? Presumably the complication is that ListEditor should not be coupled to RequestFactory usage.
Do you think it would be worth me raising a ticket for some javadoc comments at least? ListEditor have something like "NB If using with RequestFactory then item Editors may be passed references to mutable copies of items added to the List...."
btw Have I done something wrong trying to get this tiny patch through http://www.gwt-code-reviews.appspot.com/1636803/ ? I love GWT so it would be nice to help even if it is just fixing typos in the Javadoc.
Sam
On Saturday, January 5, 2013 11:29:45 AM UTC, Thomas Broyer wrote:
On Friday, January 4, 2013 5:40:59 PM UTC+1, salk31 wrote:I'm not sure of the contract with a ListEditor. If I fetch an object using a different RequestContext is it my responsibility to make it editable in the editors RequestContext before adding to the list?The problem I'm having is that if I don't then when adding to the ListEditor the method AbstractEditorDelegate$Chain<R,S>.attach(R, S) line: 83 will grab a mutable copy so the item editor will have a different instance to the one in the list... This seems bad. IIRC, if you pass an immutable proxy to the RequestFactoryEditorDriver, the ListEditor will be given a list of immutable proxies, and each "item editor" will then be given a mutable copy.So should I do listEditor.getList().add(requestContext.edit(newThing)) ? I always prefer explicitly edit()ing my proxies rather than let this responsibility to the editor driver, so I'd rather do it that way, but I don't think this is a must-do.
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/O73SvLw8peUJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home