The current Bluesky Databroker browser implementation in Xi-Cam works roughly like this:
- On initialization, a query is made to databroker to get all BlueskyRuns, with a max return value set in the constant MAX_SEARCH_RESULTS (currently 100).
- A cache is kept of all UIDs that have been loaded. When a BlueskyRun that has not been displayed is detected, it's contents are extracted from the BlueskyRun object and put into a variable (search_state._new_entries). show_results() is then triggered and runs on the MainThread. It extracts data from _new_entries and adds them to the table's Model class.
- Every 10 seconds, a thread in the background re-runs the query. New items are added to search_state._new_entries and are then processed and added to the model.
- When a databroker query finds more than 100 runs, currently there is no way to see beyond the initial 100 without applying a more advanced filter in the UI. Scrolling to the bottom does not re-issue a request.
The initial load of the catalog has been o