--- On Mon, 3/21/11, David Avendasora <[email protected]> wrote:
> From: David Avendasora <[email protected]> > Subject: Re: duplicating an EO > To: "Theodore Petrosky" <[email protected]> > Cc: "David LeBer" <[email protected]>, > [email protected] > Date: Monday, March 21, 2011, 6:26 AM > Hi Ted, > > The link for PWO at Apress' site is: http://apress.com/book/view/9781590592960 > > You can buy an eBook version of it there, which is spendy, > but worth it to always have it at your fingertips. Chuck > really wouldn't mind you buying it _3_ times... :-) > > There is also a link on that page to download the > sourcecode related to the book. In there, in one of the > chapters (I can't remember which one right now as I haven't > bought the eBook =:-0 ) you'll find the source code > for what you'd need in an EOCopyable interface and what > methods you should add to your custom sublcass of > EOGenericRecord. > > You do have a custom subclass of EOGenericRecord, right?! I am using Wonder and all my EOs extend ERXGenericRecord. So after reading the section in the PW book, I decided to get the job done by creating a new EO and copying the attributes. it works well. maybe not as beautifully as what is described in the book but it works. if (insertionQuant() > 1) { //NSLog.out.appendln("insertionQuant() > 1 "); int i; for (i = 0; i < insertionQuant() - 1; i++) { Grid copiedGrid = Grid.createGrid(theDupEC); copiedGrid.setBilling(newGridItem().billing()); copiedGrid.setCenter(newGridItem().center()); copiedGrid.setComments(newGridItem().comments()); copiedGrid.setDueDateType(newGridItem().dueDateType()); copiedGrid.setHeadLine(newGridItem().headLine()); copiedGrid.setImage(newGridItem().image()); copiedGrid.setInternalRelease(newGridItem().internalRelease()); copiedGrid.setInvoice(newGridItem().invoice()); copiedGrid.setIsADupe(true); try { theDupEC.saveChanges(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } theDupEC.reset(); } } > > Good luck. The book is key to understanding what the source > code is doing. Implementing Chuck's EOCopyable functionality > will probably take you marginally longer than just manually > doing the duplicating _this time_ but once you set it up, > it's available on all EOs and it is _very_ cool. > > I'm amazed that this hasn't made its way into WOnder yet... > well maybe people still need a reason to buy Chuck's book. I > mean, with all the other really excellent WO books out > there... > > Oh wait... > > Dave > > On Mar 20, 2011, at 6:24 PM, Theodore Petrosky wrote: > > > I have two copies of that book. I thought one at home > and one in the office. I guess I have to wait till tomorrow > at the office to read up. > > > > thanks > > > > Ted > > > > --- On Sun, 3/20/11, David LeBer <[email protected]> > wrote: > > > >> From: David LeBer <[email protected]> > >> Subject: Re: duplicating an EO > >> To: "Theodore Petrosky" <[email protected]> > >> Cc: [email protected] > >> Date: Sunday, March 20, 2011, 5:39 PM > >> > >> On 2011-03-20, at 4:59 PM, Theodore Petrosky > wrote: > >> > >>> I have a rather simple object. it has about > 15 > >> attributes. My users have informed me that they > need a way > >> to insert 25 duplicates of this object. Obviously > they go in > >> and change the due date (or some other attribute) > of the > >> duplicates. this is the only change. > >>> > >>> so i gave them a simple popup with the numbers > 1 to 25 > >> and they can choose how many of these things they > want. > >>> > >>> what would be the easiest and bestest way to > dup these > >> objects. I started thinking to create a loop that > iterates > >> the number of times that they want and insert a > new EO into > >> the EC and copy the attributes from my master > object. > >>> > >>> But maybe there is an easier way? > >>> > >>> I hope I am explaining it simply enough > >> > >> > >> Practical WebObjects has a great chapter on EO > copying. > >> > >> Unfortunately it is a subject that can eat an > entire > >> chapter. Duplicating only the attributes is easy, > you can > >> just ask the existing EO for it's entity, ask the > entity for > >> it's attributes, and then iterate through them > calling > >> setValueForKey on the new EO with valueForKey on > the > >> existing one. However when you get into > relationships things > >> become much more difficult to handle in a generic > way (i.e: > >> do you want to copy the destination EOs or just > the > >> relationships, do you want to copy the > relationships of the > >> destination EOs, etc). > >> > >> Anyway, the chapter in Chuck's book is well worth > the > >> read. > >> > >> ;david > >> > >> -- _______________________________________________ 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]
