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
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > >
>
> -------------------------------------------------------------------------
> > > > > > > > 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
> > > > > > > > [email protected]
> > > > > > > >
> > > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > >
>
> -------------------------------------------------------------------------
> > > > > > > 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
> > > > > > > [email protected]
> > > > > > >
> > > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > >
>
> -------------------------------------------------------------------------
> > > > > > 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
> > > > > > [email protected]
> > > > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > > >
> > > > >
> > > > >
> > > > >
> > >
>
> -------------------------------------------------------------------------
> > > > > 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
> > > > > [email protected]
> > > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > >
> > > > >
> > > >
> > > >
> > >
>
> -------------------------------------------------------------------------
> > > > 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
> > > > [email protected]
> > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> > >
> > >
>
> -------------------------------------------------------------------------
> > > 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
> > > [email protected]
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> >
> >
> >
>
> -------------------------------------------------------------------------
> > 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
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user