Component.initModel() calls getParent() and it returns null.  I guess
that makes sense because the child hasn't been added to the parent
yet.  That happens after the child constructor has finished.

So how would I do this?

Tauren



On 7/9/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> On 7/9/07, Tauren Mills <[EMAIL PROTECTED]> wrote:
>
> > I'm confused on how to access a CompoundPropertyModel from within a
> > child Panel. I set a CompountPropertyModel in a parent panel.  But
> > doing a getModel() in the child panel returns null.  I thought that
> > wicket would hunt back up the component tree to find an appropriate
> > CompountPropertyModel.  How should I do this?
> >
> > Here is the parent, where I set the CPM:
> >
> > public class RatingDisplayPanel extends Panel {
> >         public RatingDisplayPanel(String id, RatingsModel ratings) {
> >                 super(id);
> >                 setModel(new
> CompoundPropertyModel(ratings));
> >                 add(new StarDisplay("facility", RatingBean.STARS));
> >         }
> > }
> >
> > Here is the child, where I do a getModel() and it returns null:
> >
> > public class StarDisplay extends Panel {
> >
> >         private int width = 0;
> >
> >         public StarDisplay(String id, List choices) {
> >                 super(id);
> >                 int size = 0;
> >                 if (choices != null) {
> >                         size = choices.size();
> >                         if (getModel() != null) {
> >                                 index =
> choices.indexOf(getModel().getObject(this));
> >                         }
> >                         this.width = (index + 1)*100/size;
> >                         WebMarkupContainer on = new
> WebMarkupContainer("on");
> >                         on.add(new AttributeModifier("style", true, new
> Model() {
> >                                 public Object
> getObject(final Component component) {
> >                                         return "width:
> "+width+"%";
> >                                 }
> >                         }));
> >                         add(on);
> >                 }
> >         }
> > }
> >
> > I have it working right now by passing the model like this, but I want
> > to simplify the code in my parent panel:
> >
> > add(new StarDisplay("facility", new PropertyModel(ratings,
> > "facility"), RatingBean.STARS));
> >
> > I thought perhaps I should use getNestedModel(), but it doesn't exist
> > in a panel.  Any help is appreciated!
>
>
> seems like it should work, can you walk the code and see why getmodel()
> returns null?
>
> -igor
>
>
> > Tauren
> >
> >
> -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to