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

Igor Vaynberg commented on WICKET-2489:
---------------------------------------

there are a couple of reasons.

a) the map is an internal implementation detail of the request target, it just 
so happens that it matches your usecase.
b) we have already introduced getcomponents() and cannot remove it in 1.4.x, i 
would hate to have two ways to do the same thing because it adds noise to the 
api.

> need to know if a component has been added to the AjaxRequestTarget
> -------------------------------------------------------------------
>
>                 Key: WICKET-2489
>                 URL: https://issues.apache.org/jira/browse/WICKET-2489
>             Project: Wicket
>          Issue Type: Wish
>          Components: wicket
>    Affects Versions: 1.4.1
>            Reporter: Joe Hudson
>            Assignee: Igor Vaynberg
>             Fix For: 1.4.2, 1.5-M1
>
>
> We need to evaluate the AjaxRequestTarget to determine if a component has 
> been directly added (as opposed to the component rendering because of a 
> parent component being added).  This is useful for applying markup wrapping 
> through the use of behaviors.  This is required because, on a ajax request - 
> and if the component that has the markup wrapping behavior was added directly 
> to the AjaxRequestTarget, the markup provided with the behavior will be 
> duplicated.  We currently have a workaround but it required the use of a 
> custom AjaxRequestTarget:
> public class AjaxRequestTarget extends 
> org.apache.wicket.ajax.AjaxRequestTarget {
>       private Map<String, Boolean> addedComponents = new HashMap<String, 
> Boolean>();
>       public AjaxRequestTarget(Page page) {
>               super(page);
>       }
>       @Override
>       public void addComponent(Component component) {
>               addedComponents.put(component.getMarkupId(), Boolean.TRUE);
>               super.addComponent(component);
>       }
>       public boolean wasComponentAdded(Component component) {
>               return (null != addedComponents.get(component.getMarkupId()));
>       }
> }
> It would be nice if the Wicket AjaxRequestTarget had a method (the name of 
> the method name doesn't really matter and is just for example purposes) like 
> the following:
> public boolean wasComponentAdded(Component component) {
>       return (null != markupIdToComponent.get(component.getMarkupId());
> }

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