public class BasicInfoForm extends Form {
        
        private static final Log log = LogFactory.getLog(BasicInfoForm.class);
        
        @SpringBean(name = "spinnDao")
        private ISpinnDao spinnDao;
        
        @SpringBean(name = "phrInfoDao")
        private IPhrInfoDao phrInfoDao; 
        
        private LinkedHashMap<String, String> genders;
        private LinkedHashMap<String, String> countries;
        private static List<String> titles = Arrays.asList(new String[] { "Mr.",
"Mrs", "Ms." });
        
        public BasicInfoForm(String id, IModel model) {
                super(id, model);
                
                /* Maps for DropDownChoice Lookup */
                try {
                        countries = spinnDao.getCountries();
                } catch (DaoException e) {
                        log.error(e, e.getCause());
                        error("Error Retreiving Countries.");
                }

                try {
                        genders = spinnDao.getGenders();
                } catch (DaoException e) {
                        log.error(e, e.getCause());
                        error("Error Retreiving Genders.");
                }
                
                
                /* Models for DropDownChoice */ 
                IModel bloodtypes = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> model = new ArrayList();
                                try {
                                        model = spinnDao.getBloodtypes();
                                } catch (DaoException e) {
                                        log.error(e, e.getCause());
                                        error("Error Retreiving Blood Types.");
                                }
                                return model;
                        }
                };
                
                IModel states = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> model = new ArrayList();
                                try {
                                        model = spinnDao.getStates();
                                } catch (DaoException e) {
                                        log.error(e, e.getCause());
                                        error("Error Retreiving States.");
                                }
                                return model;
                        }
                };              

                IModel religions = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> model = new ArrayList();
                                try {
                                        model = spinnDao.getReligions();
                                } catch (DaoException e) {
                                        log.error(e, e.getCause());
                                        error("Error Retreiving Religions.");
                                }
                                return model;
                        }
                };                      

                IModel languages = new LoadableDetachableModel() {
                        public Object load() {
                                List<Language> model = new 
ArrayList<Language>();
                                try {
                                        model = spinnDao.getSpokenLanguages();
                                } catch (DaoException e) {
                                        log.error(e, e.getCause());
                                        error("Error Retreiving Ethnicitiess.");
                                }
                                return model;
                        }
                };      
                                
                IModel ethnicities = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> model = new ArrayList();
                                try {
                                        model = spinnDao.getEthnicities();
                                } catch (DaoException e) {
                                        log.error(e, e.getCause());
                                        error("Error Retreiving Ethnicitiess.");
                                }
                                return model;
                        }
                };                      
                
                IModel countryChoices = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> countryKeys = new ArrayList();
                                        Set<String> keys = countries.keySet();  
  
                for (String key : keys) {
                        countryKeys.add(key);
                }

                                return countryKeys;
                        }
                };              
                
                IModel genderChoices = new LoadableDetachableModel() {
                        public Object load() {
                                List<String> genderKeys = new ArrayList();
                                        Set<String> keys = genders.keySet();    
  
                for (String key : keys) {
                        genderKeys.add(key);
                }

                                return genderKeys;
                        }
                };                              
                                
                add(new DropDownChoice("title", new PropertyModel(model,
"personalDemographicInfo.title"), titles));             
                add(new TextField("suffix", new PropertyModel(model,
"personalDemographicInfo.suffix")));            
                add(new TextField("firstname", new PropertyModel(model,
"personalDemographicInfo.firstName")));
                add(new TextField("lastname", new PropertyModel(model,
"personalDemographicInfo.lastName")));
                add(new DropDownChoice("ethnicity",  new PropertyModel(model,
"personalDemographicInfo.ethnicityAsString"), ethnicities));            
                add(new TextField("organdonor", new PropertyModel(model,
"personalDemographicInfo.organDonor")));
                add(new TextField("ssn", new PropertyModel(model,
"personalDemographicInfo.ssn")));
                add(new TextField("middlename", new PropertyModel(model,
"personalDemographicInfo.middleName")));                
                add(new TextField("birthdate", new PropertyModel(model,
"personalDemographicInfo.birthdateAsString")).add(new DatePicker()));
                add(new DropDownChoice("religion", new PropertyModel(model,
"personalDemographicInfo.religionAsString"), religions));
                add(new DropDownChoice("bloodtype", new PropertyModel(model,
"personalDemographicInfo.bloodTypeAsString"), bloodtypes));
                add(new TextField("city", new PropertyModel(model,
"basicDemographicInfo.city")));
                add(new DropDownChoice("state", new PropertyModel(model,
"basicDemographicInfo.state"), states));                
                add(new TextField("postcode", new PropertyModel(model,
"basicDemographicInfo.postcode")));             
                add(new TextField("newEmail", new PropertyModel(model, 
"newEmail")));
                add(new CheckBox("newEmailPrimary", new PropertyModel(model,
"newEmailPrimary")));
                add(new TextField("newPhone", new PropertyModel(model, 
"newPhone")));           
                add(new CheckBox("newPhonePrimary", new PropertyModel(model,
"newPhonePrimary")));
                
                
                add(new ListMultipleChoice("language", new PropertyModel(model,
"basicDemographicInfo.language"), languages, new ChoiceRenderer() {
                        public String getDisplayValue(Object value) {
        return (String) ((Language)value).getLanguage().getText();
                        }
                }
                )); 

                add(new DropDownChoice("country", new PropertyModel(model,
"basicDemographicInfo.country"), countryChoices, new ChoiceRenderer() {
                        public String getDisplayValue(Object value) {
        return (String) countries.get(value);
                        }
                }
                )); 
                
                add(new DropDownChoice("gender", new PropertyModel(model,
"basicDemographicInfo.gender"), genderChoices, new ChoiceRenderer() {
                        public String getDisplayValue(Object value) {
        return (String) genders.get(value);
                        }
                }
                )); 
                
                add(new Button("addButton"));
                add(new FeedbackPanel("feedback"));             
                
        
                // Phone's
                add(new ListView("phones", new PropertyModel(model,
"personalContactInfo.phone")) {
                        protected void populateItem(ListItem item) {
                                Phone phone = (Phone) item.getModelObject();
                                item.add(new TextField("phone", new 
PropertyModel(phone, "number")));
                                item.add(new CheckBox("primary", new 
PropertyModel(phone,
"isPrimary")));
                        }                               

                });
                
                
                // Emails
                add(new ListView("emails", new PropertyModel(model,
"personalContactInfo.email")) {
                        protected void populateItem(ListItem item) {
                                Email email = (Email) 
item.getModel().getObject();
                                item.add(new TextField("email", new 
PropertyModel(email, "address")));
                                item.add(new CheckBox("primary", new 
PropertyModel(email,
"isPrimary")));
                        }                               
                });     
                
        }

        // Handle Form Submit
        protected void onSubmit() {

                BasicInfoModel basicInfoModel = (BasicInfoModel) 
getModelObject();
                PersonalDemographicInfo personalDemographicInfo =
basicInfoModel.getPersonalDemographicInfo();
                BasicDemographicInfo basicDemographicInfo =
basicInfoModel.getBasicDemographicInfo();               
                ContactInfo personalContactInfo  =
basicInfoModel.getPersonalContactInfo();

                // Trying to figure out why the form changes are to shown here
                List emails = personalContactInfo.getEmail();
                for (Email email : emails) {
                   log.info(email.getAddress() + " - " + email.isIsPrimary());
                }

                
                // Add a new email to the list.
                if (basicInfoModel.getNewEmail() != null &&
basicInfoModel.getNewEmail().length() > 0) {
                        Email newEmail = new Email();
                        newEmail.setAddress(basicInfoModel.getNewEmail());
                        
newEmail.setIsPrimary(basicInfoModel.getNewEmailPrimary());                     
                        personalContactInfo.getEmail().add(newEmail);
                }
                
                try {
                        phrInfoDao.putThing(((HVSession) 
this.getSession()).getUserSession(),
personalDemographicInfo);
                        phrInfoDao.putThing(((HVSession) 
this.getSession()).getUserSession(),
basicDemographicInfo);
                        //phrInfoDao.putThing(((HVSession) 
this.getSession()).getUserSession(),
personalContactInfo);
                } catch (Exception e) {
                        e.printStackTrace();
                        error("Internal Error saving Personal Info");
                        return;
                }

                
                UserSession userSession = ((HVSession)
this.getSession()).getUserSession();
                Record selectedRecord = userSession.getSelectedRecord();

                setResponsePage(BasicInfo.class, new PageParameters("id=" +
selectedRecord.getId()));
        }



Clint Popetz-2 wrote:
> 
> Can you post the full code, including the submit button and the form?
> 
> -Clint
> 
> On Mon, May 11, 2009 at 7:48 PM, Chris <ch...@carlsoncentral.com> wrote:
>> I have a ListView that contains a TextField and Checkbox.  The model is
>> properly populating the components in populateItem(),  however onSubmit()
>> in
>> not seeing changes.  Do I have to do anything special to make changes to
>> FormComponents in a ListView make it back into the Model?
>>
>> add(new ListView("emails", new PropertyModel(model,
>> "personalContactInfo.email")) {
>>  protected void populateItem(ListItem item) {
>>   Email email = (Email) item.getModel().getObject();
>>   item.add(new TextField("email", new PropertyModel(email, "address")));
>>   item.add(new CheckBox("primary", new PropertyModel(email,
>> "isPrimary")));
>>  }
>> });
>> model is LoadableDetachableModel.
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
> 
> 
> 
> -- 
> Clint Popetz
> http://42lines.net
> Scalable Web Application Development
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/TextField-in-ListView-tp23494369p23494565.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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

Reply via email to