Files
IPSExtractor/docs/gui/controller.md
T

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

  1. Construye schema/muestra de factura cuando es necesario.
  2. Abre FieldSelectorDialog para elegir campos (y alias).
  3. 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()