[ 
https://issues.apache.org/jira/browse/WICKET-4408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502916#comment-13502916
 ] 

Chris Colman commented on WICKET-4408:
--------------------------------------

So does that mean I should be able to change the way my component resolver 
works to explicitly add the component rather than just return it and allow an 
auto add?

Example:

Component resolver:
if ( componentTag.getName().equals( "input" ) ){
markupContainer.add( new TextField( componentTag.getId() ), markupStream );
} 

Pre 1.5 we had to call autoAdd but 1.5 does the auto add for us if we simply 
returned the created component. I guess if we are performing the add explicitly 
then the component resolver should return null?
                
> Components resolved by an IComponentResolver fail to contribute to header via 
> renderHead
> ----------------------------------------------------------------------------------------
>
>                 Key: WICKET-4408
>                 URL: https://issues.apache.org/jira/browse/WICKET-4408
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.4
>         Environment: Happens on all FireFox  Chrome, IE
> Windows XP
>            Reporter: Chris Colman
>            Assignee: Igor Vaynberg
>              Labels: wicket
>
> If a component is resolved via an IComponentResolver implementation then its 
> overridden renderHead method never gets called.
> If the same component is added explicitly to its parent then its renderHead 
> method is called.
> This is critical for us because we have markup variations that may or may not 
> include certain panels. We thus leave the construction/adding of these panels 
> to our IComponentResolver implementation because we can't explicitly add them 
> because not all markup will require all panels.
> Class MyPanel extends Panel
> {
> /**
>  * Write out necessary header markup.
>  */
> @Override
> public void renderHead(IHeaderResponse response)
> {
>     StringBuffer sb = new StringBuffer();
>     
>     sb.append("<script src=\"/jquery.easing.1.3.min.js\"></script>");
>     sb.append("<script src=\"/trans-banner.min.js\"></script>");
>  
>     response.renderString(sb.toString());
> } 
> }
> We aren't using any markup inheritance at the panel level.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to