Yup, two angles on the same stuff. It does not change the clone / initialize technique.

I guess I could put in a wiki tip on this?

James Carman wrote:
I don't typically use CompoundPropertyModel (we've discussed this
offline before) because it's too "magicy."  I find that explicitly
creating my models helps me keep track of what's going on better.  I
do use PropertyModels, though.  I just like to explicitly know the
"base" that I'm dealing with when I'm using property models.

On Tue, Nov 25, 2008 at 6:50 AM, Nino Saturnino Martinez Vazquez Wael
<[EMAIL PROTECTED]> wrote:
I guess not much if you do the initialize, but it has some issues with
collections (like you need to add to collections instead of setting them I
think). And you will end up doing initialize anyhow so using clone and a
simple compound property model are just as fine plus more simple..

James Carman wrote:
So, what's wrong with using "shadow" models and letting them
eventually write into the real model (which is a LDM) at the very end?

On Tue, Nov 25, 2008 at 2:25 AM, Nino Saturnino Martinez Vazquez Wael
<[EMAIL PROTECTED]> wrote:

Hi Guys

I've been having a little trouble with hibernate and a multipage wizard,
I
finally cracked the nut. And heres my solution:

In the link that refers to the wizard use a loadable detachable model..
Onclick you initialize all proper collections and CLONE the object, after
the wizard are done you merge the clone..

codesniplet:

             Link<Event> linkEdit = new Link<Event>("edit",
item.getModel()) {
                 @Override
                 public void onClick() {
                     LoadableDetachableEventModel model=new
LoadableDetachableEventModel(eventRepository,this.getModelObject());

Hibernate.initialize(((Event)model.getObject())
                             .getLinks());
                     Hibernate.initialize(((Event)model.getObject())
                             .getDateStart());
                     Hibernate.initialize(((Event)model.getObject())
                             .getDateEnd());
                     Hibernate.initialize(((Event)model.getObject())
                             .getTags());

                     Model<Event> eventModel = new Model<Event>(
                             (Event) SerializationHelper.clone((Event)
model.getObject()));
                     CompoundPropertyModel<Event> e = new
CompoundPropertyModel<Event>(
                             eventModel);
                     EventWizard newWizard = new EventWizard(eventWizard
                             .getId(), e) {
                         @Override
                         public void onFinish() {

eventRepository.update(eventModel.getObject());
                             eventWizard.setVisible(false);
                         }
                     };
                     newWizard.setVisible(true);
                     eventWizard.getPage().addOrReplace(newWizard);
                     eventWizard = newWizard;

                 }
             };


--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to