Hello Ed

At the center of our product is an extension of the TableView control that's 
responsible for displaying all the output from our pivot reporting engine.  
Depending on how the user configures the layout of their pivot reports, 
sometimes there are a legitimately large number of columns (300+).  When that 
happens, while the horizontal scrolling remains perfectly smooth, the vertical 
scrolling degrades to a somewhat juddery state and CPU usage spikes.

(…snip…)
So, my questions to the list are:

   1.  Has anyone seen this issue raised anywhere else?
   2.  If yes, has anyone taken a look into it yet, and possibly even found a 
fix?
   3.  If no to both of the above, shall I submit it through the correct 
channels then have a crack at fixing myself?  Or is the issue likely to be a 
much deeper and far-reaching one than I?m anticipating?

By coincidence I'm developing right now a GridView for displaying large grids (millions of rows and columns) using JavaFX VirtualFlow. It seems to work smoothly up to now. That GridView is specifically designed for rendering the sample values of large java.awt.image.RenderedImage using its tile management capacity (tiles loaded in background thread when first requested). It is not my goal to create a general purpose GridView at this time. However it should be possible to remove the RenderedImage-specific code and replace it by another model with not too much effort. The code is at [1].

About improving TableView for managing thousands of columns, I believe that one difficulty is that TableView depends extensively on TableColumn, which provides a lot of capability (resizing, sorting, reordering, hiding, etc.) at the cost of more complexity that may be difficult to optimize. By contrast, above-cited GridView has a lot of restrictions (all cells of the same size, no sorting, no reordering, etc.) for easier implementation.

    Martin

[1] 
https://github.com/apache/sis/tree/geoapi-4.0/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage

Reply via email to