Hi James,

How does this work with a Hibernate-managed object? Did you test it with Hibernate?

Op 8 dec 2008, om 19:45 heeft James Carman het volgende geschreven:

Sorry for the delay. A shadow model basically grabs the actual model's value in the beginning and caches it. You actually edit the shadowed model. Then, when you're done with all of your edits you call "commit" on all of your shadow models to write back into the originals. So, I don't think you'll get a LazyInitializationException. I guess it depends on what you're
shadowing.  I've got an implementation I call ProxyModelManager in
Wicketopia and I hope to rename it to ShadowModelManager. I like shadow
much better.

On Mon, Dec 8, 2008 at 8:29 AM, Benjamin Ernst <[EMAIL PROTECTED] >wrote:

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);
          }
      };





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

Reply via email to