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.
This commit is contained in:
26
test_textual.py
Normal file
26
test_textual.py
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script for Textual TUI interface
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add the analyzer package to the path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from analyzer.analysis.core import EthernetAnalyzer
|
||||
from analyzer.tui.textual.app_v2 import StreamLensAppV2
|
||||
|
||||
def main():
|
||||
"""Test the Textual interface with mock data"""
|
||||
|
||||
# Create analyzer with some sample data
|
||||
analyzer = EthernetAnalyzer(enable_realtime=False)
|
||||
|
||||
# Create and run the Textual app V2
|
||||
app = StreamLensAppV2(analyzer)
|
||||
app.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user