There's a bit of magic going on.  Most of your parameters will be null
except when you have a break point inside code during the rendering of the
component.  Further, some of your code will have to read a value from a
parameter field for the field to get filled in.

Basically, the first time you have code that reads a field value, the
binding object for that field will be invoked to provide the value, and that
value will be stuff into the field.

Of course, there's a lot of caching that can go on as well, especially for
string literals and other invariant values.

On 10/14/07, Michael Gerzabek <[EMAIL PROTECTED]> wrote:
>
>
> Thanks for the advice. I also planned to follow the first path you
> outlined.
>
> It just cost me some time to get familiar with the concept of the inner
> live
> of forms in T5 and I wanted to make a rapid prototype before I would step
> into the definition of a service which is another new area of T5 to me.
>
> But beside this I cannot understand why the parameters from the page are
> not
> filled. I debugged my component and they are all null although the
> ComponentResources _bindings have it. I have no idea why or where to look.
>
> What do I miss?
>
> Michael
>
>
> Howard Lewis Ship wrote:
> >
> > I would avoid the use of static maps for tracking the radio groups.  In
> > addition, static will be shared between threads, so you have code that
> > will
> > likely break in production.
> >
> > In my book, static should always be stateless.
> >
> > You have two approaches that work better (and are more testable):
> > - Define a service with scope "perthread" as a wrapper around this map
> > - Define your own Environmental object.  You can make a contribution to
> > the
> > PageRenderInitializer service to get your environmental object set up.
> >
> > Generally when you think "I wish PageRenderSupport had such and such a
> > method" you can accomplish the same thing by defining your own
> > environmental.
> >
> >
> > On 10/14/07, Michael Gerzabek <[EMAIL PROTECTED]> wrote:
> >>
> >> Sorry, you're right: The component is basically a compilation of Radio
> >> and RadioGroup. I use a static Map to secure the unique names of
> >> [EMAIL PROTECTED]'s. In setupRender() I prepare the environment in
> >> cleanupRender() I wrap it up.
> >>
> >> Here's the code ...
> >>
> >> public class Radio implements Field {
> >>
> >>     @Parameter(required = false, defaultPrefix = "literal")
> >>     private String _id;
> >>     private String _clientId;
> >>
> >>     @Parameter(defaultPrefix = "literal")
> >>     private String _label;
> >>
> >>     @Parameter("false")
> >>     private boolean _disabled;
> >>
> >>     @Parameter(required = false)
> >>     private ValueEncoder _encoder;
> >>
> >>     @Parameter(required = true, principal = true,
> >> defaultPrefix="literal")
> >>     private Object _value;
> >>
> >>     @Parameter(required = true, defaultPrefix="literal")
> >>     private String _name;
> >>
> >
>
> --
> View this message in context:
> http://www.nabble.com/-T5--RadioGroup-tf4617856.html#a13202352
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Howard M. Lewis Ship
Partner and Senior Architect at Feature50

Creator Apache Tapestry and Apache HiveMind

Reply via email to