Re: Question regarding AjaxFormSubmitBehavior

2011-01-21 Thread Igor Vaynberg
r#onEvent(AjaxRequestTarget
>> > target)
>> > > executes the following line first:
>> > > "getForm().getRootForm().onFormSubmitted();"
>> > > Why does it still delegate to the root form?
>> > >
>> > > Shouldn't the line be "getForm().onFormSubmitted();" so that the nested
>> > form
>> > > and possibly its children get processed only.
>> > >
>> > >
>> > > Many thanks!
>> > > Daniel
>> > >
>> >
>> > -
>> > To unsubscribe, e-mail: [hidden email]<
>> http://user/SendEmail.jtp?type=node&node=3228304&i=1>
>> > For additional commands, e-mail: [hidden email]<
>> http://user/SendEmail.jtp?type=node&node=3228304&i=2>
>> >
>> >
>> >
>> > --
>> >  If you reply to this email, your message will be added to the discussion
>> > below:
>> >
>> >
>> http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228304.html
>> >  To start a new topic under Apache Wicket, email
>> > ml-node+1842946-398011874-65...@n4.nabble.com
>> 
>> >
>> > To unsubscribe from Apache Wicket, click here<
>> http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=
>> >.
>> >
>> >
>>
>>
>>
>> --
>> Sincerely,
>> JC (http://www.linkedin.com/in/jcgarciam)
>> --Anyone who has never made a mistake has never tried anything new.--
>>
>> --
>> View this message in context:
>> http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228728.html
>> Sent from the Users forum mailing list archive at Nabble.com.
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Question regarding AjaxFormSubmitBehavior

2011-01-21 Thread Daniel Bartl
Many thanks for your feedback!

I am well aware of the fact that HTML spec actually does not allow nested
forms and that wicket is already doing great job while transforming those
nested forms into divs.

I also expected that the bigger form gets submitted as well but only the
nested one processed and the rest ignored, but that's not exactly what's
happening in our case.

The reason for this is that AjaxFormSubmitBehavior always delegates to the
#onFormSubmitted() of the root form

AjaxFormSubmitBehavior, line 135:

getForm().getRootForm().onFormSubmitted();

which then looks up if there is any enabled, visible
IFormSubmittingComponent in the hierarchy that has been triggered. Only in
case that one such IFormSubmittingComponent gets identified, it sets
*formToProcess* to the form of the identified submittingComponent and then
finally invokes

Form, line 920: formToProcess.process(submittingComponent);

The problem with our crazy liitle nested form ;) is that it does not have
any IFormSubmittingComponent but rather a TextField with
AjaxFormSubmitBehavior attached to its "onchange" event that should then
submit the nested form accordingly. This leads to formToProcess being left
assigned to the parentForm that then gets processed at the end:

- from Form#onFormSubmitted():

// this is the root form
Form formToProcess = this;

// find out whether it was a nested form that was
submitted
if (submittingComponent != null)
{
formToProcess = submittingComponent.getForm();
}

// process the form for this request
formToProcess.process(submittingComponent);


We have in the meantime subclassed AjaxFormSubmitBehavior with our own
implementation of AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget target)
method the only difference being the line 135 that was changed from

getForm().getRootForm().onFormSubmitted();

to

getForm().onFormSubmitted();

and did not experience any problems with it, at least so far ;)

Daniel



On Fri, Jan 21, 2011 at 12:25 AM, jcgarciam  wrote:

>
> Adding to Igor's comment, remember that nested form is not allow in HTML
> spec per se, so what wicket is doing a trick where the root form is submit
> but only elements of nested form (which get transform in DIV tag) are
> processed
>
> On Thu, Jan 20, 2011 at 4:47 PM, Igor Vaynberg-2 [via Apache Wicket] <
> ml-node+3228304-1818027643-65...@n4.nabble.com
> 
> >
> > wrote:
>
> > the bigger form needs to be processed because what is submitted is the
> > root form's formtag. however, validation, etc, will probably be
> > delegated only to the inner form.
> >
> > -igor
> >
> > On Thu, Jan 20, 2011 at 4:14 AM, Daniel Bartl <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=3228304&i=0>>
> > wrote:
> >
> > > Have a small question regarding using AjaxFormSubmitBehavoir with
> nested
> > > forms.
> > >
> > > Would like to use it to submit a smaller nested form within a bigger
> > parent
> > > form.
> > >
> > > Even though I passed a nested form as a "*form that will be submitted*"
> > > while calling the following constructor of AjaxFormSubmitBehavoir :
> > >/**
> > > * Construct.
> > > *
> > > * @param form
> > > *   * form that will be submitted*
> > > * @param event
> > > *javascript event this behavior is attached to, like
> > > onclick
> > > */
> > >public AjaxFormSubmitBehavior(Form form, String
> > > event) <- passing nested form here
> > >{
> > >super(event);
> > >__form = form;
> > >
> > >if (form != null)
> > >{
> > >form.setOutputMarkupId(true);
> > >}
> > >}
> > >
> > >
> > > I noticed that the AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget
> > target)
> > > executes the following line first:
> > > "getForm().getRootForm().onFormSubmitted();"
> > > Why does it still delegate to the root form?
> > >
> > > Shouldn't the line be "getForm().onFormSubmitted();" so that the nested
> > form
> > > and possibly its children get processed only.
> > >
> > >
> > > Many thanks!
> > > Daniel
> > >
> >
> > -
> > To unsubscribe, e-mail: [hidden email]<
> http://us

Re: Question regarding AjaxFormSubmitBehavior

2011-01-20 Thread jcgarciam

Adding to Igor's comment, remember that nested form is not allow in HTML
spec per se, so what wicket is doing a trick where the root form is submit
but only elements of nested form (which get transform in DIV tag) are
processed

On Thu, Jan 20, 2011 at 4:47 PM, Igor Vaynberg-2 [via Apache Wicket] <
ml-node+3228304-1818027643-65...@n4.nabble.com
> wrote:

> the bigger form needs to be processed because what is submitted is the
> root form's formtag. however, validation, etc, will probably be
> delegated only to the inner form.
>
> -igor
>
> On Thu, Jan 20, 2011 at 4:14 AM, Daniel Bartl <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=3228304&i=0>>
> wrote:
>
> > Have a small question regarding using AjaxFormSubmitBehavoir with nested
> > forms.
> >
> > Would like to use it to submit a smaller nested form within a bigger
> parent
> > form.
> >
> > Even though I passed a nested form as a "*form that will be submitted*"
> > while calling the following constructor of AjaxFormSubmitBehavoir :
> >/**
> > * Construct.
> > *
> > * @param form
> > *   * form that will be submitted*
> > * @param event
> > *javascript event this behavior is attached to, like
> > onclick
> > */
> >public AjaxFormSubmitBehavior(Form form, String
> > event) <- passing nested form here
> >{
> >super(event);
> >__form = form;
> >
> >if (form != null)
> >{
> >form.setOutputMarkupId(true);
> >}
> >}
> >
> >
> > I noticed that the AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget
> target)
> > executes the following line first:
> > "getForm().getRootForm().onFormSubmitted();"
> > Why does it still delegate to the root form?
> >
> > Shouldn't the line be "getForm().onFormSubmitted();" so that the nested
> form
> > and possibly its children get processed only.
> >
> >
> > Many thanks!
> > Daniel
> >
>
> -
> To unsubscribe, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=3228304&i=1>
> For additional commands, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=3228304&i=2>
>
>
>
> --
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228304.html
>  To start a new topic under Apache Wicket, email
> ml-node+1842946-398011874-65...@n4.nabble.com
> To unsubscribe from Apache Wicket, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>.
>
>



-- 
Sincerely,
JC (http://www.linkedin.com/in/jcgarciam)
--Anyone who has never made a mistake has never tried anything new.--

-- 
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228728.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Question regarding AjaxFormSubmitBehavior

2011-01-20 Thread Igor Vaynberg
the bigger form needs to be processed because what is submitted is the
root form's formtag. however, validation, etc, will probably be
delegated only to the inner form.

-igor

On Thu, Jan 20, 2011 at 4:14 AM, Daniel Bartl  wrote:
> Have a small question regarding using AjaxFormSubmitBehavoir with nested
> forms.
>
> Would like to use it to submit a smaller nested form within a bigger parent
> form.
>
> Even though I passed a nested form as a "*form that will be submitted*"
> while calling the following constructor of AjaxFormSubmitBehavoir :
>    /**
>     * Construct.
>     *
>     * @param form
>     *           * form that will be submitted*
>     * @param event
>     *            javascript event this behavior is attached to, like
> onclick
>     */
>    public AjaxFormSubmitBehavior(Form form, String
> event)                 <- passing nested form here
>    {
>        super(event);
>        __form = form;
>
>        if (form != null)
>        {
>            form.setOutputMarkupId(true);
>        }
>    }
>
>
> I noticed that the AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget target)
> executes the following line first:
> "getForm().getRootForm().onFormSubmitted();"
> Why does it still delegate to the root form?
>
> Shouldn't the line be "getForm().onFormSubmitted();" so that the nested form
> and possibly its children get processed only.
>
>
> Many thanks!
> Daniel
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Question regarding AjaxFormSubmitBehavior

2011-01-20 Thread Daniel Bartl
Have a small question regarding using AjaxFormSubmitBehavoir with nested
forms.

Would like to use it to submit a smaller nested form within a bigger parent
form.

Even though I passed a nested form as a "*form that will be submitted*"
while calling the following constructor of AjaxFormSubmitBehavoir :
/**
 * Construct.
 *
 * @param form
 *   * form that will be submitted*
 * @param event
 *javascript event this behavior is attached to, like
onclick
 */
public AjaxFormSubmitBehavior(Form form, String
event) <- passing nested form here
{
super(event);
__form = form;

if (form != null)
{
form.setOutputMarkupId(true);
}
}


I noticed that the AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget target)
executes the following line first:
"getForm().getRootForm().onFormSubmitted();"
Why does it still delegate to the root form?

Shouldn't the line be "getForm().onFormSubmitted();" so that the nested form
and possibly its children get processed only.


Many thanks!
Daniel