# -*- coding: utf-8 -*- """ Basisklasse fuer Installer-Views. """ from __future__ import annotations from typing import TYPE_CHECKING, ClassVar from textual.containers import VerticalScroll if TYPE_CHECKING: from ..config import InstallerConfig class InstallerView(VerticalScroll): """ Basisklasse fuer alle Installer-Ansichten. Klassenattribute: TITLE: Anzeige-Titel der Ansicht VIEW_ID: Eindeutige ID fuer Zuordnung MODES: Liste der Modi in denen dieser View sichtbar ist """ TITLE: ClassVar[str] = "" VIEW_ID: ClassVar[str] = "" MODES: ClassVar[list[str]] = ["server", "client", "standalone", "config"] def __init__(self, installer_config: InstallerConfig, **kwargs) -> None: super().__init__(**kwargs) self._config = installer_config @property def installer_config(self) -> InstallerConfig: """Zugriff auf die Installer-Konfiguration.""" return self._config async def on_activate(self) -> None: """Hook: View wird aktiviert (sichtbar gemacht).""" pass async def on_deactivate(self) -> None: """Hook: View wird deaktiviert (versteckt).""" pass def validate(self) -> str | None: """ Validiert die Eingaben dieses Views. Returns: Fehlermeldung oder None bei Erfolg. """ return None