IMHO the easiest way is to override the isVisible method, e.g. newLabel("product-photo-date", CommonUtil.getFormattedDate(product.getPhoto().getDateTime())) { public boolean isVisible() { return product.getPhoto() != null; } }
-Matej Francisco Treacy wrote: > Hi wicketers, > > I would like to ask you what's the best way to perform the following: > Say I have Products. There are Products that have a Photo and there are > Products that don't. > > // Set data to the page > add(new Label("product-description", product.getDescription())); > > if (product.getPhoto() != null) { > add(new Label("product-photo-date", > CommonUtil.getFormattedDate(product.getPhoto().getDateTime()))); > add(new Label("product-photo-time", > CommonUtil.getFormattedTime(product.getPhoto().getDateTime()))); > } > > In my html i have > > <span wicket:id="product-description">[product-description]</span> > (eventually add something here) > <span wicket:id="product-photo-date">[product-photo-date]</span> > <span wicket:id="product-photo-time">[product-photo-time]</span> > (eventually add something here) > > And Wicket will complain if product.getPhoto() is null, of course, cause > product-photo-date and product-photo-time were never added to the page > component. > > I really don't see how to avoid this check, or how to solve this > elegantly. Perhaps missing something obvious, hope not :) > > And afaik the useComponentUseCheck setting at application level checks > the other way round (if elements declared in java Page are marked-up in > html code). Anyway, I have it set to false. > > Thanks in advance, and thanks as well for such a nice web framework, > > Francisco > > ------------------------------------------------------------------------ > Découvrez une nouvelle façon d'obtenir des réponses à toutes vos > questions ! Profitez des connaissances, des opinions et des expériences > des internautes sur Yahoo! Questions/Réponses > <http://fr.rd.yahoo.com/evt=42054/*http://fr.answers.yahoo.com>. > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > ------------------------------------------------------------------------ > > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user