[ 
https://issues.apache.org/jira/browse/WICKET-627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alastair Maw updated WICKET-627:
--------------------------------

    Assignee:     (was: Alastair Maw)
     Summary: Can't visit components in a ListView before they're rendered.  
(was: onBeforeRenderChildren should be made protected)

I still can't work out how to do this. Igor suggested moving the call to 
Component#onBeforeRenderChildren() inside Component#onBeforeRender(), but if I 
do that, I get an NPE in the ListView#renderItem() method even for basic code.

> Can't visit components in a ListView before they're rendered.
> -------------------------------------------------------------
>
>                 Key: WICKET-627
>                 URL: https://issues.apache.org/jira/browse/WICKET-627
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 1.3.0-beta1
>            Reporter: Alastair Maw
>             Fix For: 1.3.0-beta3
>
>
> I've discussed this with Johan and we think we need to make 
> onBeforeRenderChildren() protected.
> <AlMaw> I have a ValidationTaggedForm extends Form.
> <AlMaw> And in onBeforeRender, I call visitChildren(validationTaggingVisitor)
> <AlMaw> And the validationTaggingVisitor adds a behaviour.
> <AlMaw> If I have a ListView in the Form, onBeforeRender for the Form is 
> called before the ListView populateItem calls.
> <AlMaw> Thus the components added in the ListView aren't visited.
> We can't just swap the order of the calls to onBeforeRender() and 
> onBeforeRenderChildren() in Component#beforeRender() because that will break 
> existing code and the repeaters. Besides, someone will only want to do things 
> the other way around at some later date (e.g. attach a behaviour to a parent 
> using a child then needs to reference/find).
> Suggested solution is to make onBeforeRenderChildren() protected, which will 
> allow as much flexibility as you like.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to