2026-04-20 14:33:13 +02:00
|
|
|
|
"""sn_verfahrensgebiet/ui/dockwidget.py – Haupt-DockWidget für sn_verfahrensgebiet.
|
|
|
|
|
|
Verwaltet die Tabs für Verfahrensgebiet-Bearbeitung, Druck und Einstellungen.
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
2025-11-17 10:05:52 +01:00
|
|
|
|
from sn_basis.ui.tabs.settings_tab import SettingsTab
|
2026-03-26 20:16:02 +01:00
|
|
|
|
from sn_basis.ui.tabs.print_tab import PrintTab
|
2025-11-18 16:10:58 +01:00
|
|
|
|
from sn_verfahrensgebiet.ui.tabs.working_tab import WorkingTab
|
2025-11-17 11:29:25 +01:00
|
|
|
|
from sn_basis.ui.base_dockwidget import BaseDockWidget
|
2026-03-27 11:19:07 +01:00
|
|
|
|
from sn_basis.functions.qt_wrapper import QTabWidget
|
|
|
|
|
|
from sn_basis.functions.message_wrapper import error
|
2025-11-17 10:05:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
2025-11-17 11:29:25 +01:00
|
|
|
|
class DockWidget(BaseDockWidget):
|
2026-04-20 14:33:13 +02:00
|
|
|
|
"""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
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
2026-03-26 20:16:02 +01:00
|
|
|
|
tabs = [WorkingTab, PrintTab, SettingsTab]
|
2026-03-27 11:19:07 +01:00
|
|
|
|
|
|
|
|
|
|
def __init__(self, parent=None, subtitle="", pruefmanager=None, data_grabber=None):
|
2026-04-20 14:33:13 +02:00
|
|
|
|
"""Initialisiert das DockWidget mit Services und Tabs.
|
|
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
|
parent: Übergeordnetes Widget
|
|
|
|
|
|
subtitle: Untertitel des DockWidgets
|
|
|
|
|
|
pruefmanager: Prüfmanager-Instanz
|
|
|
|
|
|
data_grabber: DataGrabber-Instanz
|
|
|
|
|
|
"""
|
2026-03-27 11:19:07 +01:00
|
|
|
|
super().__init__(parent, subtitle)
|
|
|
|
|
|
|
|
|
|
|
|
self.pruefmanager = pruefmanager
|
|
|
|
|
|
self.data_grabber = data_grabber
|
|
|
|
|
|
|
|
|
|
|
|
self._init_tabs_with_services()
|
|
|
|
|
|
|
|
|
|
|
|
def _init_tabs_with_services(self):
|
2026-09-14 12:19:57 +02:00
|
|
|
|
"""Tabs neu aufbauen und Services (z.B. für PrintTab) injizieren."""
|
2026-03-27 11:19:07 +01:00
|
|
|
|
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))
|