... and if you're not building your component tree before you add such
an IBehaviour to the parent container you can instead override
onBeforeRender on that container to do something like:

                        @Override
                        public void onBeforeRender() {
                                super.onBeforeRender();
                                        visitChildren(new IVisitor<Component>(){
                                                @Override
                                                public Object 
component(Component component) {
                                                        component.add(new 
SimpleAttributeModifier("class","goodChild"));
                                                        return 
IVisitor.CONTINUE_TRAVERSAL;
                                                }
                                        });
                                }


Regards - Cemal
jWeekend
OO & Java Technologies, Wicket
Consulting, Development, Training
http://jWeekend.com

On 15 April 2010 21:17, Cemal Bayramoglu <jweekend_for...@cabouge.com> wrote:
> I assume you were trying this in beforeRender of your behaviour, which
> as you say is too late.
> If you really need to use a behaviour encapsulate all this, try
> something like the following, but some may feel its a little
> politically incorrect to do this in bind.
>        class MyBehaviour extends AbstractBehavior{
>               �...@override
>                public void bind(Component component) {
>                        if(!(component instanceof MarkupContainer)){
>                                throw new RuntimeException("contaıners only 
> please");
>                        }
>                        visitChildren(new IVisitor<Component>(){
>                               �...@override
>                                public Object component(Component component) {
>                                        component.add(new 
> SimpleAttributeModifier("class","goodChild"));
>                                        return IVisitor.CONTINUE_TRAVERSAL;
>                                }
>                        });
>                }
>        }
>
> Regards - Cemal
> jWeekend
> OO & Java Technologies, Wicket
> Consulting, Development, Training
> http://jWeekend.com
>
>
> On 15 April 2010 20:17, Warren Bell <warrenbe...@gmail.com> wrote:
>> I have that figured out, I just don't know how to add the attribute to each
>> component. I can't add a behavior, since "Cannot modify component hierarchy
>> after render phase has started (page version cant change then anymore)" Can
>> I even do this in a behavior?
>>
>> Cemal Bayramoglu wrote:
>>>
>>> Warren,
>>>
>>> See MarkupContainer#visitChildren
>>>
>>> Regards - Cemal
>>> jWeekend
>>> OO & Java Technologies, Wicket
>>> Consulting, Development, Training
>>> http://jWeekend.com
>>>
>>> On 15 April 2010 18:44, Warren Bell <warr...@clarksnutrition.com> wrote:
>>>
>>>>
>>>> Is there a way to add attributes to child components in a behavior that
>>>> is added to a page? I want to create a behavior that is added to a page
>>>> that adds some js to the header and then adds some js in an onfocus
>>>> attribute of each child form component on the page. I have the list of
>>>> child form components, but can't figure out how to add the attribute to
>>>> the components.
>>>>
>>>> Warren
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>
>>
>> --
>> Thanks,
>>
>> Warren Bell
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to