WeldingSpotPerformance/src/controller/mediator.py

46 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,
GraphicPassport,
Settings
)
class Mediator(BaseMediator):
def notify(self,
source: Union[BaseFileManager, BaseDataConverter, BasePointPassportFormer, BasePlotWidget, BaseController],
data: Union[list[str], list[pd.DataFrame], list[GraphicPassport], list[QWidget], Settings]):
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._passport_former.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._passport_former.update_settings(data)