"""sn_verfahrensgebiet/ui/dockwidget.py – Haupt-DockWidget für sn_verfahrensgebiet. Verwaltet die Tabs für Verfahrensgebiet-Bearbeitung, Druck und Einstellungen. """ from sn_basis.ui.tabs.settings_tab import SettingsTab from sn_basis.ui.tabs.print_tab import PrintTab from sn_verfahrensgebiet.ui.tabs.working_tab import WorkingTab from sn_basis.ui.base_dockwidget import BaseDockWidget from sn_basis.functions.qt_wrapper import QTabWidget from sn_basis.functions.message_wrapper import error class DockWidget(BaseDockWidget): """Haupt-DockWidget für sn_verfahrensgebiet mit Tab-Verwaltung. Attributes: tabs: Liste von Tab-Klassen (WorkingTab, PrintTab, SettingsTab) pruefmanager: Prüfmanager-Instanz für Validierung data_grabber: DataGrabber-Instanz für Fachdatenabruf """ tabs = [WorkingTab, PrintTab, SettingsTab] def __init__(self, parent=None, subtitle="", pruefmanager=None, data_grabber=None): """Initialisiert das DockWidget mit Services und Tabs. Args: parent: Übergeordnetes Widget subtitle: Untertitel des DockWidgets pruefmanager: Prüfmanager-Instanz data_grabber: DataGrabber-Instanz """ super().__init__(parent, subtitle) self.pruefmanager = pruefmanager self.data_grabber = data_grabber self._init_tabs_with_services() def _init_tabs_with_services(self): """Tabs neu aufbauen und Services (z.B. fuer PrintTab) injizieren.""" try: self.setWidget(None) tab_widget = QTabWidget() for tab_class in self.tabs: tab_instance = tab_class(self) tab_title = getattr(tab_class, "tab_title", tab_class.__name__) tab_widget.addTab(tab_instance, tab_title) if hasattr(tab_instance, "set_services"): tab_instance.set_services( pruefmanager=self.pruefmanager, data_grabber=self.data_grabber, ) self.setWidget(tab_widget) except Exception as e: error("Services-Tabs konnten nicht initialisiert werden", str(e))