Doesn't it have to load the model so that it knows what item it's talking to?
On Tue, Jan 26, 2010 at 2:12 PM, Riyad Kalla <rka...@gmail.com> wrote: > 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 >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org