Seems weird to me as well that 'detach' has to be explicitly called. Also
still curious why Stephane was seeing the log ordering he did when the link
was clicked:

============
Loading all news
News deleted
============

I'd expect to see "news deleted" first, from his onClick handler then the
"loading all news" caused by the call to "load()" before the response was
sent -- in which case it seems he wouldn't have run into this issue in the
first place.

It's entirely possible I'm missing the wicket processing sequence here being
something else which would explain this.

On Tue, Jan 26, 2010 at 9:59 AM, Stéphane Jeanjean <
stephane.jeanj...@softeam.com> wrote:

>
> Thanks Pedro, it's ok now ;-)
>
> I use LoadableDetachableModel to avoid the call to detach() method. It does
> not seem that is the right way. Somebody can explain me why ?
>
> Stéphane
>
>
> Pedro Santos a écrit :
>
>  by calling getDefaultModel inside onClick, you get an reference to the
>> link
>> component model. You need to detach the model on your list view. You has
>> an
>> reference to it on your variable "news". So:
>> news.getDefaultModel().detach()
>> If you need, you can change that variable modifiers or turn it an instance
>> variable for have acess to it inside your onClick implementation.
>>
>> On Tue, Jan 26, 2010 at 2:01 PM, Stéphane Jeanjean <
>> stephane.jeanj...@softeam.com> wrote:
>>
>>
>>
>>> The behaviour is the same with the following code :(
>>>
>>>
>>>                  public void onClick() {
>>>                      // TODO : check the refresh issue
>>>                      getNewsDao().delete(item.getModelObject());
>>>                      ourLogger.debug("News deleted");
>>>                      getDefaultModel().detach();
>>>                                        }
>>>
>>>
>>> Pedro Santos a écrit :
>>>
>>>  missing line: call detach method just after delete your item.
>>>
>>>
>>>> On Tue, Jan 26, 2010 at 1:41 PM, Pedro Santos <pedros...@gmail.com>
>>>> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Call news.getDefaultModel().detach(), and look for more info about
>>>>> detachable models.
>>>>>
>>>>> http://cwiki.apache.org/WICKET/detachable-models.html
>>>>>
>>>>> On Tue, Jan 26, 2010 at 1:35 PM, Stéphane Jeanjean <
>>>>> stephane.jeanj...@softeam.com> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I don't use Hibernate. My persistence layer uses JDBC.
>>>>>>
>>>>>> What is strange when I click the delete link, it's the logs order :
>>>>>>
>>>>>> Loading all news
>>>>>> News deleted
>>>>>>
>>>>>> So it seems that the deletion is done after the data reload :(
>>>>>>
>>>>>> Stéphane
>>>>>>
>>>>>>
>>>>>> Riyad Kalla a écrit :
>>>>>>
>>>>>>  Stephane,
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> I'll let someone smarter than me address the wicket issue of removing
>>>>>>> the
>>>>>>> item from the ListView and seeing if that helps -- but is there a
>>>>>>> chance
>>>>>>> you
>>>>>>> are using Hibernate and the Level 2 ehcache plugin or any 2nd-level
>>>>>>> caching
>>>>>>> with your persistence code? I ask because I've seen code like this "I
>>>>>>> don't
>>>>>>> see my changes until the 2nd refresh!" a lot with folks using 2nd
>>>>>>> level
>>>>>>> caches and not seeing immediate persistence of those changes.
>>>>>>>
>>>>>>> On Tue, Jan 26, 2010 at 7:57 AM, Stéphane Jeanjean <
>>>>>>> stephane.jeanj...@softeam.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Please find my code just below :
>>>>>>>>
>>>>>>>>
>>>>>>>> public class NewsListPage  {
>>>>>>>>
>>>>>>>>  protected static transient NewsDao myNewsDao;
>>>>>>>>
>>>>>>>>  public NewsListPage() {
>>>>>>>>    PageableListView<News> news =
>>>>>>>>    new PageableListView<News>("list", new NewsModel(), 15){
>>>>>>>>
>>>>>>>>        @Override
>>>>>>>>        protected void populateItem(final ListItem<News> item) {
>>>>>>>>            ourLogger.debug("Getting item value
>>>>>>>> "+item.getModelObject().getTitle());
>>>>>>>>
>>>>>>>>            News news = item.getModelObject();
>>>>>>>>                          item.add(new Label("date", new
>>>>>>>> Model(news.getDate())));
>>>>>>>>                          Link<News> l = new Link<News>("edit"){
>>>>>>>>
>>>>>>>>                @Override
>>>>>>>>                public void onClick() {
>>>>>>>>                    setResponsePage(new
>>>>>>>> NewsPage(item.getModelObject()));
>>>>>>>>                                      }
>>>>>>>> };
>>>>>>>>
>>>>>>>>            item.add(l);
>>>>>>>>            l.add(new Label("title", news.getTitle()));
>>>>>>>>
>>>>>>>>            item.add(new Link<News>("delete", new Model()){
>>>>>>>>
>>>>>>>>                @Override
>>>>>>>>                public void onClick() {
>>>>>>>>                    // TODO : check the refresh issue
>>>>>>>>                    getNewsDao().delete(item.getModelObject());
>>>>>>>>                    ourLogger.debug("News deleted");
>>>>>>>>                                      }
>>>>>>>>                              });
>>>>>>>>                      }
>>>>>>>>
>>>>>>>>              };
>>>>>>>>
>>>>>>>>    add(news);
>>>>>>>>    add(new OrPagingNavigator("navigator", news));
>>>>>>>>          add(new BookmarkablePageLink<Void>("add", NewsPage.class));
>>>>>>>>
>>>>>>>>      }
>>>>>>>>
>>>>>>>>  /**
>>>>>>>>  * Model for the news List to load the news from the db each time
>>>>>>>>  *
>>>>>>>>  */
>>>>>>>>  public class NewsModel extends LoadableDetachableModel<List<News>>
>>>>>>>> {
>>>>>>>>
>>>>>>>>    @Override
>>>>>>>>    protected List<News> load() {
>>>>>>>>        ourLogger.debug("Loading all news");
>>>>>>>>        return new NewsDao().load();
>>>>>>>>    }
>>>>>>>>
>>>>>>>>
>>>>>>>>  }
>>>>>>>>  }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Jeremy Thomerson a écrit :
>>>>>>>>
>>>>>>>>  You're probably not using models correctly - specifically for your
>>>>>>>> list
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> view.  You could post some code, but make sure that you're
>>>>>>>>> reloading
>>>>>>>>> the
>>>>>>>>> data for the list view after the onClick is called and the item is
>>>>>>>>> deleted.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Jeremy Thomerson
>>>>>>>>> http://www.wickettraining.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Jan 26, 2010 at 8:37 AM, Stéphane Jeanjean <
>>>>>>>>> stephane.jeanj...@softeam.com> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> My page displays a list of items, for each of them, an icon is
>>>>>>>>>> available
>>>>>>>>>> to
>>>>>>>>>> delete it. The action is managed in a Link.onClick() method.
>>>>>>>>>> When I click on the link, the page is refreshed but the item is
>>>>>>>>>> always
>>>>>>>>>> in
>>>>>>>>>> my list, I have to do refresh again manually the page to have a
>>>>>>>>>> list
>>>>>>>>>> wihtout
>>>>>>>>>> this item.
>>>>>>>>>>
>>>>>>>>>> In the logs, it seems that the deletion in the onClick() method is
>>>>>>>>>> called
>>>>>>>>>> after the load of the page :(
>>>>>>>>>>
>>>>>>>>>> Somebody has an idea to avoid this manual refresh ?
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Stéphane
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> Pedro Henrique Oliveira dos Santos
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> 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