In the snippet below if I change:
    public List<BreadcrumbBean> getBreadCrumbs()

and let it return a freshly created list. The loop construct works.
However via the @Parameter (passing it it) doesn't.

-J.


On Fri, 2008-04-18 at 16:27 +0200, Jan Vissers wrote:
> Here it is:
> 
> import java.util.List;
> 
> import org.apache.log4j.Logger;
> import org.apache.tapestry.annotations.Parameter;
> 
> import com.philips.lighting.guidecontrol.view.BreadcrumbBean;
> 
> /**
>  * The heading component holds the following pieces of Heading
> information.
>  * 
>  * <pre>
>  *    &lt;div id=&quot;heading&quot;&gt;
>  *      &lt;ul id=&quot;breadcrumbs&quot;&gt;
>  *           &lt;li
> id=&quot;prefix&quot;&gt;[ &amp;aposyou-are-here&amp;apos ]&gt;/li&gt;
>  *           { when loginPage }
>  *               &lt;li&gt;&amp;aposlogin-page&amp;apos&lt;/li&gt;
>  *           { when not loginPage }
>  *               { for all crumbs }
>  *                   { if crumb is last }
>  *                       &lt;li&gt;[ crumb text ]&lt;/li&gt;
>  *                   { if crumb is not last }
>  *                       &lt;li&gt;&lt;a href=&quot;[ crumb
> link ]&quot;&gt;[ crumb text ]&lt;/a&gt; &gt; &lt;/li&gt;
>  *      &lt;/ul&gt;
>  *    &lt;/div&gt;
>  * </pre>
>  * 
>  * @author Cumquat Information Technology
>  * 
>  */
> public class Heading {
>     private static final Logger logger =
> Logger.getLogger(Heading.class);
>     
>     @Parameter
>     private boolean loginPage = false;
> 
>     @Parameter
>     private List<BreadcrumbBean> breadCrumbs;
> 
>     private int index;
> 
>     private BreadcrumbBean crumb;
> 
>     public boolean isLoginPage() {
>         return loginPage;
>     }
> 
>     public List<BreadcrumbBean> getBreadCrumbs() {
>         return breadCrumbs;
>     }
> 
>     public void setBreadCrumbs(List<BreadcrumbBean> breadCrumbs) {
>         logger.debug("Setting breadcrumbs: "+breadCrumbs);
>         this.breadCrumbs = breadCrumbs;
>     }
> 
>     public int getIndex() {
>         return index;
>     }
> 
>     public void setIndex(int index) {
>         this.index = index;
>     }
> 
>     public BreadcrumbBean getCrumb() {
>         return crumb;
>     }
> 
>     public void setCrumb(BreadcrumbBean crumb) {
>         this.crumb = crumb;
>     }
> 
>     public boolean isLastCrumb() {
>         return (index == breadCrumbs.size() - 1);
>     }
>     
> }
> 
> On Fri, 2008-04-18 at 16:22 +0200, Chris Lewis wrote:
> > We still haven't seen your template code, where you declare this
> > component and pass it the model. I can't be sure but perhaps it will
> > shed some light...
> > 
> > Jan Vissers wrote:
> > > The problem is somehow related to the way my page and component are
> > > hooked up/working.
> > >
> > > For testing purposes I now create the Breadcrumb list in the component
> > > itself, simply returning a created list on the fly whenever
> > > getBreadCrumbs() is called. This works as expected!!!
> > >
> > > Strange thing is that via passing the 'model' to the component via a
> > > page binding the same thing doesn't work. This must be a bug?!
> > >
> > > -J.
> > >
> > > On Fri, 2008-04-18 at 15:59 +0200, Chris Lewis wrote:
> > >   
> > >> That looks good to me. I don't have an example I can look at with a
> > >> loop, but I do have one with a t:grid in which I reference a bean
> > >> property of a custom class. It's possible that the two are vastly
> > >> different, but I wouldn't think that.
> > >>
> > >> Jan Vissers wrote:
> > >>     
> > >>> On the component I have:
> > >>>
> > >>>     @Parameter
> > >>>     private List<BreadcrumbBean> breadCrumbs;
> > >>>
> > >>> This is passed in via the containg (base)page.
> > >>> And in the same component class I have:
> > >>>
> > >>>     private BreadcrumbBean crumb;
> > >>>
> > >>>     public BreadcrumbBean getCrumb() {
> > >>>         return crumb;
> > >>>     }
> > >>>
> > >>>     public void setCrumb(BreadcrumbBean crumb) {
> > >>>         this.crumb = crumb;
> > >>>     }
> > >>>
> > >>> This should be right, right?
> > >>>
> > >>> -J.
> > >>>
> > >>> On Fri, 2008-04-18 at 14:00 +0100, nicholas Krul wrote:
> > >>>   
> > >>>       
> > >>>> ? is your crumb property of type BreadCrumbBean, or is it type String?
> > >>>> should be same as breadCrumbs<?TYPE>
> > >>>>
> > >>>> On Fri, Apr 18, 2008 at 1:56 PM, Chris Lewis <[EMAIL PROTECTED]>
> > >>>> wrote:
> > >>>>
> > >>>>     
> > >>>>         
> > >>>>> I can't speak about your t:if bit because I don't know what 
> > >>>>> "LastCrumb"
> > >>>>> would be, but assuming that your page class has getters/setters (or 
> > >>>>> the
> > >>>>> property is annotated with @Property) for the "crumb" property, a 
> > >>>>> getter
> > >>>>> for your "breadCrumbs," and your crumb bean defines a "getName" 
> > >>>>> method,
> > >>>>> you *should* be good.
> > >>>>>
> > >>>>> It would be helpful if you can include the exception, specifically the
> > >>>>> line it references, etc.
> > >>>>>
> > >>>>> chris
> > >>>>>
> > >>>>> PS the list is good, the IRC channel (irc.freenode.net #tapestry) is
> > >>>>> better ;-)
> > >>>>>
> > >>>>> Jan Vissers wrote:
> > >>>>>       
> > >>>>>           
> > >>>>>> Yep, sure, I may I add - This mailing list is great and Tapestry 
> > >>>>>> rocks!
> > >>>>>>
> > >>>>>>  <t:loop source="breadCrumbs" value="crumb" index="index">
> > >>>>>>     <t:if test="LastCrumb">
> > >>>>>>        ${crumb.name}
> > >>>>>>        <t:parameter name="else">
> > >>>>>>            <a href="#"
> > >>>>>> t:type="pageLink" ....>${crumb.name}</a>
> > >>>>>>               >
> > >>>>>>        </t:parameter>
> > >>>>>>     </t:if>
> > >>>>>> </t:loop>
> > >>>>>>
> > >>>>>> -J.
> > >>>>>>
> > >>>>>> On Fri, 2008-04-18 at 14:34 +0200, Chris Lewis wrote:
> > >>>>>>
> > >>>>>>         
> > >>>>>>             
> > >>>>>>> Can you share some code? At least the relevant part from template 
> > >>>>>>> would
> > >>>>>>> be helpful.
> > >>>>>>>
> > >>>>>>> chris
> > >>>>>>>
> > >>>>>>> Jan Vissers wrote:
> > >>>>>>>
> > >>>>>>>           
> > >>>>>>>               
> > >>>>>>>> Hi,
> > >>>>>>>>
> > >>>>>>>> Just to make sure I'm not missing something.
> > >>>>>>>>
> > >>>>>>>> In T4 when I wrote a @For construct I could use value="..." as 
> > >>>>>>>> long as
> > >>>>>>>>             
> > >>>>>>>>                 
> > >>>>> I
> > >>>>>       
> > >>>>>           
> > >>>>>>>> provided a setter|getter pair for the class involved - in this case
> > >>>>>>>> BreadcrumbBean. I want to iterate over a list of beans and use each
> > >>>>>>>> instance individually. Now T5 throws up on me with this nice 
> > >>>>>>>> coercion
> > >>>>>>>> message. Does this mean I need to contribute my own coercion - or 
> > >>>>>>>> is
> > >>>>>>>> there a more simple way? In my case BreadcrumbBean is a simple 
> > >>>>>>>> class
> > >>>>>>>> holding three String members.
> > >>>>>>>>
> > >>>>>>>> Thanks (again :-))
> > >>>>>>>> -J.
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> ---------------------------------------------------------------------
> > >>>>>>>> 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]
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>         
> > >>>>>>             
> > >>>>> --
> > >>>>> http://thegodcode.net
> > >>>>>
> > >>>>>
> > >>>>>       
> > >>>>>           
> > >>> ---------------------------------------------------------------------
> > >>> 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]

Reply via email to