Wicket is a MVC component driven framework similar to Swing. In short, what you want to do is create your own Panel with that form file of yours and add it to another Panel as a child.
See chapter 4 "Keeping control over HTML" of the Wicket Free Guide at: http://code.google.com/p/wicket-guide/ Also available from under the Learn section as the Books link on the right side navigation section on Wicket's home page at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -----Original Message----- From: Daniel Watrous [mailto:[email protected]] Sent: Tuesday, July 16, 2013 7:13 PM To: [email protected] Subject: Re: Form questions Thanks Paul and Sven. I got the form to work and available in the onSubmit handler. Now I'm interested in splitting the form out into it's one file. So I created a class that has nothing more than the form, but I'm not sure how to include this into a page. In my class I do this: public class CnavModify extends ConsoleBasePage { public CnavModify(PageParameters parameters) { super(parameters); Form form = new CnavForm("cnavFormArea"); add(form); } } My CnavModify obviously extends a base page. What do I put inside the <wicket:extend> tag to have the form render? Daniel On Tue, Jul 16, 2013 at 12:00 AM, Sven Meier <[email protected]> wrote: > Hi, > > > Some problems I can't figure out. The code to create the button > complains >> that it requires a CnavUrl but gets back a String. >> >> add(new Button("publish", model) { >> @Override >> public void onSubmit() { >> CnavUrl cnavUrl = (CnavUrl) getModelObject(); >> System.out.println("publish"); >> } >> }); >> > > a Button always has a IModel<String> to fill the value attribute. Note > that in #onSubmit() you're getting the model object of the button, not > of your form. > You can write: > > add(new Button("publish", model) { >> @Override >> public void onSubmit() { >> CnavUrl cnavUrl = (CnavUrl) MyForm.this.getModelObject(); >> System.out.println("publish"); >> } >> }); >> > > Using generic types in your code should help you. > > Sven > > > > On 07/15/2013 11:41 PM, Daniel Watrous wrote: > >> Hello, >> >> I'm interested in creating a single Form that will accommodate the >> following use cases >> 1) display blank for creating new records >> 2) pre-populate for editing existing records >> 3) map submitted values on to an existing domain object >> 4) accommodate two actions, Save Draft -or- Publish >> >> I'm following Wicket in Action and within my Form constructor I >> create my model, like this >> >> CnavUrl cnavUrl = new BasicCnavUrl(); >> IModel model = new Model((Serializable) cnavUrl); >> setModel(model); >> >> I then use PropertyModel >> >> add(new TextField("url", new PropertyModel(cnavUrl, >> "url"))); >> >> For the two actions, I'm creating the Button objects like this >> >> add(new Button("publish", model) { >> @Override >> public void onSubmit() { >> CnavUrl cnavUrl = (CnavUrl) getModelObject(); >> System.out.println("publish"); >> } >> }); >> >> Some problems I can't figure out. The code to create the button >> complains that it requires a CnavUrl but gets back a String. >> >> It seems that a new BasicCnavUrl is created once with the Form. What >> happens on subsequent calls? Can I always expect my model to have the >> data from the current form submission? >> >> Is there a best way to incorporate the idea of an edit, where the >> model is pre-populated from a data source and pre-fills the Form fields? >> >> Thanks, >> Daniel >> >> > > ------------------------------**------------------------------**------ > --- To unsubscribe, e-mail: > users-unsubscribe@wicket.**apache.org<[email protected]. > org> For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
