Files
StreamLens/COLUMN_ALIGNMENT_VALIDATION.md
noisedestroyers 36a576dc2c Enhanced Textual TUI with proper API usage and documentation
- Fixed DataTable row selection and event handling
- Added explicit column keys to prevent auto-generated keys
- Implemented row-to-flow mapping for reliable selection tracking
- Converted left metrics panel to horizontal top bar
- Fixed all missing FlowStats/EnhancedAnalysisData attributes
- Created comprehensive Textual API documentation in Documentation/textual/
- Added validation checklist to prevent future API mismatches
- Preserved cursor position during data refreshes
- Fixed RowKey type handling and event names

The TUI now properly handles flow selection, displays metrics in a compact top bar,
and correctly correlates selected rows with the details pane.
2025-07-27 18:37:55 -04:00

2.6 KiB

Column Alignment Validation

Expected Column Alignment

The following shows the exact character positions for column alignment:

Position:  123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
Header:     #  Source             Proto  Destination        Extended   Frame Type   Pkts  Volume  Timing   Quality
Flow:       1  192.168.4.89:1024  UDP    239.1.2.10:8080   3 types    Mixed        1452    1.9MB   77.8ms Enhanced
Sub-row:                                                  CH10       CH10-Data    1110  1.44MB    102ms    76.4%
Sub-row:                                                  CH10       TMATS         114   148KB    990ms     7.8%
Sub-row:                                                             UDP           228   296KB    493ms    15.7%

Right-Aligned Column Validation

The following columns should align on their right edges:

  • Pkts: Right edge at position 77
  • Volume: Right edge at position 85
  • Timing: Right edge at position 93
  • Quality: Right edge at position 101

Example with proper right alignment:

Pkts Column (6 chars, right-aligned):
  1452
  1110
   114
   228

Volume Column (8 chars, right-aligned):  
   1.9MB
  1.44MB
   148KB
   296KB

Timing Column (8 chars, right-aligned):
  77.8ms
   102ms
   990ms
   493ms

Quality Column (8 chars, right-aligned):
Enhanced
   76.4%
    7.8%
   15.7%

Column Specifications

  1. Flow Number: Positions 1-3 (right-aligned in 2 chars + 1 space)
  2. Source: Positions 4-23 (20 characters, left-aligned)
  3. Proto: Positions 24-29 (6 characters, left-aligned)
  4. Destination: Positions 30-49 (20 characters, left-aligned)
  5. Extended: Positions 50-59 (10 characters, left-aligned)
  6. Frame Type: Positions 60-71 (12 characters, left-aligned)
  7. Pkts: Positions 72-77 (6 characters, right-aligned)
  8. Volume: Positions 78-85 (8 characters, right-aligned)
  9. Timing: Positions 86-93 (8 characters, right-aligned)
  10. Quality: Positions 94-101 (8 characters, right-aligned)

Sub-Row Alignment

Sub-rows use:

  • Positions 1-3: Empty spaces (matching flow number space)
  • Positions 4-23: Empty (inherits source from main flow)
  • Positions 24-29: Empty (inherits protocol from main flow)
  • Positions 30-49: Empty (inherits destination from main flow)
  • Positions 50-59: Extended protocol
  • Positions 60-71: Frame type
  • Positions 72-77: Packet count (right-aligned)
  • Positions 78-85: Volume (right-aligned)
  • Positions 86-93: Timing (right-aligned)
  • Positions 94-101: Percentage (right-aligned)

This ensures perfect column alignment between main flow lines and their sub-rows.