And that is the part I want to see, from the template code which you
still haven't shared ;-). What I'm referring to is your .tml file where
you use this component.

Jan Vissers wrote:
> 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]
>
>
>   

-- 
http://thegodcode.net

Reply via email to