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 <s...@meiers.net> 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<users-unsubscr...@wicket.apache.org>
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to