jewel icon indicating copy to clipboard operation
jewel copied to clipboard

LazyTable support

Open devkanro opened this issue 7 months ago • 0 comments

LazyTable features:

  • [x] Basic table view
  • [x] Lazy cell size
  • [x] Pinned rows and columns
  • [x] ScrollbarAdapter for tables
  • [x] Scrolling with animation
  • [ ] Selectable cells, rows and columns
  • [ ] Draggable rows and columns
  • [ ] Mergeable cells
  • [x] Styling
  • [ ] Code/Performance review

LazyLayout features:

  • [x] Layout logic, available in LazyTable.kt and LazyTableMeasure.kt
  • [x] Scrollable, clipping and overscroll effect, available in LazyTableState.kt#L112 and LazyTableState.kt#L168, clipping supported in LazyTable.kt#L94, overscroll effect supported in LazyTable.kt#L67 but not test yet because it not available in Desktop.
  • [ ] Semantics data, not support yet. Because Modifier.lazyLayoutSemantics is internal function.
  • [ ] Beyond-bounds, not support yet. LazyLayoutBeyondBoundsModifierLocal is internal, but we should need impl our one, we need support both of the Vertical and Horizontal orientation
  • [x] PinnableContainer, we support pin rows and columns but just impl it in layout logic. We don't use the PinnableContainer because it will case chaos in table layout.
  • [ ] Prefetching, not support yet.
  • [x] Animated scroll, we support it fully in LazyTableAnimateScroll.kt#L49, but I copied much code from LazyLayoutAnimateScroll.
  • [x] Scroll position maintenance, we support it fully.
  • [ ] Animated place, not support yet and we have no plan to support it. These animations do not fit well with the table layout and may cause confusion.

Needed internal API

Closes #61

devkanro avatar Nov 24 '23 18:11 devkanro