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]