ICEfaces
  1. ICEfaces
  2. ICE-8808

Add robust "liveScroll" capability to ace:dataTable

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.1
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 3.x, ace:dataTable

      Description

      In ICEfaces 3.0 the new ace:dataTable was added with a "liveScroll" feature that was, unfortunately, very limited in utility when combined with other ace:dataTable features, buggy, etc. As the "liveScroll" function was not up to ICEsoft's standard, it was deprecated as of ICEfaces 3.2.

      This JIRA is to re-introduce support for a liveScroll functionality in a robust manner that will support its use in combination with all other ace:dataTable features.

      The primary justification for a liveScroll feature is to provide "infinite" scalability to ace:dataTables that may be bound to very large datasets (e.g. 50K rows or much more).

      To achieve this, it is necessary to dynamically "page" rows to the client browser as the user moves through the dataTable contents via the vertical scrollbar. Not only do rows need to be dynamically loaded or pre-loaded for the user, but rows must eventually also be dynamically removed from the browser DOM in order to prevent the eventual negative performance implications of an very large DOM in the browser, and the memory consumption that goes along with it.

      1. LiveScrolling.PNG
        48 kB
      2. group.PNG
        13 kB

        Issue Links

          Activity

          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46316 Wed Dec 02 14:14:00 MST 2015 carmen.cristurean ICE-8808 increase scrollHeight on dataTable Live Scrolling demo to improve scrolling in IE browsers.
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dataTable/dataTableLiveScrolling.xhtml
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46315 Wed Dec 02 13:08:04 MST 2015 carmen.cristurean ICE-8808 add showcase dataTable > Live Scrolling demo.
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/view/menu/data/CentralDataList.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/resources/org/icefaces/samples/showcase/view/resources/messages.properties
          Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/dataTable/dataTableLiveScrolling.xhtml
          Commit graph ADD /icefaces4/trunk/icefaces/samples/showcase/showcase/src/main/java/org/icefaces/samples/showcase/example/ace/dataTable/DataTableLiveScrolling.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46140 Tue Oct 27 14:44:59 MDT 2015 art.zambrano ICE-8808 modified previous fix for last page single row issue on IE, since it was adding extra space to regular pages; the fix is now based on a timeout function
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46116 Thu Oct 22 11:21:08 MDT 2015 art.zambrano ICE-8808 fix for last page single row issue on IE
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46108 Tue Oct 20 13:43:02 MDT 2015 art.zambrano ICE-8808 fix to add the filler space before scrolling down programmatically, so it's actually possible to scroll down 1 pixel and prevent moving to the previous page, since in the case when a page has few rows there's not enough room to do the programmatic scrolling for preventing moving immediately to the previous page just after loading a page
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46007 Tue Sep 22 14:59:08 MDT 2015 art.zambrano ICE-8808 fix to include the heights of panel expansion, row expansion and conditional rows when calculating the position of the scrollbar handle
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #46003 Tue Sep 22 13:12:01 MDT 2015 art.zambrano ICE-8808 fix to preserve the behaviour of displaying all rows when rows="0" when liveScroll="true" as well
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45978 Tue Sep 15 15:15:01 MDT 2015 art.zambrano ICE-8808 increased delays in processing scroll events in the client and in sending live scrolling requests
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45974 Mon Sep 14 20:08:54 MDT 2015 art.zambrano ICE-8808 fix to prevent flickering when live scrolling up and the scrollHeight is higher than the height of a single page; changed the way the first page is rendered to include twice the number of buffer pages under it, so to keep the number of pages rendered at a time constant and to avoid having whitespace below the rows when the height of the first page plus the height of the buffer page(s) below it is less than that of the scrolling container
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45964 Mon Sep 14 15:31:36 MDT 2015 art.zambrano ICE-8808 fix to avoid processing downwards live scroll when the last row is already showing
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45956 Thu Sep 10 15:20:09 MDT 2015 art.zambrano ICE-8808 refactored fix to iterate over buffer rows to make it more efficient; added a delay in between livescroll requests in order to avoid multiple, repeated requests with short intervals; fixed issues when liveScrollBufferPages=0; fixed issue with flickering between pages when scrolling up; added fix to avoid processing an upwards livescroll request when being on the first page already;
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45947 Tue Sep 08 15:21:42 MDT 2015 art.zambrano ICE-8808 fix to make the component iterate over the buffer rows as well, in order to execute requests for row/cell editing and row expansions
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45939 Tue Sep 08 11:00:31 MDT 2015 art.zambrano ICE-8808 fix for exception when trying to scroll up while on the first page
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/PageState.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45915 Fri Aug 28 19:27:07 MDT 2015 art.zambrano ICE-8808 replaced approach of adding margins to the top and bottom of the body table for directly moving the scrollbar handle to an appropriate position to account for the newly-added rows; added usability improvements like moving the scrollbar one pixel from the top to enable upwards scrolling right away and adding filler space to enable the scrollbar when the height of the rows is less than the height of the scrollable container
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45912 Thu Aug 27 17:52:52 MDT 2015 art.zambrano ICE-8808 improvement to make both live scrolling functionalities (downwards and upwards) work together
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45908 Thu Aug 27 14:26:13 MDT 2015 art.zambrano ICE-8808 fix to remove top margin when reaching the top and to remove bottom margin when reaching the bottom
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45907 Thu Aug 27 13:52:51 MDT 2015 art.zambrano ICE-8808 added live scrolling functionality for going up (exclusively up)
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45901 Thu Aug 27 10:44:43 MDT 2015 art.zambrano ICE-8808 improvement for smooth scrolling
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #45892 Tue Aug 25 15:00:16 MDT 2015 art.zambrano ICE-8808 initial version of robust live scrolling functionality in ace:dataTable
          Files Changed
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/resources/icefaces.ace/datatable/datatable.js
          Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableMeta.java

            People

            • Assignee:
              Arturo Zambrano
              Reporter:
              Ken Fyten
            • Votes:
              4 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: