Warren, Exactly - and in a very Wicket way!
Just drop the code into your IDE and run it - if there are no typos (other than the type parameter to the TextFields - the compiler can't help you here!) it just works. Regards - Cemal jWeekend OO & Java Technologies, Wicket Training and Development http://jWeekend.com Warren Bell-3 wrote: > > In your second example the Vendor in the vendorModel becomes the > selected Vendor from the ListChoice and that Vendor name property > becomes the value of the TextField? > > -----Original Message----- > From: jWeekend [mailto:[email protected]] > Sent: Friday, August 14, 2009 3:47 PM > To: [email protected] > Subject: Re: Model question ? > > > Warren, > > ... and if you prefer using a CPM for your "vendorEditForm"s: > > public class HomePage extends WebPage { > private List<Vendor> vendors = Arrays.asList(new Vendor("v1"), > new > Vendor("v2")); > private Vendor vendor = new Vendor("default vendor"); > public HomePage(final PageParameters parameters) { > IModel vendorModel = new PropertyModel<Vendor>(this, "vendor"); > Form<Void> form = new Form<Void>("form"); > add(form); > // use your existing LDM instead of this hard-wired > // List of vendors but > // make sure you merge your edits properly! > form.add(new ListChoice<Vendor>("vendors", > vendorModel, vendors)); > // using a PropertyModel per field > Form<Void> editForm1 = new Form<Void>("vendorEditForm1"); > add(editForm1); > editForm1.add(new TextField<Vendor>("name", > new PropertyModel<Vendor>(this, "vendor.name"))); > // using a CompoundPropertyModel > Form<Vendor> editForm2 = new Form<Vendor>("vendorEditForm2", > new CompoundPropertyModel<Vendor>(vendorModel)); > add(editForm2); > editForm2.add(new TextField<Vendor>("name")); > } > > private class Vendor implements Serializable{ > private String name; > protected Vendor(String name) {this.name = name;} > public String toString(){return name;} > // safer to have accessors & mutators > } > // safer to have accessors & mutators } > > Regards - Cemal > jWeekend > OO & Java Technologies, Wicket Training and Development > http://jWeekend.com > > > > Warren Bell-3 wrote: >> >> How should I set up my model for the following situation. I have a >> form with a ListChoice and a TextField. The TextField needs to access >> a property of the object selected of the ListChoice. I have it all >> working using a ValueMap, but that seems like overkill to use a >> ValueMap for one object. Here is how I have it: >> >> super(new CompoundPropertyModel<ValueMap>(new ValueMap())); >> >> ListChoice<Vendor> vendorListChoice = new ListChoice<Vendor>("vendor", > >> new LoadableDetachableModel<List<Vendor>>(){...}, new >> IChoiceRenderer<Vendor>(){...}); >> >> TextField<String> accountNumberField = new >> TextField<String>("vendor.accountNumber"); >> >> I thought I could do something like this: >> >> super(new CompoundPropertyModel<Vendor>(new Vendor())); >> >> The ListChoice is the same as above and the TextField like this: >> >> TextField<String> accountNumberField = new >> TextField<String>("accountNumber"); >> >> The problem with this is that the ListChoice is trying to set a >> property on the model named vendor when I realy want the selected >> ListChoice vendor object be the model object and have the TextField >> access the accountNumber property of the ListChoice vendor. >> >> How should I set up my model to deal with this type of situation or is > >> a ValueMap the best way? >> >> Thanks, >> >> Warren >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >> > > -- > View this message in context: > http://www.nabble.com/Model-question---tp24978225p24979787.html > Sent from the Wicket - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > -- View this message in context: http://www.nabble.com/Model-question---tp24978225p24980016.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
