so you don't support this model then?
igor.vaynberg wrote: > > i disagree. i dont think we should be doing more with cglib in core or > any other bytecode magic. have you ever tried to walk code that uses > bytecode generation? its a nightmare. one of my favorite things about > wicket is that it is just java and its easy as hell to debug. im not > really against putting something like this into extensions, or even > having a new wicket-bytecode/codegen/whatever package that contains > things like these... > > -igor > > > On Feb 6, 2008 5:23 PM, Jonathan Locke <[EMAIL PROTECTED]> wrote: >> >> like BoundCompoundPropertyModel, but safer. i think this almost might be >> too >> clever as it sacrifices some intuitiveness. also, it's filling in for a >> missing java feature. this should really be: >> >> boundModel.bind(component, firstName.property) >> >> (where .property, .field and .method are long-missing declarative >> reflections like .class) >> >> it does make me think we could be doing more with CGLIB in general. our >> model classes ought to be able to detect model changes better using >> proxies, >> for example. >> >> >> >> Scott Swank wrote: >> > >> > One of our more clever developers created a CompoundPropertyModel that >> > uses a cglib proxy to strongly bind the mutators to the model. It >> > looks like this: >> > >> > SharedPropertyModel<Customer> model = new >> > SharedPropertyModel<Customer>(customer); >> > this.setModel(model); >> > >> > FormComponent firstName = new >> > CustomerNameField("firstName").setRequired(true); >> > model.bind(firstName).to().getFirstName(); >> > add(firstName); >> > >> > FormComponent lastName = new >> > CustomerNameField("lastName").setRequired(true); >> > model.bind(lastName).to().getLastName(); >> > add(lastName); >> > >> > FormComponent addr1 = new >> AddressField("address1").setRequired(true); >> > model.bind(addr1).to().getAddress().getAddress1(); >> > add(addr1); >> > >> > FormComponent addr2 = new AddressField("address2"); >> > model.bind(addr2).to().getAddress().getAddress2(); >> > add(addr2); >> > >> > FormComponent city = new CityField("city"); >> > model.bind(city).to().getAddress().getCity(); >> > add(city); >> > >> > We're happy to share if folk like this approach. N.B. that the .to() >> > call is for readability rather than out of any necessity. >> > >> > Cheers, >> > Scott >> > >> > -- >> > Scott Swank >> > reformed mathematician >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/CompoundModel-based-on-proxies-tp15317807p15325663.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/CompoundModel-based-on-proxies-tp15317807p15325860.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]