ICEfaces
  1. ICEfaces
  2. ICE-3219

the scrollbar for scrollable dataTable does not render properly in Firefox 3

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Firefox 3

      Description

      The scrollbar is included inside the last column, rather than beside to it.
      1. ScrollTableTest.rar
        30 kB
        Lele Man
      1. screenshot-1.jpg
        76 kB
      2. screenshot-2.jpg
        89 kB
      3. screenshot-3.jpg
        86 kB

        Activity

        Jacky Lee created issue -
        Jacky Lee made changes -
        Field Original Value New Value
        ICEfaces Forum Reference http://www.icefaces.org/JForum/posts/list/8808.page#36720
        Ken Fyten made changes -
        Fix Version/s 1.7.2 [ 10130 ]
        Assignee Priority P2
        Assignee Yip Ng [ yip.ng ]
        made changes -
        Attachment screenshot-1.jpg [ 11101 ]
        Hide
        yip.ng added a comment -

        This problem is not caused by any bug in the renderer, but rather by how the browser renders the scrollbar. Firefox 3 seems to have changed from rendering the scrollbar beside a div to on top of a div. Opera has the same behavior. See ICE-2787. Firefox 2 and IE both render the scrollbar beside the div.

        Changing the renderer will also cause regressions for ICE-2417 and ICE-2654.

        All of these JIRA cases are a result of the fact that there is no way to tell for sure whether a scrollbar will be rendered, how it will be rendered, and what the exact pixel width of the scrollbar is. It all depends on the browser and the computed width and height of the div.

        The only fix I know of that works for all of IE, Opera, FF2 and FF3 is to specify a width for the data table:

        <ice:dataTable ... width="193" ...>

        See screenshot-1 for the result.

        Show
        yip.ng added a comment - This problem is not caused by any bug in the renderer, but rather by how the browser renders the scrollbar. Firefox 3 seems to have changed from rendering the scrollbar beside a div to on top of a div. Opera has the same behavior. See ICE-2787 . Firefox 2 and IE both render the scrollbar beside the div. Changing the renderer will also cause regressions for ICE-2417 and ICE-2654 . All of these JIRA cases are a result of the fact that there is no way to tell for sure whether a scrollbar will be rendered, how it will be rendered, and what the exact pixel width of the scrollbar is. It all depends on the browser and the computed width and height of the div. The only fix I know of that works for all of IE, Opera, FF2 and FF3 is to specify a width for the data table: <ice:dataTable ... width="193" ...> See screenshot-1 for the result.
        yip.ng made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Lele Man added a comment -

        The solution that was given works fine on firefox 3 but only if you have a data table with enough rows to have a scroll bar. If there aren't, the data table will still be rendered wrong (a white space will be rendered on the right side of the table).

        See screenshot and the source code of an example in the following post: http://www.icefaces.org/JForum/posts/list/8808.page#37313

        Show
        Lele Man added a comment - The solution that was given works fine on firefox 3 but only if you have a data table with enough rows to have a scroll bar. If there aren't, the data table will still be rendered wrong (a white space will be rendered on the right side of the table). See screenshot and the source code of an example in the following post: http://www.icefaces.org/JForum/posts/list/8808.page#37313
        yip.ng made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        made changes -
        Attachment screenshot-2.jpg [ 11137 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17238 Fri Jul 25 17:47:42 MDT 2008 yip.ng ICE-3219
        Changed to calculate spacer header width of scrollable table dynamically on the client side.
        Files Changed
        Commit graph ADD /icefaces/trunk/icefaces/bridge/lib/extras/dataTable.js
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/build.xml
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17239 Fri Jul 25 17:49:03 MDT 2008 yip.ng ICE-3219
        Changed to calculate spacer header width of scrollable table dynamically on the client side.
        Files Changed
        Commit graph ADD /icefaces/branches/icefaces-1.7/icefaces/bridge/lib/extras/dataTable.js
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/bridge/build.xml
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        made changes -
        Attachment screenshot-3.jpg [ 11141 ]
        Hide
        yip.ng added a comment -

        Changed to calculate the spacer header width dynamically on the client side. If no scrollbar is rendered by browser, width will be 0; if browser renders scrollbar, width will be same as width of scrollbar.

        See screenshot-2 and screenshot-3.

        Show
        yip.ng added a comment - Changed to calculate the spacer header width dynamically on the client side. If no scrollbar is rendered by browser, width will be 0; if browser renders scrollbar, width will be same as width of scrollbar. See screenshot-2 and screenshot-3.
        yip.ng made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Fix Version/s 1.7.2RC1 [ 10140 ]
        Fix Version/s 1.7.2 [ 10130 ]
        Ken Fyten made changes -
        Fix Version/s 1.7.2 [ 10130 ]
        Fix Version/s 1.7.2RC1 [ 10140 ]
        Hide
        Lele Man added a comment -

        I have downloaded the latest revision from the svn repository (revision 17609) and tried it, especially the bug reported for the version 1.7.1 (issue 3219).

        I realized that if the datatable does not has a header facet with a column group and a header row it works fine, but if the datatable has a header facet with a column group with a header row (or more) it still not working.
        It doesn't matter the complex of the header facet. If it could have several header rows containing columns with colspan and rowspan higher than 1 or just one header row containing columns with colspan and rowspan 1, and it doesn't work.

        I have attached a small example that shows the problem (the libs aren't in the attach, must be compiled (revision 17609)).

        Show
        Lele Man added a comment - I have downloaded the latest revision from the svn repository (revision 17609) and tried it, especially the bug reported for the version 1.7.1 (issue 3219). I realized that if the datatable does not has a header facet with a column group and a header row it works fine, but if the datatable has a header facet with a column group with a header row (or more) it still not working. It doesn't matter the complex of the header facet. If it could have several header rows containing columns with colspan and rowspan higher than 1 or just one header row containing columns with colspan and rowspan 1, and it doesn't work. I have attached a small example that shows the problem (the libs aren't in the attach, must be compiled (revision 17609)).
        Hide
        Lele Man added a comment -

        Example project showing the bug still doesn't work

        Show
        Lele Man added a comment - Example project showing the bug still doesn't work
        Lele Man made changes -
        Attachment ScrollTableTest.rar [ 11252 ]
        Hide
        Krashan Brahmanjara added a comment -

        That problem exist also in IE6 because tables inserted in div's doesn't correct fill full div area and dinamic javascript function also doesn't correct resize that tables. Patch was submitted in attachment to ICE-3515

        You can try this patch.

        Show
        Krashan Brahmanjara added a comment - That problem exist also in IE6 because tables inserted in div's doesn't correct fill full div area and dinamic javascript function also doesn't correct resize that tables. Patch was submitted in attachment to ICE-3515 You can try this patch.
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Priority P2
        Assignee Yip Ng [ yip.ng ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Jacky Lee
          • Votes:
            7 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: