Hi Pedro, thank you for your reply.

In the applyState() of the first step (UserSearchStep) i added the following.  
However, my second step still displays the user info from the first search, am 
i 
correctly getting the form?

            Form f = (Form)UserSearchStep.this.findParent(Form.class);
            f.modelChanged();

i've also tryed

            Form f = NewUserWizard.this.getForm();
            f.modelChanged();




----- Original Message ----
From: Bob Peterson <gp...@yahoo.com>
To: users@wicket.apache.org
Sent: Mon, February 28, 2011 7:32:08 PM
Subject: Wizard (updating model)

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


      

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to