Greetings,
I'm a newbie trying to use the wizard from the extensions package to search and
update a user in a database. My first step has a single RequiredTextField
where
the userid is entered. When the user clicks the next button I search the
database and update the User object and display the second step with the users
info. This works good. However, if I click the back button and enter a
different userid then click next again the second step still diplays the
results
from the first search. The second step doesn't seem to recognize the the model
has changed. I've verified that the User object (the model) does get updated
with all the new info for the searched userid. I'm updating the User object in
a method which is called in the overriden applyState() method, is this the
correct place to update a model?
Any help would be appreciated.
Parts of the code.
public class NewUserWizard extends Wizard {
private final class UserSearchStep extends WizardStep
{
private static final long serialVersionUID = 1L;
public UserSearchStep()
{
super();
add(new RequiredTextField<String>("userid", new
PropertyModel<String>(user, "userid")));
}
@Override
public void applyState() {
super.applyState();
NewUserWizardHelper.userSearch(user.getUserid, user); // <--- I've
verified that the user (User object) is being updated in the method.
//NewUserWizard.this.setUser(user); <-- this doesn't work
either.
//modelChanged();
}
}
private final class UserInfoStep extends WizardStep
{
private static final long serialVersionUID = 1L;
private RequiredTextField surname;
public UserInfoStep()
{
super();
//surname = new RequiredTextField("surname");
surname = new RequiredTextField("surname", new
PropertyModel<User>(user, "surname") );
add(surname);
}
}
private User user;
public NewUserWizard(String id)
{
super(id);
// create a blank user
user = new User();
setDefaultModel(new CompoundPropertyModel<User>(user));
//setDefaultModel(new CompoundPropertyModel<NewUserWizard>(this));
WizardModel model = new WizardModel();
model.add(new UserSearchStep());
model.add(new UpdateInfoStep());
// initialize the wizard with the wizard model we just built
init(model);
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]