Source code for GUIBRUSHR.GUI.Input_Output_Panels.Output_Panels.OutputPanel
"""
Output Panel module for GUIBRUSHR application.
This module contains the OutputPanel class which serves as a container for output-related
components including a table panel and button panel for data retrieval.
The OutputPanel is responsible for:
- Displaying data in a tabular format
- Providing buttons for data retrieval operations
- Managing the layout of output components
- Handling exceptions during data operations
"""
from GUIBRUSHR.GUI.LAYOUT.MyPanel import MyPanel
from GUIBRUSHR.GUI.Input_Output_Panels.Output_Panels.PanelButtonRetrieval import PanelButtonRetrieval
from GUIBRUSHR.GUI.Input_Output_Panels.Output_Panels.PanelTableRetrieval import PanelTableRetrieval
[docs]
class OutputPanel(MyPanel):
"""
A panel class that manages the output interface components of the application.
This class extends MyPanel to create a container that holds both a table panel
for displaying data and a button panel for data retrieval operations.
The panel is organized in a grid layout with:
- Table panel on the left (column 1)
- Button panel on the right (column 2)
Attributes:
width_GUI (int): The width of the GUI panel in pixels
parent: The parent widget of this panel
path_default (str): Default path for file operations
panel_table (PanelTableRetrieval): Panel for displaying data in table format
panel_buttons (PanelButtonRetrieval): Panel containing retrieval operation buttons
global_exc (int): Global exception counter for tracking errors
"""
[docs]
def __init__(self, parent, row, column, color, path_default, width_GUI, height_frame, window, **kwargs):
"""
Initialize the OutputPanel with its components.
Args:
parent: The parent widget that contains this panel
row (int): Row position in the grid layout
column (int): Column position in the grid layout
color (str): Background color of the panel
path_default (Path, str): Default path for file operations
width_GUI (int): Width of the GUI panel in pixels
height_frame (int): Height of the frame in pixels
window: The main window instance
**kwargs: Additional keyword arguments passed to the parent class
Note:
The panel is initialized with two sub-panels:
1. A table panel for data display (PanelTableRetrieval)
2. A button panel for data operations (PanelButtonRetrieval)
"""
# Initialize the parent MyPanel class
super().__init__(window, color, row, column, width=width_GUI, height=height_frame, **kwargs)
# Store instance variables for panel configuration
self.width_GUI = width_GUI
self.parent = parent
self.path_default = path_default
# Initialize sub-panels with specific positions in the grid
# Table panel is placed in column 0
self.panel_table = PanelTableRetrieval(self, color, 0, 1, width_GUI)
# Button panel is placed in column 1
self.panel_buttons = PanelButtonRetrieval(self, color, 0, 2)
# Initialize global exception counter for error tracking
self.global_exc = 1