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]

Reply via email to