Here is a test case the shows the problem.  I have two identical pages.  The
only difference is that one page has the submit button contained by the form
in the second page it is outside of the Form.

http://www.nabble.com/file/5295/quickstart-ajaxbutton.zip
quickstart-ajaxbutton.zip  (this contains everything except for the lib
folder and uses 1.3-incubating-SNAPSHOT)


ChuckDeal wrote:
> 
> The AjaxSubmitButton specifically says that it does NOT have to be
> attached to a form; from the javadoc
> 
>  * A button that submits the form via ajax. Since this button takes the
> form as
>  * a constructor argument it does not need to be added to it unlike the
>  * [EMAIL PROTECTED] Button} component.
> 
> However, in practice, this is not the case.  I believe it is associated
> with the change (1.2-SNAPSHOT -> 1.3-SNAPSHOT) to extend from Button.  
> 
> What goes wrong?  The exception says something to the effect of "Could not
> find Form parent for [the button component]" (see the full stacktrace in
> my original message way down below); when debugging, it calls the
> getForm() method of my button which instead of returning the Form that was
> supplied to the Constructor, calls findParent()
> 
> As for the test case, I'll see if I can put something together.
> 
> Chuck
> 
> 
> Johan Compagner wrote:
>> 
>> a button should be in a form (one of its parents)
>> or a button should get the form through its constructor.
>> 
>> So what goes wrong exactly?
>> Can you have a small test case?
>> 
>> johan
>> 
>> 
>> On 12/18/06, ChuckDeal <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>> It gets there fine, its this line:
>>>
>>> if (submit.getForm() == Form.this
>>>
>>> that is the problem.  submit (which is the button) does not belong to a
>>> Form, it is supposed to contain a reference to a Form instead.  SInce it
>>> can't find a Form object for the button it throws an  exception
>>>
>>> throw new WicketRuntimeException("Could not find Form parent for " +
>>> this);
>>>
>>> Thus killing the execution.
>>>
>>> To Igor:
>>> It didn't make a difference when I renamed (wicket:id) the button from
>>> "submit" to "submitButton".
>>>
>>> Chuck
>>>
>>>
>>> Johan Compagner wrote:
>>> >
>>> > It should work AjaxSubmitButton is a IFormSubmittingComponent
>>> component
>>> so
>>> > this code:
>>> >
>>> >         IFormSubmittingComponent submit =
>>> > (IFormSubmittingComponent)getPage().visitChildren(
>>> >                 IFormSubmittingComponent.class, new IVisitor()
>>> >                 {
>>> >                     public Object component(final Component component)
>>> >                     {
>>> >                         // Get button
>>> >                         final IFormSubmittingComponent submit =
>>> > (IFormSubmittingComponent)component;
>>> >
>>> >                         // Check for button-name or
>>> button-name.xrequest
>>> > string
>>> >                         if (submit.getForm() == Form.this
>>> >                                 && (getRequest().getParameter(
>>> > submit.getInputName()) != null || getRequest()
>>> >
>>> > .getParameter(submit.getInputName()
>>> > + ".x") != null))
>>> >
>>> > should find the ajax button no matter if it is in the page or not
>>> > (this is 1.3 code but as far as i know this isn't really changed)
>>> >
>>> > Frank are you reading with us? I believe you worked on this.
>>> >
>>> > johan
>>> >
>>> >
>>> > On 12/13/06, ChuckDeal <[EMAIL PROTECTED]> wrote:
>>> >>
>>> >>
>>> >> I have a Page that has a Form with some select boxes in it and,
>>> outside
>>> >> the
>>> >> Form, I have three buttons (submit[AjaxSubmitButton],
>>> reset[AjaxLink],
>>> >> cancel[AjaxLink]).
>>> >>
>>> >> In Wicket 1.2.3  (Actually, I have been using the latest 1.2-SNAPSHOT
>>> >> releases) The submit button works as advertised and submits the page.
>>> >>
>>> >> In 1.3-incubating-SNAPSHOT (latest as of 13DEC2006 7am EST), the page
>>> >> fails
>>> >> with the following exception:
>>> >>
>>> >> wicket.WicketRuntimeException: Could not find Form parent for
>>> >> [MarkupContainer [Component id = submit, page =
>>> >> com.csc.aims.issuetracker.wicket.TestSelectionPage, path =
>>> >> 0:submit.TestSelectionPage$7, isVisible = true, isVersioned = false]]
>>> >>         at wicket.markup.html.form.FormComponent.getForm(
>>> >> FormComponent.java:409)
>>> >>         at wicket.markup.html.form.Form$5.component(Form.java:633)
>>> >>         at wicket.MarkupContainer.visitChildren(MarkupContainer.java
>>> :749)
>>> >>         at
>>> wicket.markup.html.form.Form.findSubmittingButton(Form.java
>>> >> :624)
>>> >>         at
>>> wicket.markup.html.form.Form.onFormSubmitted(Form.java:333)
>>> >>         at
>>> >> wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(
>>> >> AjaxFormSubmitBehavior.java:87)
>>> >>         at
>>> wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java
>>> >> :165)
>>> >>         at
>>> >> wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(
>>> >> AbstractDefaultAjaxBehavior.java:225)
>>> >>         at
>>> >>
>>> >>
>>> wicket.request.target.component.listener.BehaviorRequestTarget.processEvents
>>> >> (BehaviorRequestTarget.java:98)
>>> >>         at
>>> >> wicket.request.compound.DefaultEventProcessorStrategy.processEvents(
>>> >> DefaultEventProcessorStrategy.java:64)
>>> >>         at
>>> >>
>>> >>
>>> wicket.request.compound.AbstractCompoundRequestCycleProcessor.processEvents
>>> >> (AbstractCompoundRequestCycleProcessor.java:56)
>>> >>         at
>>> >> wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java
>>> >> :912)
>>> >>         at wicket.RequestCycle.processEventsAndRespond(
>>> RequestCycle.java
>>> >> :950)
>>> >>         at wicket.RequestCycle.step(RequestCycle.java:1026)
>>> >>         at wicket.RequestCycle.steps(RequestCycle.java:1100)
>>> >>         at wicket.RequestCycle.request(RequestCycle.java:454)
>>> >>         at wicket.protocol.http.WicketFilter.doGet(WicketFilter.java
>>> :243)
>>> >>         at
>>> wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java
>>> >> :122)
>>> >>
>>> >> After consulting the Migration Wiki Page
>>> >> (http://cwiki.apache.org/WICKET/migrate-13.html) it shows that both
>>> >> AjaxSubmitButton and AjaxSubmitLink have changed to extend Button.
>>> >> (Actually, I checked AjaxSubmitLink and it does NOT extend
>>> >> button...).  But
>>> >> according to the javadoc for AjaxSubmitButton, since you pass a form
>>> to
>>> >> the
>>> >> constructor, you don't need to add the component to a Form object. 
>>> In
>>> >> practice this was not true.  Once I added the button to the form, it
>>> >> worked
>>> >> as advertised.
>>> >>
>>> >> I'm guessing the change was necessary as a result of the hierarchy
>>> change
>>> >> of
>>> >> AjaxSubmitButton, but maybe the Form arg is no longer needed since
>>> you
>>> >> must
>>> >> add it to the Form object?
>>> >>
>>> >> Chuck
>>> >> --
>>> >> View this message in context:
>>> >>
>>> http://www.nabble.com/AjaxSubmitButton-and-not-adding-it-to-a-Form-tf2815470.html#a7857386
>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>> >>
>>> >>
>>> >>
>>> -------------------------------------------------------------------------
>>> >> Take Surveys. Earn Cash. Influence the Future of IT
>>> >> Join SourceForge.net's Techsay panel and you'll get the chance to
>>> share
>>> >> your
>>> >> opinions on IT & business topics through brief surveys - and earn
>>> cash
>>> >>
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>> >> _______________________________________________
>>> >> Wicket-user mailing list
>>> >> Wicket-user@lists.sourceforge.net
>>> >> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>> >>
>>> >
>>> >
>>> -------------------------------------------------------------------------
>>> > Take Surveys. Earn Cash. Influence the Future of IT
>>> > Join SourceForge.net's Techsay panel and you'll get the chance to
>>> share
>>> > your
>>> > opinions on IT & business topics through brief surveys - and earn cash
>>> >
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>> > _______________________________________________
>>> > Wicket-user mailing list
>>> > Wicket-user@lists.sourceforge.net
>>> > https://lists.sourceforge.net/lists/listinfo/wicket-user
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/AjaxSubmitButton-and-not-adding-it-to-a-Form-tf2815470.html#a7930588
>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>
>>>
>>> -------------------------------------------------------------------------
>>> Take Surveys. Earn Cash. Influence the Future of IT
>>> Join SourceForge.net's Techsay panel and you'll get the chance to share
>>> your
>>> opinions on IT & business topics through brief surveys - and earn cash
>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>>> _______________________________________________
>>> Wicket-user mailing list
>>> Wicket-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>>
>> 
>> -------------------------------------------------------------------------
>> Take Surveys. Earn Cash. Influence the Future of IT
>> Join SourceForge.net's Techsay panel and you'll get the chance to share
>> your
>> opinions on IT & business topics through brief surveys - and earn cash
>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>> _______________________________________________
>> Wicket-user mailing list
>> Wicket-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>> 
>> 
> 
> 
-- 
View this message in context: 
http://www.nabble.com/AjaxSubmitButton-and-not-adding-it-to-a-Form-tf2815470.html#a8166968
Sent from the Wicket - User mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to