Source code for GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.InputPanel
"""
Input Panel Module
This module defines the InputPanel class which serves as the main container for all input-related panels
in the GUI application. It manages multiple tab panels for different input functionalities.
"""
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FrameCCNIght.FrameCCNight import FrameCCNight
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FrameGenerationHRData.FrameGenerationHRData import \
FrameGenerationHRData
from GUIBRUSHR.GUI.LAYOUT.MyPanel import MyPanel
from GUIBRUSHR.GUI.LAYOUT.MyTabPanel import MyTabPanel
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FramePath.FramePath import FramePath
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FrameTellRem.FrameTellRem import FrameTellRem
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.Frame_Parameters.FrameParameter import FrameParameter
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FrameManualModel.FrameManualModel import FrameManualModel
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.Frame_Retrieval_Analysis.FrameRetrievalAnalysis import FrameRetrievalAnalysis
from GUIBRUSHR.General_Constants.FunctionsAndConstants.Constant_Variables import ConstantVariables
from GUIBRUSHR.GUI.Input_Output_Panels.Input_Panels.TabPanels.FrameDBInteractions.FrameDBInteractions import FrameDBInteractions
[docs]
class InputPanel(MyPanel):
"""
A panel class that manages multiple input-related tab panels in the GUI application.
This class inherits from MyPanel and serves as a container for various input panels
organized in tabs. Each tab represents a different input functionality of the application.
Attributes:
width_GUI (int): Width of the GUI panel
parent: Parent widget of the panel
path_default (str): Default path for file operations
tab_manager (MyTabPanel): Manager for the tab panels
frame_path (FramePath): Panel for path-related inputs
frame_parameter (FrameParameter): Panel for parameter inputs
frame_retrieval_analysis (FrameRetrievalAnalysis): Panel for retrieval analysis
frame_tell_rem (FrameTellRem): Panel for TellRem functionality
frame_manual_model (FrameManualModel): Panel for manual model inputs
frame_cc_night (FrameCCNight): Panel for CC night functionality
frame_simulation_HR (FrameGenerationHRData): Panel for HR data simulation
frame_db_interactions (FrameDBInteractions): Panel for database interactions
"""
[docs]
def __init__(self, parent, row, column, color, path_default, width_GUI, height_frame, window, **kwargs):
"""
Initialize the InputPanel with its components and layout.
Args:
parent: Parent widget
row (int): Row position in the grid
column (int): Column position in the grid
color (str): Background color of the panel
path_default (str, Path): Default path for file operations
width_GUI (int): Width of the GUI panel
height_frame (int): Height of the frame
window: Main window instance
**kwargs: Additional keyword arguments passed to the parent class
"""
# Initialize parent class
super().__init__(window, color, row, column, width=width_GUI, height=height_frame, **kwargs)
# Store instance variables
self.width_GUI = width_GUI
self.parent = parent
self.path_default = path_default
# Initialize tab manager with predefined tab list
self.tab_manager = MyTabPanel(
parent=self,
tab_list=ConstantVariables.LIST_TAB_MACRO,
row=0,
column=0,
width=width_GUI + 100
)
# Initialize all frame panels
self._initialize_frame_panels(window, width_GUI, height_frame)
def _initialize_frame_panels(self, window, width_GUI, height_frame):
"""
Initialize all frame panels with their respective configurations.
Args:
window: Main window instance
width_GUI (int): Width of the GUI panel
height_frame (int): Height of the frame
"""
# Path frame panel
self.frame_path = FramePath(
self.tab_manager.tab_list[0],
0, 1,
ConstantVariables.COLOR_SUB_NOTEBOOK,
self.path_default,
self,
width_GUI,
int(height_frame)
)
# Parameter frame panel
self.frame_parameter = FrameParameter(
self.tab_manager.tab_list[1],
0, 1,
ConstantVariables.COLOR_SUB_NOTEBOOK,
self.path_default,
self
)
# Retrieval analysis frame panel
self.frame_retrieval_analysis = FrameRetrievalAnalysis(
self.tab_manager.tab_list[2],
0, 1,
ConstantVariables.COLOR_SUB_NOTEBOOK,
self.path_default,
self,
width_GUI,
height_frame,
window
)
# TellRem frame panel
self.frame_tell_rem = FrameTellRem(
self.tab_manager.tab_list[3],
0, 1,
ConstantVariables.COLOR_SUB_NOTEBOOK,
self.path_default,
self,
window
)
# Manual model frame panel
self.frame_manual_model = FrameManualModel(
self.tab_manager.tab_list[4],
0, 1,
ConstantVariables.COLOR_SUB_NOTEBOOK,
self.path_default,
self,
width_GUI,
height_frame,
window
)
# CC Night frame panel
self.frame_cc_night = FrameCCNight(
self.tab_manager.tab_list[5],
ConstantVariables.COLOR_SUB_NOTEBOOK,
0, 1,
self.path_default,
self,
width_GUI,
height_frame,
window
)
# Simulation HR frame panel
self.frame_simulation_HR = FrameGenerationHRData(
self.tab_manager.tab_list[6],
ConstantVariables.COLOR_SUB_NOTEBOOK,
0, 1,
self.path_default,
self,
window,
width_GUI,
height_frame
)
# Database interactions frame panel
self.frame_db_interactions = FrameDBInteractions(
self.tab_manager.tab_list[7],
ConstantVariables.COLOR_SUB_NOTEBOOK,
0, 1,
self.path_default,
self,
window
)