Hi,

Yes you can do the processing for the form in the onSubmit of the ajax submit 
button, then just replace the current panel with the new one.

 - outside your onSubmit hold a reference to your current panel:
final Component thisPanel = this;

 - inside your onSubmit after processing the data:

        Component newPanel = new SomeOtherPanel(id, someParam);
        newPanel.setOutputMarkupId(true);
        thisPanel.replaceWith(newPanel);
        target.addComponent(newPanel);
        
Thats what I do.

cheers,
Steve

On 06/12/2009, at 2:27 PM, bassglider wrote:

> Ok, I think I'm getting somewhere after a few hours, I have two
> textfields, when the user hits the ajax submit button, the panel
> should be replaced with a new panel.  I'm thinking that
> onSubmit(AjaxRequestTarget target, Form<?> form)
> should be able to take the input of the textfields and call the method
> to update the image panel with a new image panel based on the new
> values in the textfields.
> 
> Any ideas?
> 
> 
> 
> Form<String> form = new Form<String>("Chart");
> 
>    TextField<Date> dateBegin =
>        new TextField<Date>("beginningDate", new
> PropertyModel<Date>(session, "beginningDate"));
>    dateBegin.add(new DatePicker());
>    dateBegin.setRequired(true);
>    form.add(dateBegin);
> 
>    TextField<Date> endingDate =
>        new TextField<Date>("endingDate", new
> PropertyModel<Date>(session, "endingDate"));
>    endingDate.add(new DatePicker());
>    endingDate.setRequired(true);
>    form.add(endingDate);
> 
>    CreateChart(this);
>    AjaxFormValidatingBehavior.addToAllFormComponents(form,
> "onchange", Duration.ONE_SECOND);
> 
>    form.add(new AjaxButton("ajax-button", form) {
> 
>      private static final long serialVersionUID = 1L;
> 
>      @Override
>      protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
>        // repaint the feedback panel so that it is hidden
>        target.addComponent(feedback);
>        System.out.println("Ajax Submitted!" + feedback.toString());
> 
>      }
> 
> ....
> 
> 
> private Panel CreateChart(Panel pan) {
>    pan.add(new AjaxLazyLoadPanel("image") {
>      /**
>       * Makes object serializable.
>       */
>      private static final long serialVersionUID = 1L;
> 
>      @Override
>      public Component getLazyLoadComponent(String id) {
>        return (new ChartPanel(id));
>      }
>    });
>    return pan;
>  }
> 
> 
> 
> On Sat, Dec 5, 2009 at 2:51 PM, bassglider <bassgli...@gmail.com> wrote:
>> Hi Everyone,
>> 
>> I was wondering if someone could point to the right direction
>> (examples, classes) for the following scenario:
>> 
>> I have a few text fields inside a panel, when one of the text fields
>> is changed, I'd like to call a method with updates a panel within the
>> current panel.
>> 
>> Currently I have the two text fields in the panel with the other panel
>> that displays the image, I just need to figure out how to call that
>> method when these forms are changed and I'm sure I can figure out the
>> rest from there.
>> 
>> Any direction is helpful
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 

Reply via email to