makes sense to me.
igor.vaynberg wrote: > > i support it in a non-core module > > -igor > > > On Feb 6, 2008 5:41 PM, Jonathan Locke <[EMAIL PROTECTED]> wrote: >> >> >> 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] >> >> > > --------------------------------------------------------------------- > 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-tp15317807p15325972.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]