zcatgui/docs/PLAN_REFACTOR_VIRTUAL_ADVANCED_TABLE.md
reugenio b9f412b64f refactor(virtual_advanced_table): Extraer drawing.zig e input.zig
Modularización del archivo principal (1367 LOC → 468 LOC):
- drawing.zig (495 LOC): FilterBar, Header, Rows, Footer, Scrollbars
- input.zig (232 LOC): Keyboard, MouseClick, helpers

Archivos sin cambios: state.zig (847 LOC - candidato futuro)
2025-12-29 09:48:01 +01:00

85 lines
2.4 KiB
Markdown

# PLAN: Modularización de virtual_advanced_table.zig
**Fecha:** 2025-12-29
**Estado:** En progreso
---
## Objetivo
Dividir `virtual_advanced_table.zig` (1367 LOC) en módulos más pequeños.
---
## Estado Actual
```
virtual_advanced_table/
├── cell_editor.zig # 179 LOC ✓
├── data_provider.zig # 296 LOC ✓
├── paged_datasource.zig # 188 LOC ✓
├── state.zig # 847 LOC (revisar después)
├── types.zig # 242 LOC ✓
└── virtual_advanced_table.zig # 1367 LOC ⚠️ DIVIDIR
```
---
## Estructura Final
```
virtual_advanced_table/
├── cell_editor.zig # 179 LOC (sin cambios)
├── data_provider.zig # 296 LOC (sin cambios)
├── paged_datasource.zig # 188 LOC (sin cambios)
├── state.zig # 847 LOC (sin cambios por ahora)
├── types.zig # 242 LOC (sin cambios)
├── drawing.zig # ~400 LOC (NUEVO)
├── input.zig # ~200 LOC (NUEVO)
└── virtual_advanced_table.zig # ~500 LOC (reducido)
```
---
## Mapeo de Funciones
### → drawing.zig (~400 LOC)
| Función | Líneas orig | Descripción |
|---------|-------------|-------------|
| drawFilterBar | 604-830 | Barra de filtro superior |
| drawHeaderAt | 836-911 | Cabecera de tabla |
| drawRows | 917-1008 | Filas de datos |
| drawFooter | 1014-1056 | Pie de tabla |
| drawScrollbar | 1062-1087 | Scrollbar vertical |
| drawScrollbarH | 1093-1120 | Scrollbar horizontal |
### → input.zig (~200 LOC)
| Función | Líneas orig | Descripción |
|---------|-------------|-------------|
| handleKeyboard | 1169-1273 | Manejo de teclado |
| handleMouseClick | 1279-1345 | Manejo de clicks |
| ensureColumnVisible | 1127-1160 | Scroll a columna |
| needsRefetch | 577-598 | Detectar necesidad de refetch |
### → virtual_advanced_table.zig (reducido)
- VirtualAdvancedTableResult struct
- virtualAdvancedTable() (API pública)
- virtualAdvancedTableRect() (orquestación)
---
## Fases
- [ ] FASE 1: Extraer drawing.zig
- [ ] FASE 2: Extraer input.zig
- [ ] FASE 3: Actualizar imports en virtual_advanced_table.zig
- [ ] FASE 4: Verificar compilación
- [ ] FASE 5: Commit y push
---
## Historial
| Fecha | Hora | Acción | Estado |
|-------|------|--------|--------|
| 2025-12-29 | ~02:30 | Plan creado | En progreso |