# -*- coding: utf-8 -*- """ Key-Value-Tabelle fuer Statusanzeigen. """ from textual.widget import Widget from textual.app import RenderResult from rich.table import Table class StatusTable(Widget): """ Formatierte Key-Value-Tabelle. Zeigt Daten als zweispaltige Tabelle an, ideal fuer Systemmetriken und Konfigurationswerte. """ DEFAULT_CSS = """ StatusTable { height: auto; margin: 0 1; } """ def __init__(self, title: str = "", **kwargs) -> None: super().__init__(**kwargs) self._title = title self._rows: list[tuple[str, str]] = [] def update_data(self, rows: list[tuple[str, str]]) -> None: """Aktualisiert die angezeigten Daten.""" self._rows = rows self.refresh() def render(self) -> RenderResult: """Rendert die Tabelle.""" table = Table( show_header=False, show_edge=False, pad_edge=False, expand=True, title=self._title if self._title else None, title_style="bold", ) table.add_column("Key", style="bold cyan", ratio=1, no_wrap=True) table.add_column("Value", ratio=2) for key, value in self._rows: table.add_row(key, value) return table