1.1 KiB
1.1 KiB
gui/controller.py
Propósito
Controlador principal de la GUI: enlaza la vista con los servicios de aplicación, maneja selección de carpetas/CSV, abre el selector de campos y ejecuta el procesamiento por radicado.
API pública
class AppController
__init__(view, service): inicializa y vincula callbacks.on_select_root(): abre diálogo de carpeta para la raíz.on_select_csv(): abre diálogo para guardar CSV.on_process(): coordina selección de campos y el procesamiento por radicado.
Flujo
- Construye schema/muestra de factura cuando es necesario.
- Abre
FieldSelectorDialogpara elegir campos (y alias). - Relanza el procesamiento por radicado, emite JSON y escribe CSV incremental.
Ejemplo
from gui.view import InvoiceAppView
from gui.controller import AppController
from application.service import InvoiceProcessingService
from application.strategies import OllamaExtractor
view = InvoiceAppView()
svc = InvoiceProcessingService(OllamaExtractor())
controller = AppController(view, svc)
view.mainloop()