Hi,
  (If Igor says anything different, just ignore this! :-))

  The change that I'd consider would the standard one of if it'd be
worth passing in a custom IMyBean interface derived from IModel, to
cover the case where I might want to use something like-but-not-a
MyBean, but I can't see anything wrong with passing it directly if
that's not the case.

/Gwyn

On 16/03/07, David Leangen <[EMAIL PROTECTED]> wrote:
>
> Ok, thanks for the info.
>
> Sorry for not letting this thread die... but one more question (and
> hopefully last):
>
> Right now, the page I refactored looks like this:
>
> MyPage page = new MyPage( MyBean bean )
> {
>    SomeComponent component = new Component( "id", new MyModel( bean ) );
>    bla bla
>    Hi, Mom
> }
>
>
> So, I'm injecting my bean, as is, into the constructor of the page. The
> bean is created somewhere else. In the MyModel above, I'm actually using
> a field of a field of the model, so I get:
>
> class MyModel implements IModel
> {
>   private MyThing thing;
>
>   public MyModel( MyBean bean )
>   {
>       this.thing = bean.getField().getThing();
>   }
>
>   More bla bla
> }
>
>
> So:
>
> Is it "ok" to pass in the raw bean into the page contructor, or should I
> be passing in a model instead?
>
> Is there an even better way to go about all this that I haven't noticed?
>
>
> In any case, what I do really like about IModel is that it gives a
> direct translation between the controls and my bean. So cool!
>
>
> Cheers,
> David
>
>
>
> On Thu, 2007-03-15 at 07:27 -0800, Igor Vaynberg wrote:
> > it is mostly internal and will be removed in the coming model refactor
> >
> > -igor
> >
> >
> > On 3/14/07, David Leangen <[EMAIL PROTECTED]> wrote:
> >
> >
> >         Ok, thanks for your help, guys. I finally figured out what you
> >         meant by
> >         your last comments, and implemented one way to go about this.
> >         Not sure
> >         if it's the "best" way, but it's certainly much cleaner than
> >         before.
> >
> >         Thanks!!
> >
> >         Just one question remaining.
> >
> >         What's the deal with getNestedModel( )?
> >
> >         It sounds useful, but that never gets invoked.
> >
> >
> >         What is it for, and how would I use it?
> >
> >
> >         Cheers,
> >         Dave
> >
> >
> >
> >
> >
> >
> >         On Tue, 2007-03-13 at 16:07 +0900, David Leangen wrote:
> >         > :-)
> >         >
> >         > > if you disable a formcomponent then neither a set or get
> >         will be
> >         > > called
> >         >
> >         >
> >         > Yes. But it's not disabled, and get is being called. Just
> >         not set.
> >         >
> >         > I must be doing something wrong or missing something in the
> >         impl here...
> >         > but I don't see what it is. :-(
> >         >
> >         >
> >         > Cheers,
> >         > Dave
> >         >
> >         >
> >         >
> >         >
> >         >
> >         > >         Sorry for pulling you guys back to my mail
> >         issue. ;-)
> >         > >
> >         > >         Since setObject() is not being called, I don't see
> >         how to
> >         > >         apply my
> >         > >         complex model to its children. I thought I could
> >         pull this off
> >         > >         with
> >         > >         setModel()... but it just ain't being called.
> >         > >
> >         > >
> >         > >         Ok, let's stick with the "person" object. The
> >         person has
> >         > >         attributes, and
> >         > >         one of these attributes may itself have
> >         attributes.
> >         > >
> >         > >         For example:
> >         > >
> >         > >           Person:
> >         > >             isSingle?
> >         > >
> >         > >                 if( isSingle )
> >         > >
> >         > >                   [ ] does dishes?
> >         > >                   [ ] makes bed?
> >         > >
> >         > >                 else
> >         > >
> >         > >                   [ ] has kids?
> >         > >                   [ ] walks dog?
> >         > >
> >         > >         Whatever.
> >         > >
> >         > >         Point is, if the isSingle attribute is "true", I
> >         want to
> >         > >         enable certain
> >         > >         checkboxes and bind those values DIRECTLY to the
> >         model. Same
> >         > >         goes if
> >         > >         isSingle is false.
> >         > >
> >         > >         Right now, I collect a boolean for each value and
> >         set them
> >         > >         back
> >         > >         "manually" into my model, which seems really
> >         messy.
> >         > >
> >         > >         Same thing for enabling/disabling my checkboxes
> >         above: I do
> >         > >         that
> >         > >         "manually" depending on the current value in the
> >         model.
> >         > >
> >         > >
> >         > >         What I'd really like to do is somehow bind all
> >         those controls
> >         > >         directly
> >         > >         to my model so I'm not duplicating parts of the
> >         model for each
> >         > >         control.
> >         > >
> >         > >
> >         > >         Any hints that would enlighten me on how to do
> >         this?
> >         > >
> >         > >
> >         > >         Thanks so much!!
> >         > >
> >         > >
> >         > >
> >         > >         On Mon, 2007-03-12 at 22:58 -0700, Eelco Hillenius
> >         wrote:
> >         > >         > Maybe it is good to gather a couple of use cases
> >         and pros
> >         > >         and cons and
> >         > >         > start a separate thread?
> >         > >         >
> >         > >         > Eelco
> >         > >         >
> >         > >         > On 3/12/07, Igor Vaynberg
> >         <[EMAIL PROTECTED]> wrote:
> >         > >         > > ah, but if you modify a collection that is a
> >         model object
> >         > >         are you infact
> >         > >         > > "changing" the object? you are not changing
> >         the reference
> >         > >         itself but you are
> >         > >         > > doing something that has sideffects.
> >         > >         > >
> >         > >         > > eg lets say you have a dropdown choice, but
> >         what you want
> >         > >         is a collection of
> >         > >         > > ids not the objects. the easiest way is to
> >         have a model in
> >         > >         between that
> >         > >         > > translates a collection of objects to ids and
> >         back again.
> >         > >         but how to do that
> >         > >         > > if setobject() is never called?
> >         > >         > >
> >         > >         > > -igor
> >         > >         > >
> >         > >         > >
> >         > >         > >
> >         > >         > > On 3/12/07, Eelco Hillenius <
> >         [EMAIL PROTECTED]>
> >         > >         wrote:
> >         > >         > > >
> >         > >         > > > If you are not changing the object that is
> >         the subject
> >         > >         of the model, I
> >         > >         > > > see no reason why setObject should be
> >         called.
> >         > >         > > >
> >         > >         > > > Eelco
> >         > >         > > >
> >         > >         > > > On 3/12/07, Igor Vaynberg
> >         <[EMAIL PROTECTED] >
> >         > >         wrote:
> >         > >         > > > > actually we are inconsistent in some
> >         places and i have
> >         > >         been trying to
> >         > >         > > fix
> >         > >         > > > > it. what we mostly do is whenever we work
> >         with a
> >         > >         collection we clear it
> >         > >         > > and
> >         > >         > > > > repopulate it. but we never call
> >         setobject() on the
> >         > >         model which imho is
> >         > >         > > > > wrong. sometimes i have a model in between
> >         that
> >         > >         depends on setobject()
> >         > >         > > > > called whenever a property is updated
> >         because it does
> >         > >         some translation
> >         > >         > > and
> >         > >         > > > > its a lot easier to proxy a model then it
> >         is to proxy
> >         > >         a collection. just
> >         > >         > > my
> >         > >         > > > > 2c.
> >         > >         > > > >
> >         > >         > > > > -igor
> >         > >         > > > >
> >         > >         > > > >
> >         > >         > > > >
> >         > >         > > > > On 3/12/07, Eelco Hillenius
> >         > >         <[EMAIL PROTECTED]> wrote:
> >         > >         > > > > >
> >         > >         > > > > > > > > now all you have to do is
> >         > >         > > > > > > > >
> >         > >         > > > > > > > > LoadableDetachableModel
> >         person=new
> >         > >         LoadalbeDetachableModel(id);
> >         > >         > > > > > > > > new CheckBox(this, "cb", new
> >         > >         PersonCheckBoxModel(person));
> >         > >         > > > > > > > >
> >         > >         > > > > > > > > and everything magically works,
> >         hope it gives
> >         > >         you some ideas.
> >         > >         > > > > > >
> >         > >         > > > > > > Yes, it does indeed give me many
> >         ideas. Right now,
> >         > >         I'm trying to
> >         > >         > > figure
> >         > >         > > > > > > out the implementation details.
> >         > >         > > > > > >
> >         > >         > > > > > > While stepping through the code, I
> >         noticed that
> >         > >         the setObject()
> >         > >         > > method
> >         > >         > > > > > > of my IModel never gets called.
> >         > >         > > > > > >
> >         > >         > > > > > > When is this _supposed_ to be set, and
> >         why would
> >         > >         it not be called in
> >         > >         > > my
> >         > >         > > > > > > case?
> >         > >         > > > > >
> >         > >         > > > > > There's not always a need for setObject
> >         to be
> >         > >         called. I haven't read
> >         > >         > > > > > the whole thread, but in the above
> >         example, you work
> >         > >         on a property
> >         > >         > > > > > ('cb') of the person, so all you have to
> >         do
> >         > >         (probably) is do something
> >         > >         > > > > > with this updated object (like saving
> >         it). You would
> >         > >         only do setObject
> >         > >         > > > > > when you would provide a new person, and
> >         when the
> >         > >         getObject
> >         > >         > > > > > implementation wouldn't take care of
> >         that.
> >         > >         > > > > >
> >         > >         > > > > > Personally, I rarely use/ depend on
> >         setObject as
> >         > >         working with
> >         > >         > > > > > properties of objects is a very typical
> >         thing to
> >         > >         do.
> >         > >         > > > > >
> >         > >         > > > > > Hope this makes sense,
> >         > >         > > > > >
> >         > >         > > > > > Eelco
> >         > >         > > > > >
> >         > >         > > > > >
> >         > >         > > > >
> >         > >         > >
> >         > >
> >
-- 
Download Wicket 1.2.5 now! - http://wicketframework.org

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to