WeldingSpotPerformance/src/controller/mediator.py

43 lines
1.5 KiB
Python
Raw Normal View History

from typing import Union
import pandas as pd
from PyQt5.QtWidgets import QWidget
from base.base import (BaseMediator, BaseDirectoryMonitor,
BaseDataConverter, BasePlotWidget,
BasePointPassportFormer)
class Mediator(BaseMediator):
def notify(self,
source: Union[BaseDirectoryMonitor, BaseDataConverter, BasePointPassportFormer, BasePlotWidget],
data: Union[list[str], list[pd.DataFrame], list[list], list[QWidget]]):
if issubclass(source.__class__, BaseDirectoryMonitor):
self._controller.update_status("CSV found! Calculating...")
self._converter.convert_data(data)
if issubclass(source.__class__, BaseDataConverter):
self._controller.update_status(1)
self._passportFormer.form_passports(data)
if issubclass(source.__class__, BasePointPassportFormer):
self._controller.update_status(2)
self._plot.build(data)
if issubclass(source.__class__, BasePlotWidget):
self._controller.update_status(100)
self._controller.send_widgets(data)
2025-01-15 18:07:16 +03:00
def update_settings(self, settings: list[dict]):
2025-01-15 18:07:16 +03:00
# TODO: А дописать self.notify не?
# if issubclass(source.__class__, BaseController):
# self._monitor.update_settings(data)
# self._passportFormer.update_settings(data)
self._monitor.update_settings(settings)
self._passportFormer.update_settings(settings)