[richfaces-issues] [JBoss JIRA] (RF-12033) ExtendedDataTable doesn't show up in tabpanel with switchType="client"

Yuriy Pogorzhelskiy (JIRA) jira-events at lists.jboss.org
Fri Aug 31 15:10:39 EDT 2012


    [ https://issues.jboss.org/browse/RF-12033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12715217#comment-12715217 ] 

Yuriy Pogorzhelskiy commented on RF-12033:
------------------------------------------

Bug is in JavaScript part. 
When EDT is placed on hidden page (tab) parent DIV has attribute display=none , and in this case invocation: this.element.clientWidth returns 0.

Source-code: RichFaces-4.2.2.Final

extendedDataTable.js#updateLayout 
Line 283: var width = Math.max(0, this.element.clientWidth - offsetWidth);
width == 0 and we have this 
Line 307: this.normalPartStyle.display = "none";

Hidden parent is a root cause.

As a workaround i can suggest the next changes
extendedDataTable.js#initialize:
Lines 396: this.updateLayout();
Lines 396: this.updateScrollPosition(); //TODO Restore horizontal scroll position

replace with:
if (this.element.parentNode.clientWidth > 0) {
    this.updateLayout();
    this.updateScrollPosition(); //TODO Restore horizontal scroll position	
}

More elegant solution would be some hook - when parent div is become visible - updateLayout is invoked, but I don't see the way in which we can do it now.
                
> ExtendedDataTable doesn't show up in tabpanel with switchType="client"
> ----------------------------------------------------------------------
>
>                 Key: RF-12033
>                 URL: https://issues.jboss.org/browse/RF-12033
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-tables
>    Affects Versions: 4.2.0.Final
>         Environment: FireFox 10.0.2  (works in IE7)
> GlassFish 3.1
>            Reporter: Josh Hill
>              Labels: lazy-loaded
>             Fix For: 4.3-Tracking
>
>         Attachments: richfaces-test.zip
>
>
> ExtendedDataTable doesn't show up in tabpanel with switchType="client"
> Facelet file from the attached testcase:
> {code}
> <?xml version='1.0' encoding='UTF-8' ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
>       xmlns:h="http://java.sun.com/jsf/html"
>       xmlns:rich="http://richfaces.org/rich"
>       xmlns:f="http://java.sun.com/jsf/core">
>     <h:head>
>         <title>Test One</title>
>     </h:head>
>     <h:body>
>         <p>Extended datatable inside tabpanel with switchType "client"</p>
>         <h:form>
>         <rich:tabPanel switchType="client">
>             <rich:tab>
>                 <f:facet name="header">
>                     Tab One
>                 </f:facet>
>                 Tab One
>             </rich:tab>
>             <rich:tab>
>                 <f:facet name="header">
>                     Tab Two
>                 </f:facet>
>                 <rich:extendedDataTable value="#{colorsBean.colors}" var="color">
>                     <rich:column>
>                         <f:facet name="header">
>                             Column 1
>                         </f:facet>
>                         #{color}
>                     </rich:column>
>                 </rich:extendedDataTable>
>             </rich:tab>            
>         </rich:tabPanel>                   
>         </h:form>
>     </h:body>
> </html>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list