Hi James,

thanks for your help.

I think "shadow" models could work, when I only access non-lazy fields.
Otherwise I would get a LazyInitializationException.

Or what do you exactly mean by "shadow" models?

- Benjamin

On Mon, Dec 8, 2008 at 1:32 PM, James Carman <[EMAIL PROTECTED]>wrote:

> Would "shadow" models help?
>
> On Mon, Dec 8, 2008 at 7:06 AM, Benjamin Ernst <[EMAIL PROTECTED]
> >wrote:
>
> > Hi everybody,
> >
> > I have a little Problem with LDMs:
> >
> > I have a page with a ListView and for each item in the ListView the user
> > can
> > open a modalWindow to edit the item.
> >
> > My Problem is, that I don't want to persist the item to the DB from the
> > modalWindow. Only after the User confirms the changes in the page with
> the
> > ListView, all these changes for all items from the ListView should be
> > persisted. Or the User presses "abort" and nothing is persisted.
> >
> > When I use LDMs changes that are made in the modalWindow are never shown
> in
> > the ListView, because the models are detached.
> >
> > I could use normal Models or the actual Objects for this, but then I
> might
> > run into lazy-initialization-problems.
> >
> > Has anybody a solution for this problem, or is this simply not possible
> in
> > this way?
> >
> > Thanks in advance,
> >
> > Benjamin
> >
> > -------------------------------------------------------------------
> >
> > My Code looks like this:
> >
> > ListView<Account> accountListView = new ListView<Account>("accountList",
> > accountList)
> >        {
> >            @Override
> >            protected void populateItem(ListItem<Account> item) {
> >                DetachableEntityModel<Account> account = new
> > DetachableEntityModel<Account>(item.getModelObject());
> >
> >                item.add(new Label("accountName", new
> > PropertyModel<String>(account, "name")));
> >                item.add(new Label("accountNumber", new
> > PropertyModel<String>(account, "number")));
> >
> >                item.add(new AjaxLink<Account>("edit", account)
> >                {
> >                    @Override
> >                    public void onClick(AjaxRequestTarget target) {
> >                        modalWindow.showPage(target, new
> > AccountEditPage(modalWindow, this.getModel()));
> >                    }
> >                });
> >            }
> >        };
> >        cont.add(accountListView);
> >
> >        AjaxLink save = new AjaxLink("saveAccounts")
> >        {
> >            @Override
> >            public void onClick(AjaxRequestTarget target) {
> >                User user = userModel.getObject();
> >                user.getAccounts().clear();
> >                user.getAccounts().addAll(accountList);
> >
> >                ServiceLocator.instance().getUserService().saveUser(user);
> >            }
> >        };
> >
>

Reply via email to