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]

Reply via email to