[richfaces-issues] [JBoss JIRA] (RF-11694) RF4 : Bad rendering on rich:dataTable header inside ui:include enclosed in a rich:tabPanel

Jean ANDRE (Updated) (JIRA) jira-events at lists.jboss.org
Tue Nov 15 12:08:44 EST 2011


     [ https://issues.jboss.org/browse/RF-11694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean ANDRE updated RF-11694:
----------------------------

    Steps to Reproduce: 
1) make a tabPanel as below - At the begin, there is only on tab (the static one). Then, imagine that you click somewhere to add a new tab to display a list (from a search request).
{code}
<h:form id="tabbedForm">
  <rich:tabPanel id="desktopTabPanel" switchType="ajax" headerPosition="top" headerLocation="center" activeItem="#{desktopTabController.activeTab}">
  <rich:tab id="tab-workitems" name="tab-workitems" header="#{msg['desktop.tab.workitems']}">
    <!--                -->
    <!--  WORKITEMS TAB -->
    <!--                -->
  </rich:tab>
  <rich:tab id="tab-search" name="tab-search" header="#{msg['desktop.tab.search']}">
    <!--                -->
    <!--  SEARCH TAB    -->
    <!--                -->
    <ui:include src="client/searchClient.xhtml" />
  </rich:tab>
  <c:forEach items="#{desktopTabController.desktopTabBean.tabElements}" var="tab">
    <rich:tab id="#{tab.id}" name="#{tab.id}">
      <!--                -->
      <!--  RESULT TAB    -->
      <!--                -->
      <f:facet name="header">
        <h:panelGrid columns="2">
          <h:outputText value="#{tab.id}" />
            <a4j:commandButton image="/images/closeButton.png" styleClass="closeButton" action="#{desktopTabController.closeTab(tab.id)}" render="desktopTabPanel">
            </a4j:commandButton>
        </h:panelGrid>
      </f:facet>
      <ui:include src="client/listClient.xhtml" />
	</rich:tab>
   </c:forEach>
</rich:tabPanel>
{code}

2) Here is the include file - Partial content, only the beginning of a "standard" form.
{code}
<!--                 -->
<!--  CLIENT LIST    -->
<!--                 -->
<a4j:outputPanel id="#{tab.id}-resultListClientContainer">
  <h:outputText value="#{msg['search.message.empty.liste']}" rendered="#{empty tab.searchResult}">
  <!--                     -->
  <!--  EMPTY CLIENT LIST  -->
  <!--                     -->
  </h:outputText>
	
  <rich:dataTable id="#{tab.id}-resultListClient" var="client" value="#{tab.searchResult.data}" rendered="#{not empty tab.searchResult}" row="30" rowClasses="odd-row, even-row">
  <rich:column id="#{tab.id}-specInd" accept="#{client.specInd}">
  <!--                 -->
  <!--  SPEC. INDIC.   -->
  <!--                 -->
  <f:facet name="header">
    <h:outputText value="#{msg['client.label.special.indic']}" />
  </f:facet>
  <h:outputText value="#{client.specInd}" />
 </rich:column>
{code}

3) The code that triggers the rendering of the tabPanel - It is a search form which is enclosed also in tab.
   Below, it is a partial content of the search form : client/searchClient.xhtml

{code}
   <!--              -->
   <!--  SEARCH !    -->
   <!--              -->
   <a4j:commandButton id="doSearchCmd"
                   value="#{msg['search.command.search']}"
	          action="#{searchClientController.doSearch}"
	          render="desktopTabPanel">
   </a4j:commandButton>

{code}   

 

  was:
1) make a tabPanel as below - At the begin, there is only on tab (the static one). Then, imagine that you click somewhere to add a new tab to display a list (from a search request).
{code}
<h:form id="tabbedForm">
  <rich:tabPanel id="desktopTabPanel" switchType="ajax" headerPosition="top" headerLocation="center" activeItem="#{desktopTabController.activeTab}">
  <rich:tab id="tab-workitems" name="tab-workitems" header="#{msg['desktop.tab.workitems']}">
    <!--                -->
    <!--  WORKITEMS TAB -->
    <!--                -->
  </rich:tab>
  <rich:tab id="tab-search" name="tab-search" header="#{msg['desktop.tab.search']}">
    <!--                -->
    <!--  SEARCH TAB    -->
    <!--                -->
    <ui:include src="client/searchClient.xhtml" />
  </rich:tab>
  <c:forEach items="#{desktopTabController.desktopTabBean.tabElements}" var="tab">
    <rich:tab id="#{tab.id}" name="#{tab.id}">
      <!--                -->
      <!--  RESULT TAB    -->
      <!--                -->
      <f:facet name="header">
        <h:panelGrid columns="2">
          <h:outputText value="#{tab.id}" />
            <a4j:commandButton image="/images/closeButton.png" styleClass="closeButton" action="#{desktopTabController.closeTab(tab.id)}" render="desktopTabPanel">
            </a4j:commandButton>
        </h:panelGrid>
      </f:facet>
      <ui:include src="client/listClient.xhtml" />
	</rich:tab>
   </c:forEach>
</rich:tabPanel>
{code}

2) Here is the include file 
{code}
<!--                 -->
<!--  CLIENT LIST    -->
<!--                 -->
<a4j:outputPanel id="#{tab.id}-resultListClientContainer">
  <h:outputText value="#{msg['search.message.empty.liste']}" rendered="#{empty tab.searchResult}">
  <!--                     -->
  <!--  EMPTY CLIENT LIST  -->
  <!--                     -->
  </h:outputText>
	
  <rich:dataTable id="#{tab.id}-resultListClient" var="client" value="#{tab.searchResult.data}" rendered="#{not empty tab.searchResult}" row="30" rowClasses="odd-row, even-row">
  <rich:column id="#{tab.id}-specInd" accept="#{client.specInd}">
  <!--                 -->
  <!--  SPEC. INDIC.   -->
  <!--                 -->
  <f:facet name="header">
    <h:outputText value="#{msg['client.label.special.indic']}" />
  </f:facet>
  <h:outputText value="#{client.specInd}" />
 </rich:column>
{code}

3) The code that triggers the rendering of the tabPanel - It is a search form which is enclosed also in tab.
   Below, it is a partial content of the search form : client/searchClient.xhtml

{code}
   <!--              -->
   <!--  SEARCH !    -->
   <!--              -->
   <a4j:commandButton id="doSearchCmd"
                   value="#{msg['search.command.search']}"
	          action="#{searchClientController.doSearch}"
	          render="desktopTabPanel">
   </a4j:commandButton>

{code}   

 


    
> RF4 : Bad rendering on rich:dataTable header inside ui:include enclosed in a rich:tabPanel
> ------------------------------------------------------------------------------------------
>
>                 Key: RF-11694
>                 URL: https://issues.jboss.org/browse/RF-11694
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.0.0.Final
>         Environment: Websphere 8 - RAD 8 - JSF Mojorra 2.1.4 - Spring 3.0.6 Final - Use @Inject @Named @SessionScoped as annotations - Firefox 7.0.1 - Windows 7 (6.1 sp1)
>            Reporter: Jean ANDRE
>
> The header of a rich:dataTable is not rendering with CSS style when the dataTable is inside a separate file (ui:include src=....) during the ajax rendering on a dynamic insert of rich:tab.
> The error does not appear when the content of the include file is directly moved inside the final page, I mean without ui:include.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list