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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to