On 2010-02-16, at 4:41 PM, Chuck Hill wrote:

> 
> On Feb 16, 2010, at 1:32 PM, David LeBer wrote:
> 
>> This is something I've run into multiple times, hacked something to work, 
>> and then thought there must be a better way.
>> 
>> The scenario:
>> ------------------
>> 
>> I have Studio <studio*----------movies>> Movie
>> 
>> If I create a new Studio, I will use a generic Studio edit form to set it's 
>> values, the form has a button that allows the user to add a new related 
>> Movie.
>> 
>> Here's the conundrum:
>> ------------------------------
>> 
>> - If I use the same EC for the Movie, and the user cancels in the Movie's 
>> Edit form, the EC will get reverted (bad).
>> - If I use a nested EC for the Movie, I cannot build a relationship between 
>> it and the Studio (because they are in different ecs), I cannot call local 
>> instance on the Studio because it hasn't been committed yet,
> 
> Does that not work?  I thought it did as the parent is the child's OSC so it 
> can get the object copied into it.

I thought for sure I tested that it didn't. But of course, after double 
checking, it does. Well, despite making me feel like an idiot, this is a good 
thing... thanks for that Chuck ;-) 

So this works:

Movie m = Movie.createMovie(ERXEC.newEditingContext(), "Test", null);
Studio s = Studio.createStudio(ERXEC.newEditingContext(m.editingContext()), new 
BigDecimal(100.00), "Test");

Movie localM = m.localInstanceIn(s.editingContext());
//EO from a parent EC into it's nested child via localInstance works.

s.addObjectToBothSidesOfRelationshipWithKey(localM, Studio.MOVIES_KEY);
s.editingContext().saveChanges();

m.editingContext().saveChanges();


> 
> 
> Chuck
> 
> 
>> and I cannot call local instance on the Movie until after it's ec has been 
>> saved, which will unfortunately throw a validation error (because it's 
>> Studio relationship is required in the model).
>> 
>> Things I've done in the past:
>> -------------------------------------
>> 
>> - Disable adding Movies to a Studio until the Studio has been committed 
>> (then local instance will work).
>> - Modify the model so that the  to-one relationship from Movie -> Studio is 
>> not mandatory, and hide the to-one edit widget in the Movie form for newly 
>> minted Movies, and then set the relationship between the two AFTER the Movie 
>> has been successfully saved and we are heading back to the Studio form.
>> 
>> When rolling my own edit forms, this not so much of an issue, but in D2W 
>> where everything is generic it bites, I hate having to write custom rules 
>> and modify the model to work around this.
>> 
>> Anyone have an magical solution that I am missing?

;david

--
David LeBer
Codeferous Software
'co-def-er-ous' adj. Literally 'code-bearing'
site:   http://codeferous.com
blog:   http://davidleber.net
profile:        http://www.linkedin.com/in/davidleber
twitter:        http://twitter.com/rebeld
--
Toronto Area Cocoa / WebObjects developers group:
http://tacow.org




 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to