Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Grid: Implement relative-only navigation
I'm evaluating migration of a rather complicated (and old) application from Delphi to Vaadin. The application in question is loaded with quite a lot of data grids. While most of these grids are trivial, some are not. Thing is, Delphi had supported (since ancient times I think) an interesting "IsSequenced" attribute for grids. Although maybe not very widespread, it appeared to be a life-saver in our application because it allows to implement (with some small hand-made helper class) navigation through datasets of very large or undefined row count with comfort.
E.g. imagine some huge event log table. Yes, you might obtain its row count, but this value it too big to be of any real use for (absolute) user navigation, you are only interested in navigating to the very top, very bottom (rarely), and just scrolling up/down relative to some current position to read several nearby records. Now to make it clearer, imagine we apply some filter by event type. So now in order to find a real resulting row count, a respective database query would have to go through this whole huge table (or through its indexes at least, they are large too) and thus waste a lot of time for a very little reason: adjust vertical scrollbar proportions and prepare for absolute positioning. In Delphi, "IsSequenced" allows to avoid this. In this case, the scrollbar is painted with some predefined moderate proportions, absolute navigation is disabled, scrolling and paging up-down still work fine. The hand-made helper between the grid and the database takes care to only fetch a reasonable number of rows at a time (e.g. sufficient to display one page). In the end this allows to work with huge and growing data sets easily, with no visible delays and with very small load on the underlying database system.
Can something similar be implemented using Vaadin's Grid component? Probably I'd have to subclass it, but anyway I thought I'd better ask here before I started trying. Maybe it is a planned feature?
BTW, to the authors, thank you for this amazing product, it is really impressive.