You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Nicola Vallinoto (JIRA)" <ji...@apache.org> on 2018/04/27 10:02:00 UTC

[jira] [Commented] (WICKET-1213) enable subclassing of AjaxRequestTarget

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

Nicola Vallinoto commented on WICKET-1213:
------------------------------------------

@[~ivaynberg] 

I'm having similar troubles with ajax. I would like to focus on feedback panel after a validation error but wicket returns the focus on the first field causing the validation error.

I tried to apply the method focusComponent (as indicated in the following code of an ajaxbutton) but it doesn't work. The focus will go to the field with the validation error.  

@Override

protected void onError(AjaxRequestTarget target, Form<?> form) {

    .....

     target.add(((AbstractUIPage)this.getPage()).getFeedbackPanel());

    *target.focusComponent(((AbstractUIPage)this.getPage()).getFeedbackPanel());*

}

 

Perhaps you have solved in a differend and more elegant way.

Thanxs.            

 

> 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
>            Priority: Major
>             Fix For: 1.3.0-final
>
>         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 was sent by Atlassian JIRA
(v7.6.3#76005)