2.8 KiB
2.8 KiB
Tab Display Fixes Summary
✅ Fixed Issues
1. ID Sanitization
- Fixed frame type IDs that contained special characters (-, :)
- Ensures
CH10-DatabecomesCH10_Datain IDs - Fixed all queries to use sanitized IDs consistently
2. Stats Panel Updates
- Changed from direct
_renderablemanipulation to proper update method - Added
update_content()method to properly refresh statistics - Stats panel now properly displays data after loading
3. CSS Tab Layout
- Added proper CSS for horizontal tab bar display
- Set
dock: topfor tab bar positioning - Defined proper dimensions for tab content areas
- Split layout: 70% flow table, 30% stats panel
4. Data Refresh
- Fixed
refresh_data()to use correct sanitized IDs - Ensured all tabs refresh when data is loaded
- Stats panels now update with actual flow statistics
🎨 Expected Layout
┌─────────────────────────────────────────────────────────────┐
│ [Overview] [CH10-Data] [UDP] [PTP-Sync] [TMATS] [IGMP] │ <- Horizontal tab bar
├─────────────────────────────────────────────────────────────┤
│ │ │
│ Flow Table (70%) │ Stats │
│ - Shows flows with this frame type │ Panel │
│ - IPs, ports, packets, timing │ (30%) │
│ │ │
└─────────────────────────────────────────────────────────────┘
📊 Tab Content Structure
Each frame-type tab shows:
Left Side - Flow Table (70%)
- Flow ID, Source/Dest IPs and ports
- Protocol and packet counts
- Timing statistics (avg/std deviation)
- Outlier counts and quality scores
Right Side - Stats Panel (30%)
- Total flows with this frame type
- Total packet count
- Aggregate timing statistics
- Overall outlier rate
- Average inter-arrival time
🔧 Technical Changes
- Sanitized widget IDs:
table-CH10_Datainstead oftable-CH10-Data - Proper CSS selectors: Using
>for direct children - Fixed dimensions: Explicit width percentages for layout
- Update mechanism: Proper content refresh methods
🎯 Next Steps
If tabs are still appearing stacked:
- The Textual version might need specific tab layout directives
- May need to check if TabbedContent is being properly initialized
- Could add explicit layout constraints in compose()
The data should now refresh properly when the PCAP is loaded!