You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Rottstock, Sven" <Sv...@sungard.de> on 2008/03/13 22:32:52 UTC

AW: [Trinidad] commandNavigationItem and icon

Hi Matthias,

i have fixed the issue in my project. I have just added the following lines of code in the NavigationPaneRenderer (method: _writeItemLink):

for(UIComponent child : (List<UIComponent>)commandChild.getChildren())
{
    if (child instanceof UIXComponentBase)
    {
        RendererUtils.renderChild(FacesContext.getCurrentInstance(), child);
    }
}

Do you see any troubles with it? If no - is it (perhaps) possible to add this in further releases? With it any nested Trinidad components should be rendered in the commandNavigationItem e.g. the tr:icon element. I think it is very useful, isn't it?

Regards,

Sven
  

> 
_______________________________

Think before you print
CONFIDENTIALITY: This e-mail (including any attachments) may contain confidential, proprietary and privileged information, and unauthorized disclosure or use is prohibited.  If you receive this e-mail in error, please notify the sender and delete this e-mail from your system.

SunGard CARNOT GmbH * Registered: Frankfurt am Main, Handelsregister Frankfurt HRB 79504 * Geschäftsführer: Harold Finders, Dr. Marc Gille, Dr. Dirk Lüth, Michael J. Ruane, Victoria Elizabeth Silbey





-----Ursprüngliche Nachricht-----
> Von: Rottstock, Sven [mailto:Sven.Rottstock@sungard.de] 
> Gesendet: Dienstag, 26. Februar 2008 10:25
> An: MyFaces Discussion
> Betreff: AW: [Trinidad] commandNavigationItem and icon
> 
> yep - here is the stack trace if you haven't set the text attribute:
> 
> SCHWERWIEGEND: Error Rendering View[/tab1.jspx] 
> java.lang.NullPointerException
> 	at 
> org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.
> java:171)
> 	at 
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
> e(HtmlResponseWriter.java:340)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
> .write(IndentingResponseWriter.java:142)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
> te(DebugResponseWriter.java:124)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at com.sun.facelets.StateWriter.write(StateWriter.java:116)
> 	at 
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
> e(HtmlResponseWriter.java:340)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
> .write(IndentingResponseWriter.java:142)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
> te(DebugResponseWriter.java:124)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer._writeItemLink(NavigationPaneRenderer.java:661)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.appendIconAndText(NavigationPaneRenderer.java:550)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.renderNonOverlappingItem(NavigationPaneRende
> rer.java:883)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer._renderNavigationItem(NavigationPaneRenderer
> .java:474)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.renderContent(NavigationPaneRenderer.java:251)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.encodeAll(NavigationPaneRenderer.java:97)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(
> UIXCollection.java:525)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
> reRenderer.java:299)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer.encodeChild(PanelHorizontalLayoutRend
> erer.java:172)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer._encodeChildren(PanelHorizontalLayout
> Renderer.java:155)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer.encodeAll(PanelHorizontalLayoutRender
> er.java:85)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive
> (RenderUtils.java:68)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
> reRenderer.java:294)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChild
> ren(CoreRenderer.java:316)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> PartialRootRenderer.renderContent(PanelPartialRootRenderer.java:64)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
> enderer.renderContent(BodyRenderer.java:139)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> PartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:119)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
> enderer.encodeAll(BodyRenderer.java:79)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.delegateRender
> er(CoreRenderer.java:330)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Docum
> entRenderer.encodeAll(DocumentRenderer.java:80)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
> onentSupport.java:252)
> 	at 
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
> onentSupport.java:249)
> 	at 
> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHand
> ler.java:594)
> 	at 
> org.apache.myfaces.trinidadinternal.application.ViewHandlerImp
> l.renderView(ViewHandlerImpl.java:182)
> 	at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(Re
> nderResponseExecutor.java:41)
> 	at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImp
> l.java:132)
> 	at 
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:269)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:188)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> _invokeDoFilter(TrinidadFilterImpl.java:253)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> _doFilterImpl(TrinidadFilterImpl.java:210)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> doFilter(TrinidadFilterImpl.java:164)
> 	at 
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(Tri
> nidadFilter.java:92)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:215)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:188)
> 	at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:210)
> 	at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:174)
> 	at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:127)
> 	at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:117)
> 	at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:108)
> 	at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
> ter.java:151)
> 	at 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:870)
> 	at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa
> ndler.processConnection(Http11BaseProtocol.java:665)
> 	at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
> cpEndpoint.java:528)
> 	at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
> aderFollowerWorkerThread.java:81)
> 	at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:685)
> 	at java.lang.Thread.run(Thread.java:595) 
> 
> 
> Unfortunately i get no stack trace if you have set an empty 
> text attribute. Nevertheless the icon wouldn't be rendered. 
> Here is a short code snippet again which i have used for the 
> stack trace:
> 
> <tr:navigationPane hint="buttons">
>     <tr:commandNavigationItem action="myBean.doAction">
>         <tr:icon name="commandNav"/>
>     </tr:commandNavigationItem>
> </tr:navigationPane>
> 
> By the way: I'm using Trinidad 1.0.5 and Facelets 1.1.14.
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] Im 
> Auftrag von Matthias Wessendorf
> Gesendet: Dienstag, 26. Februar 2008 09:49
> An: MyFaces Discussion
> Betreff: Re: [Trinidad] commandNavigationItem and icon
> 
> can you show the stack trace ?
> 
> -M
> 
> On Tue, Feb 26, 2008 at 9:31 AM, Rottstock, Sven 
> <Sv...@sungard.de> wrote:
> > Hi list,
> >
> >  i have any troubles with a commandNavigationItem specially 
> if you put 
> > an  icon as a nested element inside the navigation item. 
> The following 
> > code  snippet works well:
> >
> >  <tr:commandNavigationItem action="#{bean.doAction}">
> >    <tr:icon name="icon"/>
> >  </tr:commandNavigationItem>
> >
> >  BUT if you surround the item with a navigationPane a 
> > NullPointerException is thrown. After adding an empty text 
> attribute 
> > the  exception is gone. So far so good. But with the described 
> > construction  the icon is no longer rendered.
> >
> >  Does anybody know if it is the expected behaviour or is it 
> even a bug?
> >
> >  Any hints would be greatly appreciated!
> >
> >  Best Regards,
> >
> >  Sven
> >
> 
> 
> 
> --
> Matthias Wessendorf
> 
> further stuff:
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> mail: matzew-at-apache-dot-org
> 


Re: [Trinidad] commandNavigationItem and icon

Posted by Matthias Wessendorf <ma...@apache.org>.
Thanks!

On Mon, Mar 17, 2008 at 5:14 PM, Rottstock, Sven
<Sv...@sungard.de> wrote:
> Hi,
>
>  i just want let you know that i have created a JIRA issue (https://issues.apache.org/jira/browse/TRINIDAD-1010) and that i have also provided a patch.
>
>
>  Regards,
>
>  Sven
>
>
>  _______________________________
>
>  Think before you print
>  CONFIDENTIALITY: This e-mail (including any attachments) may contain confidential, proprietary and privileged information, and unauthorized disclosure or use is prohibited.  If you receive this e-mail in error, please notify the sender and delete this e-mail from your system.
>
>  SunGard CARNOT GmbH * Registered: Frankfurt am Main, Handelsregister Frankfurt HRB 79504 * Geschäftsführer: Harold Finders, Dr. Marc Gille, Dr. Dirk Lüth, Michael J. Ruane, Victoria Elizabeth Silbey
>
>
>
>
>
>  -----Ursprüngliche Nachricht-----
>  Von: Rottstock, Sven [mailto:Sven.Rottstock@sungard.de]
>  Gesendet: Do 13.03.2008 22:32
>
> An: MyFaces Discussion
>  Betreff: AW: [Trinidad] commandNavigationItem and icon
>
>
> Hi Matthias,
>
>  i have fixed the issue in my project. I have just added the following lines of code in the NavigationPaneRenderer (method: _writeItemLink):
>
>  for(UIComponent child : (List<UIComponent>)commandChild.getChildren())
>  {
>     if (child instanceof UIXComponentBase)
>     {
>         RendererUtils.renderChild(FacesContext.getCurrentInstance(), child);
>     }
>  }
>
>  Do you see any troubles with it? If no - is it (perhaps) possible to add this in further releases? With it any nested Trinidad components should be rendered in the commandNavigationItem e.g. the tr:icon element. I think it is very useful, isn't it?
>
>  Regards,
>
>  Sven
>
>
>  >
>
>
>
>
> -----Ursprüngliche Nachricht-----
>  > Von: Rottstock, Sven [mailto:Sven.Rottstock@sungard.de]
>  > Gesendet: Dienstag, 26. Februar 2008 10:25
>  > An: MyFaces Discussion
>  > Betreff: AW: [Trinidad] commandNavigationItem and icon
>  >
>  > yep - here is the stack trace if you haven't set the text attribute:
>  >
>  > SCHWERWIEGEND: Error Rendering View[/tab1.jspx]
>  > java.lang.NullPointerException
>  >       at
>  > org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.
>  > java:171)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
>  > e(HtmlResponseWriter.java:340)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
>  > .write(IndentingResponseWriter.java:142)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
>  > te(DebugResponseWriter.java:124)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at com.sun.facelets.StateWriter.write(StateWriter.java:116)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
>  > e(HtmlResponseWriter.java:340)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
>  > .write(IndentingResponseWriter.java:142)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
>  > te(DebugResponseWriter.java:124)
>  >       at
>  > org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
>  > .write(ResponseWriterDecorator.java:153)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer._writeItemLink(NavigationPaneRenderer.java:661)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer.appendIconAndText(NavigationPaneRenderer.java:550)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer.renderNonOverlappingItem(NavigationPaneRende
>  > rer.java:883)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer._renderNavigationItem(NavigationPaneRenderer
>  > .java:474)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer.renderContent(NavigationPaneRenderer.java:251)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
>  > ationPaneRenderer.encodeAll(NavigationPaneRenderer.java:97)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
>  > Renderer.java:220)
>  >       at
>  > org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
>  > nd(UIXComponentBase.java:711)
>  >       at
>  > org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(
>  > UIXCollection.java:525)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
>  > reRenderer.java:299)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
>  > HorizontalLayoutRenderer.encodeChild(PanelHorizontalLayoutRend
>  > erer.java:172)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
>  > HorizontalLayoutRenderer._encodeChildren(PanelHorizontalLayout
>  > Renderer.java:155)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
>  > HorizontalLayoutRenderer.encodeAll(PanelHorizontalLayoutRender
>  > er.java:85)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
>  > Renderer.java:220)
>  >       at
>  > org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
>  > nd(UIXComponentBase.java:711)
>  >       at
>  > org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive
>  > (RenderUtils.java:68)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
>  > reRenderer.java:294)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChild
>  > ren(CoreRenderer.java:316)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
>  > PartialRootRenderer.renderContent(PanelPartialRootRenderer.java:64)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
>  > enderer.renderContent(BodyRenderer.java:139)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
>  > PartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:119)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
>  > enderer.encodeAll(BodyRenderer.java:79)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.delegateRender
>  > er(CoreRenderer.java:330)
>  >       at
>  > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Docum
>  > entRenderer.encodeAll(DocumentRenderer.java:80)
>  >       at
>  > org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
>  > Renderer.java:220)
>  >       at
>  > org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
>  > nd(UIXComponentBase.java:711)
>  >       at
>  > com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
>  > onentSupport.java:252)
>  >       at
>  > com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
>  > onentSupport.java:249)
>  >       at
>  > com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHand
>  > ler.java:594)
>  >       at
>  > org.apache.myfaces.trinidadinternal.application.ViewHandlerImp
>  > l.renderView(ViewHandlerImpl.java:182)
>  >       at
>  > org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(Re
>  > nderResponseExecutor.java:41)
>  >       at
>  > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImp
>  > l.java:132)
>  >       at
>  > javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
>  >       at
>  > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>  > er(ApplicationFilterChain.java:269)
>  >       at
>  > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>  > cationFilterChain.java:188)
>  >       at
>  > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
>  > _invokeDoFilter(TrinidadFilterImpl.java:253)
>  >       at
>  > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
>  > _doFilterImpl(TrinidadFilterImpl.java:210)
>  >       at
>  > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
>  > doFilter(TrinidadFilterImpl.java:164)
>  >       at
>  > org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(Tri
>  > nidadFilter.java:92)
>  >       at
>  > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
>  > er(ApplicationFilterChain.java:215)
>  >       at
>  > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
>  > cationFilterChain.java:188)
>  >       at
>  > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
>  > rapperValve.java:210)
>  >       at
>  > org.apache.catalina.core.StandardContextValve.invoke(StandardC
>  > ontextValve.java:174)
>  >       at
>  > org.apache.catalina.core.StandardHostValve.invoke(StandardHost
>  > Valve.java:127)
>  >       at
>  > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
>  > Valve.java:117)
>  >       at
>  > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
>  > gineValve.java:108)
>  >       at
>  > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
>  > ter.java:151)
>  >       at
>  > org.apache.coyote.http11.Http11Processor.process(Http11Process
>  > or.java:870)
>  >       at
>  > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa
>  > ndler.processConnection(Http11BaseProtocol.java:665)
>  >       at
>  > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
>  > cpEndpoint.java:528)
>  >       at
>  > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
>  > aderFollowerWorkerThread.java:81)
>  >       at
>  > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
>  > ThreadPool.java:685)
>  >       at java.lang.Thread.run(Thread.java:595)
>  >
>  >
>  > Unfortunately i get no stack trace if you have set an empty
>  > text attribute. Nevertheless the icon wouldn't be rendered.
>  > Here is a short code snippet again which i have used for the
>  > stack trace:
>  >
>  > <tr:navigationPane hint="buttons">
>  >     <tr:commandNavigationItem action="myBean.doAction">
>  >         <tr:icon name="commandNav"/>
>  >     </tr:commandNavigationItem>
>  > </tr:navigationPane>
>  >
>  > By the way: I'm using Trinidad 1.0.5 and Facelets 1.1.14.
>  >
>  >
>  > -----Ursprüngliche Nachricht-----
>  > Von: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] Im
>  > Auftrag von Matthias Wessendorf
>  > Gesendet: Dienstag, 26. Februar 2008 09:49
>  > An: MyFaces Discussion
>  > Betreff: Re: [Trinidad] commandNavigationItem and icon
>  >
>  > can you show the stack trace ?
>  >
>  > -M
>  >
>  > On Tue, Feb 26, 2008 at 9:31 AM, Rottstock, Sven
>  > <Sv...@sungard.de> wrote:
>  > > Hi list,
>  > >
>  > >  i have any troubles with a commandNavigationItem specially
>  > if you put
>  > > an  icon as a nested element inside the navigation item.
>  > The following
>  > > code  snippet works well:
>  > >
>  > >  <tr:commandNavigationItem action="#{bean.doAction}">
>  > >    <tr:icon name="icon"/>
>  > >  </tr:commandNavigationItem>
>  > >
>  > >  BUT if you surround the item with a navigationPane a
>  > > NullPointerException is thrown. After adding an empty text
>  > attribute
>  > > the  exception is gone. So far so good. But with the described
>  > > construction  the icon is no longer rendered.
>  > >
>  > >  Does anybody know if it is the expected behaviour or is it
>  > even a bug?
>  > >
>  > >  Any hints would be greatly appreciated!
>  > >
>  > >  Best Regards,
>  > >
>  > >  Sven
>  > >
>  >
>  >
>  >
>  > --
>  > 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

AW: [Trinidad] commandNavigationItem and icon

Posted by "Rottstock, Sven" <Sv...@sungard.de>.
Hi,

i just want let you know that i have created a JIRA issue (https://issues.apache.org/jira/browse/TRINIDAD-1010) and that i have also provided a patch.

Regards,

Sven


_______________________________

Think before you print
CONFIDENTIALITY: This e-mail (including any attachments) may contain confidential, proprietary and privileged information, and unauthorized disclosure or use is prohibited.  If you receive this e-mail in error, please notify the sender and delete this e-mail from your system.

SunGard CARNOT GmbH * Registered: Frankfurt am Main, Handelsregister Frankfurt HRB 79504 * Geschäftsführer: Harold Finders, Dr. Marc Gille, Dr. Dirk Lüth, Michael J. Ruane, Victoria Elizabeth Silbey





-----Ursprüngliche Nachricht-----
Von: Rottstock, Sven [mailto:Sven.Rottstock@sungard.de]
Gesendet: Do 13.03.2008 22:32
An: MyFaces Discussion
Betreff: AW: [Trinidad] commandNavigationItem and icon
 
Hi Matthias,

i have fixed the issue in my project. I have just added the following lines of code in the NavigationPaneRenderer (method: _writeItemLink):

for(UIComponent child : (List<UIComponent>)commandChild.getChildren())
{
    if (child instanceof UIXComponentBase)
    {
        RendererUtils.renderChild(FacesContext.getCurrentInstance(), child);
    }
}

Do you see any troubles with it? If no - is it (perhaps) possible to add this in further releases? With it any nested Trinidad components should be rendered in the commandNavigationItem e.g. the tr:icon element. I think it is very useful, isn't it?

Regards,

Sven
  

> 


-----Ursprüngliche Nachricht-----
> Von: Rottstock, Sven [mailto:Sven.Rottstock@sungard.de] 
> Gesendet: Dienstag, 26. Februar 2008 10:25
> An: MyFaces Discussion
> Betreff: AW: [Trinidad] commandNavigationItem and icon
> 
> yep - here is the stack trace if you haven't set the text attribute:
> 
> SCHWERWIEGEND: Error Rendering View[/tab1.jspx] 
> java.lang.NullPointerException
> 	at 
> org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.
> java:171)
> 	at 
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
> e(HtmlResponseWriter.java:340)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
> .write(IndentingResponseWriter.java:142)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
> te(DebugResponseWriter.java:124)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at com.sun.facelets.StateWriter.write(StateWriter.java:116)
> 	at 
> org.apache.myfaces.trinidadinternal.io.HtmlResponseWriter.writ
> e(HtmlResponseWriter.java:340)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.IndentingResponseWriter
> .write(IndentingResponseWriter.java:142)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.io.DebugResponseWriter.wri
> te(DebugResponseWriter.java:124)
> 	at 
> org.apache.myfaces.trinidadinternal.io.ResponseWriterDecorator
> .write(ResponseWriterDecorator.java:153)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer._writeItemLink(NavigationPaneRenderer.java:661)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.appendIconAndText(NavigationPaneRenderer.java:550)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.renderNonOverlappingItem(NavigationPaneRende
> rer.java:883)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer._renderNavigationItem(NavigationPaneRenderer
> .java:474)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.renderContent(NavigationPaneRenderer.java:251)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Navig
> ationPaneRenderer.encodeAll(NavigationPaneRenderer.java:97)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(
> UIXCollection.java:525)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
> reRenderer.java:299)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer.encodeChild(PanelHorizontalLayoutRend
> erer.java:172)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer._encodeChildren(PanelHorizontalLayout
> Renderer.java:155)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> HorizontalLayoutRenderer.encodeAll(PanelHorizontalLayoutRender
> er.java:85)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive
> (RenderUtils.java:68)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(Co
> reRenderer.java:294)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChild
> ren(CoreRenderer.java:316)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> PartialRootRenderer.renderContent(PanelPartialRootRenderer.java:64)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
> enderer.renderContent(BodyRenderer.java:139)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Panel
> PartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:119)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyR
> enderer.encodeAll(BodyRenderer.java:79)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.delegateRender
> er(CoreRenderer.java:330)
> 	at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.Docum
> entRenderer.encodeAll(DocumentRenderer.java:80)
> 	at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(Core
> Renderer.java:220)
> 	at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeE
> nd(UIXComponentBase.java:711)
> 	at 
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
> onentSupport.java:252)
> 	at 
> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(Comp
> onentSupport.java:249)
> 	at 
> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHand
> ler.java:594)
> 	at 
> org.apache.myfaces.trinidadinternal.application.ViewHandlerImp
> l.renderView(ViewHandlerImpl.java:182)
> 	at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(Re
> nderResponseExecutor.java:41)
> 	at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImp
> l.java:132)
> 	at 
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:269)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:188)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> _invokeDoFilter(TrinidadFilterImpl.java:253)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> _doFilterImpl(TrinidadFilterImpl.java:210)
> 	at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.
> doFilter(TrinidadFilterImpl.java:164)
> 	at 
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(Tri
> nidadFilter.java:92)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:215)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:188)
> 	at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:210)
> 	at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:174)
> 	at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:127)
> 	at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:117)
> 	at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:108)
> 	at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
> ter.java:151)
> 	at 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:870)
> 	at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa
> ndler.processConnection(Http11BaseProtocol.java:665)
> 	at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
> cpEndpoint.java:528)
> 	at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
> aderFollowerWorkerThread.java:81)
> 	at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:685)
> 	at java.lang.Thread.run(Thread.java:595) 
> 
> 
> Unfortunately i get no stack trace if you have set an empty 
> text attribute. Nevertheless the icon wouldn't be rendered. 
> Here is a short code snippet again which i have used for the 
> stack trace:
> 
> <tr:navigationPane hint="buttons">
>     <tr:commandNavigationItem action="myBean.doAction">
>         <tr:icon name="commandNav"/>
>     </tr:commandNavigationItem>
> </tr:navigationPane>
> 
> By the way: I'm using Trinidad 1.0.5 and Facelets 1.1.14.
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: mwessendorf@gmail.com [mailto:mwessendorf@gmail.com] Im 
> Auftrag von Matthias Wessendorf
> Gesendet: Dienstag, 26. Februar 2008 09:49
> An: MyFaces Discussion
> Betreff: Re: [Trinidad] commandNavigationItem and icon
> 
> can you show the stack trace ?
> 
> -M
> 
> On Tue, Feb 26, 2008 at 9:31 AM, Rottstock, Sven 
> <Sv...@sungard.de> wrote:
> > Hi list,
> >
> >  i have any troubles with a commandNavigationItem specially 
> if you put 
> > an  icon as a nested element inside the navigation item. 
> The following 
> > code  snippet works well:
> >
> >  <tr:commandNavigationItem action="#{bean.doAction}">
> >    <tr:icon name="icon"/>
> >  </tr:commandNavigationItem>
> >
> >  BUT if you surround the item with a navigationPane a 
> > NullPointerException is thrown. After adding an empty text 
> attribute 
> > the  exception is gone. So far so good. But with the described 
> > construction  the icon is no longer rendered.
> >
> >  Does anybody know if it is the expected behaviour or is it 
> even a bug?
> >
> >  Any hints would be greatly appreciated!
> >
> >  Best Regards,
> >
> >  Sven
> >
> 
> 
> 
> --
> Matthias Wessendorf
> 
> further stuff:
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> mail: matzew-at-apache-dot-org
>