WeldingSpotPerformance/src/controller/mediator.py

40 lines
1.4 KiB
Python
Raw Normal View History

from typing import Union
import pandas as pd
from PyQt5.QtWidgets import QWidget
from base.base import (BaseMediator, BaseFileManager,
BaseDataConverter, BasePlotWidget,
BasePointPassportFormer,
BaseController)
class Mediator(BaseMediator):
def notify(self,
source: Union[BaseFileManager, BaseDataConverter, BasePointPassportFormer, BasePlotWidget, BaseController],
data: Union[list[str], list[pd.DataFrame], list[list], list[QWidget], list[dict]]):
if issubclass(source.__class__, BaseFileManager):
self._controller.update_status("CSV found! Calculating...")
self._converter.convert_data(data)
if issubclass(source.__class__, BaseDataConverter):
self._controller.update_progress(1)
self._passportFormer.form_passports(data)
if issubclass(source.__class__, BasePointPassportFormer):
self._controller.update_progress(2)
self._plot.build(data)
if issubclass(source.__class__, BasePlotWidget):
self._controller.update_progress(100)
self._controller.send_widgets(data)
if issubclass(source.__class__, BaseController):
self._file_manager.update_monitor_settings(data)
self._passportFormer.update_settings(data)