I thought a little bit more about the renderer composition idea and there
are some things to address.

Currently, when we create a renderer using a delegation model, it often look
like the following:

public class MyMainRenderer extends XhtmlRenderer
{
  private Renderer partRenderer;

  protected void findTypeContants(FacesBean.Type type)
  {
    partRenderer = new TheSpecificDelegateRenderer(type);
  }

  private class TheSpecificDelegateRenderer extends TheBaseDelegateRenderer
  {
    public TheSpecificDelegateRenderer(FacesBean.Type type)
    {
      super(type);
    }
  }
}

public class TheBaseDelegateRenderer extends XhtmlRenderer
{
  protected TheBaseDelegateRenderer(FacesBean.Type type)
  {
    super(type);
  }
}

Given we now want to define the composition renderers within faces-config,
it makes the previous way quite hard to deal with. We're most likely have to
locate the renderer using

context.getRenderKit().getRenderer(componentFamily, rendererType);


I see two problems with this:

1. What naming convention should we use for the component families and
renderer types? That one is more a point to address than a problem;
2. How do we privately extends those renderer like
TheSpecificDelegateRenderer does? I see no way and it's quite critic as some
renderers use that pattern in order to inhibit a given property or to infer
it from a different attribute of the original component. Well, saying that I
see no way is not exactly true. It could be possible to have those renderers
implement an interface defining a clone method (a bit like TypedRenderer)
receiving a kind of Accessors object to get its attribute values from.
However, I'm a bit wary of the performance impact of such structure and it
wouldn't necessarily fix all issues either. Anyone has any idea how to deal
with that?


Regards,

~ Simon


On Mon, Apr 14, 2008 at 10:22 AM, Matthias Wessendorf <[EMAIL PROTECTED]>
wrote:

> On Mon, Apr 14, 2008 at 3:54 PM, Andrew Robinson
> <[EMAIL PROTECTED]> wrote:
> > Yes, I understand, but when one mailing list member is holding up
> >  progress by providing only negative, non-constructive feedback and
> >  even admits that his own branch of the thread has ceased to be useful,
>
> perhaps due to my lack of English these comments didn't sound that
> "non-constructive" I understood them as a valid concerns, which IMO
> legitimate to share them. BTW. here is an interesting FAQ ([1])
>
> >  it is important to be able to let the other members of the community
> >  have a say. This was the only way to stop unnecessary bickering from
>
> I still don't like stopping contribtions that way...
>  ...and we should keep the "discussion" open....
>
> >  going on without end. As long as people are contributing helpful
> >  feedback and are attempting to further the discussion and help make
> >  proposals on how to fix problems, instead of just making negative
> >  comments on how people work, then that feedback is welcome.
>
>
> -Matthias
> [1] http://wicket.sourceforge.net/faqs.html#why-final
>
> >
> >
> >
> >  On 4/14/08, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> >  > On Fri, Apr 11, 2008 at 9:04 PM, Andrew Robinson
> >  > <[EMAIL PROTECTED]> wrote:
> >  > >  If you are not a member of MyFaces, Committer or PMC member please
> >  > >  refrain from further reply to this thread as your feedback has
> already
> >  > >  been noted.
> >  >
> >  > as an asf member I really don't like statements like that...
> >  > a strong community builds a strong product so, why not
> >  > listening to contributors?
> >  >
> >  > -M
> >  >
> >  > >
> >  > >  Thank you,
> >  > >  Andrew
> >  > >
> >  > >
> >  > >
> >  > >
> >  > >  On Wed, Apr 9, 2008 at 6:23 PM, Cristi Toth <[EMAIL PROTECTED]
> >
> >  > wrote:
> >  > >  > Hi guys,
> >  > >  >
> >  > >  > A lot of Trinidad renderers have some "override useful" methods
> as
> >  > private
> >  > >  > or protected final.
> >  > >  > This makes customizing renderers a nasty job.
> >  > >  >
> >  > >  > - first these methods obviously can't be overriden
> >  > >  >  - then when trying to override some public/protected methods,
> >  > >  >   it's hard because they use other private methods that you
> can't use
> >  > in
> >  > >  > your overriden method
> >  > >  >
> >  > >  > I assume this come from the fact that Trinidad wasn't
> open-source in
> >  > its
> >  > >  > origins... or?
> >  > >  >  Do we still have reasons to keep it this way?
> >  > >  >
> >  > >  > IMO we could make those protected final "override useful"
> methods to
> >  > >  > protected
> >  > >  > and the private methods used in those methods, make them
> protected
> >  > final.
> >  > >  >
> >  > >  > What's you opinion on this?
> >  > >  >
> >  > >  > Regards,
> >  > >  > --
> >  > >  > Cristi Toth
> >  > >  >
> >  > >  > -------------
> >  > >  > Codebeat
> >  > >  > www.codebeat.ro
> >  > >
> >  >
> >  >
> >  >
> >  > --
> >  > Matthias Wessendorf
> >  >
> >  > further stuff:
> >  > blog: http://matthiaswessendorf.wordpress.com/
> >  > sessions: http://www.slideshare.net/mwessendorf
> >  > mail: matzew-at-apache-dot-org
> >  >
> >
>
>
>
> --
> Matthias Wessendorf
>
> further stuff:
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> mail: matzew-at-apache-dot-org
>

Reply via email to