diff --git a/App.py b/App.py index c800b61..8db128d 100644 --- a/App.py +++ b/App.py @@ -1,6 +1,6 @@ from textual.containers import Container, Vertical from textual.app import ComposeResult, App -from textual.widgets import Static, Header +from textual.widgets import Static, Header, DataTable class FeedPane(Vertical): @@ -9,6 +9,9 @@ class FeedPane(Vertical): self.content = content self.id = "feed-pane" + def add(self, e): + self.content.append(e) + def compose(self): yield Vertical(*self.content, id="left-container") @@ -25,9 +28,6 @@ class FeedItem(Static): self.update(self.content) self.on_event - def on_click(self): - self.update("x") - class GUI(App): CSS_PATH = "app.css" @@ -37,21 +37,33 @@ class GUI(App): self.i = 0 def on_key(self, event): - item = self.query(FeedItem)[self.i] - item.set_styles("color: auto;") + # item = self.query(FeedItem)[self.i] + # item.set_styles("color: auto;") if event.key == "j": self.i += 1 elif event.key == "k": self.i -= 1 + elif event.key == "r": + pane = self.query_one(DataTable) + pane.data = {} + pane.row_count = 0 + pane._line_no = 0 + pane._y_offsets = [] + pane._require_update_dimensions = True + pane.check_idle() + elif event.key == "a": + pane = self.query_one(DataTable) + pane.add_rows([["XXX"]]) else: pass - item = self.query(FeedItem)[self.i] - item.set_styles("color: blue;") + # item = self.query(FeedItem)[self.i] + # item.set_styles("color: blue;") def compose(self) -> ComposeResult: yield Header() yield Container( - FeedPane([FeedItem(f"Feed# {number}", number) for number in range(15)]), + # FeedPane([FeedItem(f"Feed# {number}", number) for number in range(15)]), + DataTable(), Vertical( *[Static("Horizontally"), Static("Positioned"), @@ -62,6 +74,12 @@ class GUI(App): id="app-grid", ) + def on_mount(self): + dt = self.query_one(DataTable) + dt.add_column("Feeds", width = 60) + # dt.add_rows([[FeedItem(f"Feed# {number}", number)] for number in range(15)]) + dt.add_rows([[str(number)] for number in range(15)]) + dt.focus() if __name__ == "__main__": app = GUI()