... 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