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

Igor Vaynberg updated WICKET-2238:
----------------------------------

    Fix Version/s: 1.5-M1

right, i thought that restriction might have been lifted under certain 
conditions, but i guess not.

i dont think we can easily do this because you can try to add a component to a 
parent that has already been rendered, what happens then? there is no guarantee 
about the render order, thus the restriction - because resolvers are used 
"just-in-time" during the rendering process.

this is something that was easily accommodated in the now dead 2.0 version, 
because there we had access to markup prior to render. we might try and 
implement something like that in 1.5 if we find a way.

some thoughts:

we can perform a cascading "attached" call to components as they are being 
added and we can resolve the markup. so container.add() can look something like 
this:

container.add(component child) {
  // do whatever it does currently 
  if (getpage()!=null) {
   // if we already have the page we can figure out this component's markup
   IMarkupFragment fragment=findMarkupFragmentForChild(child);
   child.attachToMarkup(fragment);
}

child.attachToMarkup() will have to cascade the call to all its children, this 
way all components will eventually receive the "attached" callback no matter 
what stage of the game they are being added to the page - during construction 
or even during render.

once this is in place the textfields can be added automatically, even rewriting 
the markup if needed (such as adding wicket:ids dynamically) once the attached 
callback is received.


> Keep auto-components after rendering
> ------------------------------------
>
>                 Key: WICKET-2238
>                 URL: https://issues.apache.org/jira/browse/WICKET-2238
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>            Reporter: Ricardo Mayerhofer
>            Priority: Minor
>             Fix For: 1.5-M1
>
>
> Auto-components are removed after rendering, so components added through 
> component resolvers that take user input don't work.
> The code is located in MarkupContainer.java:
> if (component.isAuto()) { children_remove(i); }
> Thanks for considering.

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