# PyMSC GUI Refactor & Adapter Plan

Questo documento descrive il piano di lavoro step-by-step che sto implementando
per rendere la GUI di `pymsc` modulare, testabile e ARTOS-compliant.

## Obiettivo

- Introdurre un adapter (`Adapter1553`) che separi la GUI dal backend 1553.
- Rifattorizzare componenti GUI in moduli riusabili.
- Procedere step-by-step: ogni step è corredato di test automatici che
  verificano il comportamento.

## Step attuali

1. Creare `Adapter1553` (shim minimale): fatto — espone `get_value`, `set_value`,
   `list_messages`, `register_callback`. Test: `tests/test_adapter_1553.py`.

2. Integrare l'adapter nella GUI: prossimo passo dopo verifica dei test.

3. Estrarre componenti GUI riusabili (`components/`): checkbox, combobox,
   spinbox, message viewer, tooltip, scrollable frame.

4. Sostituire accessi diretti a `grifo_def_msg` con chiamate all'adapter nelle pagine
   (`grifo_gui_page*.py`) in modo incrementale.

5. Aggiornare `script_manager` per usare `BusMonitorCore.recorder` tramite adapter,
   mantenendo il formato JSON e la logica di validazione.

6. Implementare meccanismo thread-safe di aggiornamento UI (worker queue + `after`).

## Testing

- Ogni step ha unit test specifici. Per l'adapter ho creato test che utilizzano
  un `FakeBusMonitor` per evitare dipendenze esterne.
- Dopo l'adapter, procederemo con tests per i componenti GUI (headless when possible)
  e logica di script manager.

## Prossimi passi immediati

1. Eseguire i test unitari creati per l'adapter e correggere eventuali problemi.
2. Se i test passano, iniziare l'integrazione dell'adapter nella pagina `Page02`
   come prova di concetto (spinbox/combobox).

---

Documenterò ogni passo e aggiornerò questo file con risultati e decisioni.
