Read the models document on the wiki. It has helped many others. /shameless plug: chapter 4 of WIA also explains detachable models in detail.
Martijn On 4/30/08, Andrew Broderick <[EMAIL PROTECTED]> wrote: > Thanks. It does work, and the load() method only gets called once when the > view renders. However, I am still confused as to why it works. In other > words, why LoadableDetachableModel only gets called once, whereas > PropertyModel gets called multiple times on rendering the ListView. For > instance, the JavaDocs for this class say: " LoadableDetachableModel holds a > temporary, transient model object". If anything, it seems like that would get > called MORE than PropertyModel, not less, in case the "temporary, transient > model object" gets changed. Just struggling to really understand how models > work, because they seem so key to understanding Wicket. > > Thanks > > > > -----Original Message----- > From: Hoover, William [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 29, 2008 3:09 PM > To: [email protected] > Subject: RE: getter called multiple times on PropertyModel with ListView > > // It solves your problem because the call to load will be made each > time your view renders > final LoadableDetachableModel articlesLoadableModel = new > LoadableDetachableModel() { > private static final long serialVersionUID = 1L; > > /** > * [EMAIL PROTECTED] > */ > @Override > protected final Object load() { > return new PropertyModel(YourPage.this, "articles"); > } > }; > final ListView newsDetails = new ListView("newsDetails", > articlesLoadableModel){ > private static final long serialVersionUID = 1L; > > /** > * [EMAIL PROTECTED] > */ > @Override > protected final void populateItem(final ListItem item) { > ... > } > }; > add(newsDetails); > > -----Original Message----- > From: Andrew Broderick [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 29, 2008 2:19 PM > To: '[email protected]' > Subject: RE: getter called multiple times on PropertyModel with ListView > > Cannot instantiate LoadableDetachableModel directly .. it is abstract. > Besides, how does it help solve the problem? > > Thanks > > -----Original Message----- > From: Igor Vaynberg [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 29, 2008 12:49 PM > To: [email protected] > Subject: Re: getter called multiple times on PropertyModel with ListView > > ListView newsDetails = new ListView("newsDetails", new > LoadableDetachableModel(new PropertyModel(this, "articles"))) > > -igor > > On Tue, Apr 29, 2008 at 10:46 AM, Andrew Broderick > <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I have a page where I am using a PropertyModel to populate a > ListView, so it will change when the underlying contents change: > > > > ListView newsDetails = new ListView("newsDetails", new > PropertyModel(this, "articles")) > > { > > protected void populateItem(ListItem item) > > { > > > > final NewsDetails nd = (NewsDetails) > item.getModelObject(); > > item.add(new Label("articleDate", > nd.getArticleDate())); > > item.add(new Label("articleTime", > nd.getArticleTime())); > > item.add(new Label("newsShortDesc", > nd.getNewsShortDesc())); > > newsUrlLink.add(new Label("newsTitle", > nd.getNewsTitle())); > > item.add(newsUrlLink); > > } > > }; > > add(newsDetails); > > > > The page class, obviously, has a getter named getArticles(): > > > > > > public List<NewsDetails> getArticles() > > { > > .... > > } > > > > However, this seems to get called multiple times when the listview is > being populated, not just once at the beginning of each time the page is > displayer. Why is this happening? It results in many more hits to the > database than are necessary. > > > > Thanks, > > > > Andrew B > > > > _______________________________________________________ > > > > The information in this email or in any file attached hereto is > > intended only for the personal and confiden- tial use of the > > individual or entity to which it is addressed and may contain > > information that is propri- etary and confidential. If you are > > not the intended recipient of this message you are hereby notified > > that any review, dissemination, distribution or copying of this > > message is strictly prohibited. This communica- tion is for > > information purposes only and should not be regarded as an offer to > > sell or as a solicitation of an offer to buy any financial product. > > > Email trans- mission cannot be guaranteed to be secure or error- > > free. P6070214 > > > > --------------------------------------------------------------------- > 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] > > > > --------------------------------------------------------------------- > 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] > > -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.3 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.3 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
