Hi Warren,

The way I normally handle this situation is to create a javascript emitting behaviour that is attached to the container. This behaviour will emit the necessary javascript method to do what you need to do.

Then for each child component you can use an AttributeModifier to write their onclick callback to call the custom method being emitted by the container attached behavior.

All the logic can be handled in the implementation details of the custom method/Object that was emitted.

To get the "onclick" actions emitted before the rendering phase either include it within the container.onBeforeRender() method, to call the visitChildren method, or perhaps within your behavior override the AbstractBehavior.beforeRender(Component c) method.

I've written something like this for a table of check boxes where each column header is a radio button. Selecting column 2's radio button causes all of the check boxes in column 1 to become disabled and all the check boxes in column 2 to become enabled. In my case I made the behaviour aware of the components in each column and then during rendering the javascript it writes out an array of markup id's for each table column.

But if you don't have the child components in scope when adding the behavior to the container adding the child behaviors before rendering starts should let things work.

Regards,

Mike






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





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

Reply via email to