Christi,

yes I forgot, that I renamed the method :-)
We now *decorate* the HTML_BASIC (see log of the class)
We currently only replace these three.

I am not really sure, it it works without that...
There might be some issues...

Can you do me a favor ?
check with RI 1.2_07 ?
(they changed something on renderKit loading etc. there)

If it works fine for you there, I'll check again with our internal things,
and I'll finally remove that code.

Thanks!

-M

On Thu, Apr 10, 2008 at 10:57 AM,  <[EMAIL PROTECTED]> wrote:
> hi, this is where I found out what happens exactly:
>
>   //
>   // This RenderKit decorates the standard BASIC_HTML,
>   // but we need to replace some renderers with our own.
>   //
>   private void _modifyBasicHTMLRenderKit()
>   {
>     // We render UIForms with our own renderer
>     addRenderer(UIForm.COMPONENT_FAMILY,
>                 "javax.faces.Form",
>                 new HtmlFormRenderer());
>     // And we render UICommandLink with our own renderer
>     addRenderer(UICommand.COMPONENT_FAMILY,
>                 "javax.faces.Link",
>                 new HtmlCommandLinkRenderer());
>     // In jsf 1.1_02 the ri FormRenderer writes out script used by
>     // h:commandButton. Since we override the RI FormRenderer, we also
>     // need to override the commandButton renderer:
>     addRenderer(UICommand.COMPONENT_FAMILY,
>                 "javax.faces.Button",
>                 new HtmlCommandButtonRenderer());
>   }
>
>  If you say now it should work, can we remove it ?
>  at least for 1.2 version.
>
>  thanks for the support
>
>
>
>
>  On 4/10/08, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
>  > whoops...
>  > shitty Gmail...
>  >
>  > On Thu, Apr 10, 2008 at 10:20 AM, Matthias Wessendorf <[EMAIL PROTECTED]>
>  > wrote:
>  > > > I found something surprising, while working on a Tomahawk application,
>  > in
>  > >  > which I added Trinidad for a couple of components.
>  > >  > Trinidad overrides default renderers of some  javax.faces.* components
>  > like
>  > >  > Form, HtmlCommandButton and HtmlCommandLink.
>  > >
>  > >  indeed.
>  > >
>  > >  >
>  > >  > Why is this needed?
>  > >
>  > >  because the JSF spec is poor ?
>  > >  Well... :) These component details know to much abo
>  > they know to much about the other details (at least in the past).
>  >
>  > like the way they render.
>  > Perhaps solved now, but I never looked at that.
>  > Perhaps you may check in CoreRenderKit's _addHtmlBasic() ?
>  >
>  > Thx
>  >
>  > >
>  > >
>  > >
>  > >  > I noticed it adds some custom scripts.
>  > >  > BUT why should it be so intrusive in the default renderers?
>  > >  >
>  > >  > The problem that made me find this was that I got some exceptions in
>  > the
>  > >  > tomahawk PPR.
>  > >  >  Except on some pages, the only Trinidad component I use is 
> tr:document
>  > to
>  > >  > have the skinning enabled.
>  > >  > I definitely expect for the Tomahawk PPR within a h:form and 
> containing
>  > an
>  > >  > h:commandButton to work.
>  > >  >
>  > >  > i got this stack trace on a PPR submit:
>  > >  >
>  > >  > javax.faces.FacesException: Exception while calling encodeEnd on
>  > component :
>  > >  > {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId:
>  > >  > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
>  > >  > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
>  > j_id1][Class:
>  > >  > javax.faces.component.html.HtmlForm,Id: mform][Class:
>  > >  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
>  > >  > moduleEditTab][Class:
>  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
>  > >  > childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
>  > >  > pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
>  > >  > j_id174]}
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:420)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:401)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.custom.ppr.PPRPanelGroupRenderer.encodeChildren(PPRPanelGroupRenderer.java:93)
>  > >  >         at
>  > >  >
>  > 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:543)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.custom.ppr.PPRPhaseListener.encodeTriggeredComponents(PPRPhaseListener.java:288)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.custom.ppr.PPRPhaseListener.processPartialPageRequest(PPRPhaseListener.java:169)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.custom.ppr.PPRPhaseListener.beforePhase(PPRPhaseListener.java:94)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:73)
>  > >  >         at
>  > >  >
>  > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:134)
>  > >  >         at
>  > javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
>  > >  >         at
>  > >  >
>  > org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:100)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> com.db.gto.coo.itsg.gui.login.LoginFilter.doHttpFilter(LoginFilter.java:131)
>  > >  >         at
>  > >  >
>  > 
> com.db.gto.coo.itsg.gui.filter.SpringJSFFilterBase.doFilter(SpringJSFFilterBase.java:47)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:226)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
>  > >  >         at
>  > >  >
>  > 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
>  > >  >         at
>  > >  >
>  > 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>  > >  >         at
>  > >  >
>  > 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  > >  >         at
>  > >  >
>  > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>  > >  >         at
>  > >  >
>  > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>  > >  >         at
>  > >  >
>  > 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>  > >  >         at
>  > >  > 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>  > >  >         at java.lang.Thread.run(Thread.java:619)
>  > >  > Caused by: javax.faces.FacesException: Exception while calling
>  > encodeEnd on
>  > >  > component : {Component-Path : [Class:
>  > >  > javax.faces.component.UIViewRoot,ViewId:
>  > >  > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
>  > >  > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
>  > j_id1][Class:
>  > >  > javax.faces.component.html.HtmlForm,Id: mform][Class:
>  > >  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
>  > >  > moduleEditTab][Class:
>  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
>  > >  > childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
>  > >  > pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
>  > >  > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
>  > >  > questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id:
>  > j_id181]}
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:515)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:513)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:92)
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
>  > >  >         ... 41 more
>  > >  > Caused by: javax.faces.FacesException: Exception while calling
>  > encodeEnd on
>  > >  > component : {Component-Path : [Class:
>  > >  > javax.faces.component.UIViewRoot,ViewId:
>  > >  > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
>  > >  > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
>  > j_id1][Class:
>  > >  > javax.faces.component.html.HtmlForm,Id: mform][Class:
>  > >  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
>  > >  > moduleEditTab][Class:
>  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
>  > >  > childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
>  > >  > pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
>  > >  > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
>  > >  > questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id:
>  > >  > j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id: 
> j_id191]}
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:515)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:221)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:102)
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
>  > >  >         ... 47 more
>  > >  > Caused by: javax.faces.FacesException: Exception while calling
>  > encodeBegin
>  > >  > on component : {Component-Path : [Class:
>  > >  > javax.faces.component.UIViewRoot,ViewId:
>  > >  > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
>  > >  > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
>  > j_id1][Class:
>  > >  > javax.faces.component.html.HtmlForm,Id: mform][Class:
>  > >  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
>  > >  > moduleEditTab][Class:
>  > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
>  > >  > childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
>  > >  > pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
>  > >  > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
>  > >  > questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id:
>  > >  > j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id:
>  > >  > j_id191][Class: javax.faces.component.html.HtmlCommandButton,Id:
>  > >  > questionSave]}
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:531)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:506)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:92)
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
>  > >  >         ... 51 more
>  > >  > Caused by: java.lang.NullPointerException
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.AutoSubmitUtils.getFullPageSubmitScript(AutoSubmitUtils.java:105)
>  > >  >         at
>  > >  >
>  > 
> org.apache.myfaces.trinidadinternal.renderkit.htmlBasic.HtmlCommandButtonRenderer.encodeBegin(HtmlCommandButtonRenderer.java:99)
>  > >  >         at
>  > >  >
>  > javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:528)
>  > >  >         ... 55 more
>  > >  >
>  > >  > --
>  > >  > 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
>  >
>
>
>  --
>
>
> 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

Reply via email to