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

Jan Kriesten commented on WICKET-1560:
--------------------------------------

Just realized:

Maybe it doesn't has to do anything with transparent resolvers at all but only 
with nested repeaters and adding cells from the innermost.

> MarkupFragmentFinder fails on transparent resolvers within Repeaters
> --------------------------------------------------------------------
>
>                 Key: WICKET-1560
>                 URL: https://issues.apache.org/jira/browse/WICKET-1560
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.3
>         Environment: Any
>            Reporter: Jan Kriesten
>            Priority: Critical
>             Fix For: 1.3.4
>
>
> I extended the AjaxDataTable to be able to add Rows to certain states of the 
> rows. However, MarkupFragmentFinder fails to resolve the code under this 
> condition since it compares with the wrong components in this case:
> Markup:
> <wicket:container wicket:id="rows">
>   <tr wicket:id="row"><td wicket:id="cells"><span 
> wicket:id="cell">[cell]</span></td></tr>
>   <tr wicket:id="action-row" class="actionRow"></tr>
> </wicket:container>
> 'row' is the transparent resolver in this case to maintain the hierarchy 
> needed by the DataTable. MarkupFragmentFinder fails in the case of adding a 
> cell to an AjaxRequestTarget. 
> Fix:
> Everything works as expected, when MarkupFragmentFinder checks for the parent 
> being an AbstractRepeater and in the case compares the parent.id with the 
> supplied id (code provided by Gerolf):
> if (elem instanceof ComponentTag)
> {
>   ComponentTag tag = (ComponentTag)elem;
>   String id = tag.getId();
>   if ((id != null) && id.equals(component.getId()))
>   {
>     // Ok, found it
>     return markupStream;
>   }
>   else   
>   {   
>     Component parent = component.getParent();   
>     if (parent instanceof AbstractRepeater && id != null && 
> id.equals(parent.getId()))   
>     {   
>       return markupStream;   
>     }   
>   }
> }

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