[
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