... 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>>
>> --
>> Thanks,
>>
>> Warren Bell
>>
>>
>> ---------------------------------------------------------------------
>> 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]