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

Johan Compagner commented on WICKET-1213:
-----------------------------------------

The current impl is also fine but i think i liked the interface that resides in 
the .ajax.* package a bit better
(its nicer i think on some levels)

So an interface besides AbstractDefaultAjaxBehavior that is 
IAjaxRequestTargetFactory

and then an page can implement that if he wants to control the ajax request 
target creation.so we only test this in AbstractDefaultAjaxBehavior
we take the page if page implements the interface call it else doe default.

that way the whole of ajax is still nicely packages in the ajax.* package.

> enable subclassing of AjaxRequestTarget
> ---------------------------------------
>
>                 Key: WICKET-1213
>                 URL: https://issues.apache.org/jira/browse/WICKET-1213
>             Project: Wicket
>          Issue Type: Wish
>          Components: wicket
>    Affects Versions: 1.3.0-rc1
>            Reporter: Peter Ertl
>            Assignee: Igor Vaynberg
>             Fix For: 1.3.0-rc3
>
>         Attachments: AjaxRequestTarget_using_callback_interface.patch, 
> AjaxRequestTarget_with_subclassing.patch
>
>
> In my wicket programming experience so far I always didn't feel quite 
> comfortable with the ajax part.
> I had some issues in particular with these as an example:
> - "Always include a common feedback panel from my template page"
>    --> add 'target.addComponent(feedbackPanel)' just _everywhere_ (very 
> cumbersome and not elegant at all)
> - add a listener using AjaxRequestTarget#addListener
>   --> not possible without subclassing the request cycle (which is *yuk* if 
> you ask me) to catch the short moment in between AjaxRequestTarget is 
> instantiated and AjaxRequestTarget#onRespond() is called
> - automatically set focus on the first form component with errors
>    --> add bulky code into all onSubmit() and onError() to check for errrors 
> and call AjaxRequestTarget#setFocus
> - add some common function like AjaxRequestTarget#yellowFade(FormComponent)
>   --> have some utility method and call it like this: 
> AjaxUtil.yellowFade(target) -- not nice as functionality like this should 
> really belong to the request target
> I found that all these issues can be solved very elegantly if you could just 
> catch the moment where AjaxRequestTarget is instantiated.
> I attached a very little patch (!) which solves all that issues and makes 
> ajax just a lot more powerful inside wicket *imho*
> also, it will not break current code but is just an enhancement you will not 
> notice unless you need it.

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