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 >