09-22-2025 01:34 PM - edited 09-22-2025 01:37 PM
Hello,
I have a parser application that parses and prints the results in a multicolumn listbox. Given that the parsed data is large(~17k rows of data), I came up with an approach on navigating through a minimap that I created using a 2-D picture control where the user can slide across vertically to navigate through the respective row. The colors in the minimap associate with the color of the text in the listbox rows.
However, the minimap seems too dense for navigating across 17k rows of data. Is there an alternate approach where I can better navigate across my parsed data?
Thanks,
Shubham
09-22-2025 01:45 PM
I mean, if you're going to have more rows in your data than vertical pixels on your screen, there's not a whole lot of options to make navigation easier.
It looks like you've already started doing some searching and filtering. I would suggest leaning much more into that to help the user find what they're looking for. If you need assistance with that you'll probably have to give us at least a few hints as to what the data contained looks like, though.
09-22-2025 01:54 PM
It really depends on what you mean by "help navigate". Are you trying to let users type in a filter to highlight certain things? Or maybe look for long packets? Etc...
You'll have to design your own custom "downselect" algorithm as it depends on what you want to do.
First decide if you need to be able to see the "minified" version of ALL of the packets- if so, you will need to calculate how many rows you have, and you'll need at minimum a pixel per row. 17k rows is... quite a lot of pixels, so I'd suggest not doing that 😉
If you have, say, 500 vertical pixels (or whatever) and 17k rows, you'll need to "bin" that into 17,000/500 = 34 rows per pixel. If you're looking for long packets, then maybe you can take a set of every 34 rows of messages and look for the longest one- then let that dictate your pixel color. Or maybe you're looking for streaks of similar packets; you can design some sort of rolling average filter and display there results of that filter, similarly downselected.
If you're just trying to help out with people navigating in general, let them make colored bookmarks or something. Whenever they add a bookmark, look where they are in the minimap, and color that whole row with their chosen color.
If you let us know what you're looking to do then perhaps we can help more.
09-22-2025 02:01 PM
Thank you for your reply!
My data mostly contains rows of log data along with the timestamp. One of the columns(column 2) in the log data represents the log type which can be error, warning, response, etc and they are color coded and represented in the minimap in the same order. I wanted the visualization to be such that when the user clicks on the red(error) line or yellow(warning) line on the minimap, its appropriate row on the listbox is displayed.
The search operation performs a generic search among all the column elements. I am also planning to make the search operation search for specific column.
09-22-2025 02:09 PM
Then I think I'd check every 34 rows (or whatever) and if ANY of them has an error, then the row of pixels is red. If there are no errors but there is at least one warning, then the row of pixels is yellow.
You can add some smarts to that such that if the user clicks near a red or yellow line, the scrolling automatically adjusts to put the red or yellow line in the center of the "actual packets" window.