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