I created this separate task so that the comment thread at JDK-8077916 does not get too unwieldy. Here are some comments on the VirtualFlow API:
1. VirtualFlow seems like a generally useful layout component, so I think it would make sense for it to be in javafx.scene.layout instead of javafx.scene.control.skin. The only caveat is that its cells are restricted to be IndexedCells (see 2.).
2. I find it unfortunate that VirtualFlow's cells are limited to instances of IndexedCell. It would make perfect sense to me to allow arbitrary Nodes in VirtualFlow.
3. Shouldn't java.util.Function be preferred over javafx.util.Callback for cellFactory?
4. Wouldn't it be better to change
BooleanProperty verticalProperty();
to
Property<javafx.geometry.Orientation> orientationProperty();
?
5. Does it make sense for the vertical (aka. orientation) to be writable? Is it legal to change the orientation after the first layout?
6. Probably just an oversight: there are two versions of scrollToTop, one taking a cell and one taking a cell index, there is only the cell version of scrollToBottom.