Oops, you are right: I misread. I though you was recreating the listview,
sorry for he confusion!

Also, "reattach the listview's parent-container" simply means what you
already do by:
target.add(RecentlyViewedItemsPanel.this.get("itemContainer"));
(this is because it is not possible to reattach the listview directly but
you already knew that)

Well, as I said earlier, maybe is it a cookie/IO issue. I mean: the fact of
deleting and persisting changes in the cookie may be IO-asynchronous and
then the model is updated before changes are persisted...
I hope someone can help you on that subject...

Best regards,
Sebastien.

On Fri, Dec 7, 2012 at 12:28 AM, Corbin, James <jcor...@iqnavigator.com>wrote:

> Hi Sebastian,
>
> Thanks for your feedback.  I wasn't recreating (semantics?) the Listview,
> I was just refreshing it via ajax so it updates with the model changes.
> What do you mean by "reattach the listview's parent-container"?  Do you
> mean remove the listview and re-add it in the onbeforerender?
>
> J.D.
>
>
>
> On 12/6/12 4:16 PM, "Sebastien" <seb...@gmail.com> wrote:
>
> >Well, I think it is because this is the same listview that is redisplayed,
> >not the new one.
> >The cause is that you did not add the new listview to its parent.
> >
> >But, I would have done a little bit differently because:
> >1/ You do not have to recreate the listview in ajaxlink's onclick. just
> >clear cookies and reattach the listview's parent-container
> >2/ You do not have - generally speaking - to detach you model yourself
> >and,
> >moreover, it is not interesting to do it in the same request cycle. It
> >should be end at the end of the previous cycle. The use of a LDM does this
> >for you.
> >
> >So: just one ListView with a LDM, and it should be good.
> >If it's still not, maybe the persistence of the cookie update is a little
> >bit "slow" and IO-async... But I (means myself) could not help in a such
> >case.
> >
> >Best regards,
> >Sebastien.
> >
> >
> >On Thu, Dec 6, 2012 at 11:41 PM, Corbin, James
> ><jcor...@iqnavigator.com>wrote:
> >
> >> The ListView is not in a form, which is why I am leaving the default for
> >> setReuseItems to false.
> >> I am using a LoadableDetachableModel and verified the load that rereads
> >> the cookies, does in fact get called after I delete them (reset method
> >> call below).  If I break in the load of the detachable model, it is
> >> reading that there are still values for the cookies I deleted in the
> >> previous step.
> >>
> >> Basically, here is the body of my Ajax Link's onClick,
> >>
> >> RecentlyViewedItemsCollection c = new
> >> RecentlyViewedItemsCollection(util.getCurrentUser());
> >>                                 c.reset(); // this actually deletes all
> >> the cookies
> >>                                 getModel().detach(); // this forces the
> >> detachable model to call its
> >> load, which attempts to re-read specific cookies that should no longer
> >>                         exist
> >>
> >> target.add(RecentlyViewedItemsPanel.this.get("itemContainer")); //
> >> lastly, I refresh the parent (WebMarkupContainer) of the ListView
> >>
> >> I would have expected that when the model's load method is called that
> >>it
> >> would see that the cookies were removed, but it still finds them.
> >>
> >> J.D.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On 12/6/12 3:29 PM, "Sebastien" <seb...@gmail.com> wrote:
> >>
> >> >Hi,
> >> >
> >> >Be sure to use a LoadableDetachableModel
> >> >Also, maybe you set ListView#*setReuseItems* to true (because the
> >>ListView
> >> >is in a form)? You can set it to false if you have no validation and
> >>then
> >> >you will get fresh data (see ListView javadoc)
> >> >
> >> >Hope this helps,
> >> >Sebastien.
> >> >
> >> >On Thu, Dec 6, 2012 at 11:09 PM, Corbin, James
> >> ><jcor...@iqnavigator.com>wrote:
> >> >
> >> >> I have a ListView that renders items that are populated from user
> >>cookie
> >> >> data.  The ListView contains a "clear" action that is supposed to
> >>delete
> >> >> the cookies then refresh the ListView so it reflects that the cookie
> >> >>data
> >> >> was removed.  I have code that executes the deletion of the cookies
> >> >> (works), then I turn around and detach the ListView's model which
> >> >>triggers
> >> >> a rereading of the cookie data.  For some reason (probably works as
> >> >> designed), when the model is detach and reloads the cookies, they are
> >> >>still
> >> >> present.
> >> >> If I then force a page refresh, cookie data is in fact removed and
> >>the
> >> >> ListView is empty.
> >> >>
> >> >> Is there a way to attain this?  Am I missing something?  I really
> >>don't
> >> >> want to have to reload the page to see that the cookie data has been
> >> >> removed.
> >> >>
> >> >> J.D.
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to