# 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.