eclipse-cdt-cloud / eclipse-cdt-cloud/theia-trace-extension

Add generic way to determine total number of rows for table-output-component

Open
#792 0 comments 0 reactions 0 assignees View on GitHub
bug Theia UI Trace Server
Dominant language
TypeScript
Stars
50
Forks
60
PR merge metrics
No merged PRs in 30d

Description

For the events table there is an indexing loop (see `trace-context-component` method `updateTrace()`) that checks for number of events and updates the nbEvents which then triggers the function call `componentDidUpdate()` in `table-output-component`. The componentDidUpdate() sets the infiniteRowCount which then updates the vertical scrollbar. When opening the table with a segment store there is no corresponding indexing loop that updates the nbEvents and the scrollbar.

Setting the row count only when fetching the table lines works, only when the fetchTableLines call to fill the table initially returns the final total number of segments i.e. that the back-end has the value available at that time.

I think there should be a generic way to determine the table size for any virtual table data providers. The data provider API might have to be augmented for that.

_Originally posted by @bhufmann in https://github.com/eclipse-cdt-cloud/theia-trace-extension/pull/784#discussion_r924910315_

Contributor guide

Open the contributing guide

Research direction

Start by tracing the `trace-context-component` method `updateTrace()` and the `table-output-component` `componentDidUpdate()` flow, then compare it with `fetchTableLines` for segment-store tables. Review the virtual table data provider API and determine how a generic total row count could update the scrollbar; done means segment-store tables and existing event tables report their sizes correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.