Files
StreamLens/BUTTON_FILTER_LAYOUT.md

108 lines
4.8 KiB
Markdown
Raw Permalink Normal View History

2025-07-30 23:48:32 -04:00
# Button-Based Frame Type Filter Layout
## ✅ New Design Implemented
Completely redesigned the interface with filter buttons above the grid view as requested.
## 🎯 Layout Structure
```
┌─────────────────────────────────────────────────────────────┐
│ Progress Bar (when loading) │
├─────────────────────────────────────────────────────────────┤
│ Metrics: Flows | Pkts/s | Vol/s | Enhanced | Outliers │
├─────────────────────────────────────────────────────────────┤
│ [1. Overview] [2. CH10-Data] [3. UDP] [4. PTP-Sync]... │ <- Filter Buttons
├─────────────────────────────────────────────────────────────┤
│ │ │
│ Flow Grid (70%) │ Flow │
│ - Shows filtered flows │ Details │
│ - Frame-type specific columns │ (30%) │
│ - One row per flow │ │
│ │ │
└─────────────────────────────────────────────────────────────┘
```
## 🔧 Key Features
### **Filter Button Bar**
- **1. Overview** - Shows all flows with frame type summary
- **2-9, 0** - Frame type specific filters (dynamically created)
- **Active button** highlighted in blue
- **Button counts** show number of flows for each frame type
### **Grid View Modes**
#### **Overview Mode (Key: 1)**
- Shows ALL flows (one row per flow)
- Columns: #, Source, Destination, Protocol, Packets, Volume, Frame Types, Status
- Frame Types column shows top 3 frame types per flow
#### **Frame Type Mode (Keys: 2-9, 0)**
- Shows ONLY flows containing that frame type
- Columns: #, Source, Destination, Protocol, [FrameType] Packets, Avg ΔT, Std ΔT, Min ΔT, Max ΔT, Outliers, Quality
- Frame-type specific timing statistics
## ⌨️ Keyboard Controls
### **Frame Type Selection**
- **`1`** - Overview (all flows)
- **`2`** - First detected frame type (e.g., CH10-Data)
- **`3`** - Second detected frame type (e.g., UDP)
- **`4-9, 0`** - Additional frame types as detected
### **Other Controls**
- **`p`** - Pause/Resume updates
- **`d`** - Show details
- **`r`** - Generate report
- **`o`** - Copy outliers
- **`v`** - Toggle view mode (reserved for future use)
- **`q`** - Quit
## 📊 Frame Type Examples
Based on your PCAP data, buttons would show:
```
[1. Overview] [2. CH10-Data(1)] [3. UDP(6)] [4. PTP-Signaling(2)] [5. TMATS(1)]
```
### **Pressing "2" shows CH10-Data filtered view:**
```
# Source Dest Proto CH10-Data Packets Avg ΔT Std ΔT Outliers Quality
1 192.168.4.89:... 239.1.2.10:... UDP 1,105 102.2ms 5.1ms 2 99%
```
### **Pressing "3" shows UDP filtered view:**
```
# Source Dest Proto UDP Packets Avg ΔT Std ΔT Outliers Quality
1 192.168.4.89:... 239.1.2.10:... UDP 228 492.9ms 125.3ms 0 100%
2 11.59.19.202:... 239.0.1.133:... UDP 113 999.4ms 45.2ms 0 100%
3 192.168.43.111:. 192.168.255:... UDP 48 2248.9ms 567.1ms 0 95%
...
```
## 🎨 Visual Styling
- **Active button**: Blue background (#0080ff) with bold white text
- **Inactive buttons**: Dark background (#262626) with gray text
- **Hover effect**: Lighter background on mouse over
- **Button counts**: Show number of flows for each frame type
- **Quality colors**: Green (>90%), Yellow (70-90%), Red (<70%)
## ⚡ Performance
- **Dynamic buttons**: Only creates buttons for detected frame types
- **Efficient filtering**: Reuses existing flow data structures
- **Real-time updates**: Buttons and counts update as new data loads
- **Memory efficient**: Single grid view, just changes columns/filtering
## 🎯 User Workflow
1. **Start with Overview** (default) - see all flows
2. **Press number key** to filter by frame type
3. **View frame-specific timing** statistics in filtered mode
4. **Switch between filters** to analyze different protocols
5. **All keyboard shortcuts** work in any mode
This matches exactly what you requested: buttons above the grid, number key selection, and filtered views showing frame-type specific statistics!