What happens if you run a debugger and debug line-by-line? Put a breakpoint somewhere where the null value appears from. It looks like something else than a wicket bug.
** Martin 2009/2/12 pieter claassen <[email protected]>: > The value "first" is a field on a template, that is retrieved as one > template from the list of all templates, from a db4o database using a DAO > class. > > List<Template> templates = getTemplateFactory().getAll(); > > So, this list is *always* retrieved correctly. Each of the templates are > correctly backed by a database object and I can retrieve any field on any > one of them. > Each one of the template objects are wrapped in a thin wrapper where they > are converted from a "heavy" object (Template) to a thin webmodel > (TemplateWebModel) > > List templatewebmodels = ModelConverter.getModelList(templates, > TemplateWebModel.class) > > In the listview block, I set the model for each list iteration: > > final TemplateWebModel templatewebmodel = (TemplateWebModel) > item.getModelObject(); > item.setModel(new CompoundPropertyModel(templatewebmodel)); > > and when I want to access the database object, I use: > > getModelObject().getEntity() > > This approach works both in the listview block of code, but not in any > onClick() methods of Links that I include in the listview, just after I > started my application. The second time around, things work fine. > > Is this possibly a wicket problem? > > Rgrds, > Pieter > > > > On Thu, Feb 12, 2009 at 3:06 PM, Martin Makundi < > [email protected]> wrote: > >> Where do you set the value "first"? >> >> ** >> Martin >> >> 2009/2/12 pieter claassen <[email protected]>: >> > Listviews with Links in them, sometimes fail to retrieve the object in >> the >> > onClick() method the first time around. When I reload the page, the code >> > works fine. >> > >> > Here is a test. In the listview below, I load the page and in the >> listview >> > loop code, I correctly retrieve the item. Note that in the onClick() the >> > modelobject is null. >> > >> > TEMPLATE NAME IN listview: first >> > TEMPLATE NAME IN onClick(): null >> > >> > Reloading the page, and the problem goes away. >> > >> > TEMPLATE NAME IN listview: first >> > TEMPLATE NAME IN onClick(): first >> > >> > >> > This is using wicket 1.3.5. and db4o 7.8. This problem is normally there >> > when I restart my application. >> > >> > Any ideas? >> > >> > Example code: >> > >> > ListView templateList = new ListView("listview", ModelConverter >> > .getModelList(templates, TemplateWebModel.class)) { >> > @Override >> > protected void populateItem(ListItem item) { >> > final TemplateWebModel templatewebmodel = >> (TemplateWebModel) >> > item >> > .getModelObject(); >> > System.out.println("TEMPLATE NAME IN listview: " >> > + templatewebmodel.getEntity().getName()); >> > >> > item.setModel(new >> CompoundPropertyModel(templatewebmodel)); >> > ... >> > item.add(new Link("edit") { >> > @Override >> > public void onClick() { >> > System.out.println("TEMPLATE NAME IN onClick(): " >> > + templatewebmodel.getEntity().getName()); >> > setResponsePage(new >> > TemplateEditPage(templatewebmodel)); >> > } >> > }); >> > ... >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
