refactor(gui)

This commit is contained in:
Kristofers Solo 2023-11-08 14:49:02 +02:00
parent 60e3335105
commit ee3737497e

View File

@ -19,6 +19,10 @@ class App(ctk.CTk):
self.resizable(width=True, height=True) self.resizable(width=True, height=True)
self.data = inventory.list_all() self.data = inventory.list_all()
self.display()
def display(self) -> None:
"""Display the main application interface."""
self.populate_table() self.populate_table()
self.display_search() self.display_search()
self.display_add_button() self.display_add_button()
@ -55,7 +59,7 @@ class App(ctk.CTk):
"""Search for b books when <Enter> key ir pressed in the search entry field.""" """Search for b books when <Enter> key ir pressed in the search entry field."""
value = search_entry.get() value = search_entry.get()
if value == "": if value == "":
self.update() self.refresh()
else: else:
data = [] data = []
# Search for books with matching ISBN in the inventory. # Search for books with matching ISBN in the inventory.
@ -73,7 +77,7 @@ class App(ctk.CTk):
if authors: if authors:
data += authors data += authors
self.update(data) self.refresh(data)
# Bind the search function to the <Enter> key press # Bind the search function to the <Enter> key press
search_entry.bind("<Return>", command=search) search_entry.bind("<Return>", command=search)
@ -126,13 +130,13 @@ class App(ctk.CTk):
else: else:
self.inventory.add(book) self.inventory.add(book)
popup.destroy() popup.destroy()
self.update() self.refresh()
def delete() -> None: def delete() -> None:
"""Delete the book from the inventory.""" """Delete the book from the inventory."""
self.inventory.delete(book.isbn) self.inventory.delete(book.isbn)
popup.destroy() popup.destroy()
self.update() self.refresh()
def cancel() -> None: def cancel() -> None:
"""Close the book menu.""" """Close the book menu."""
@ -164,14 +168,14 @@ class App(ctk.CTk):
button = ctk.CTkButton(root, text=text, command=command, width=width, text_color=text_color, fg_color=fg_color, hover_color=hover_color) button = ctk.CTkButton(root, text=text, command=command, width=width, text_color=text_color, fg_color=fg_color, hover_color=hover_color)
button.grid(row=row, column=col, padx=padx, pady=pady) button.grid(row=row, column=col, padx=padx, pady=pady)
def update(self, data=None) -> None: def refresh(self, data=None) -> None:
"""Update the table with new data or reset it.""" """Update the table with new data or reset it."""
self.clear_table() self.clear_table()
self.data = data if data else self.inventory.list_all() self.data = data if data else self.inventory.list_all()
self.populate_table() self.display()
def clear_table(self) -> None: def clear_table(self) -> None:
"""Clear the table in the main window.""" """Clear the table in the main window."""
for widget in self.grid_slaves(): for widget in self.grid_slaves():
if isinstance(widget, ctk.CTkLabel): if isinstance(widget, ctk.CTkEntry) or isinstance(widget, ctk.CTkButton):
widget.destroy() widget.destroy()