def test_rearrangectrl3(self): rc = wx.RearrangeCtrl(self.frame, order=[0, 1, 2], items=['one', 'two', 'three'])
def test_rearrangectrl4(self): rc = wx.RearrangeCtrl() rc.Create(self.frame, order=[1, 2, 0], items=['one', 'two', 'three'])
def gui_build(self): pnl = wx.Panel(self) initializer = InitializeData() self.building_dict = initializer.populate_buildings() building_label = wx.StaticText(pnl, label='Building') building_options = list(self.building_dict.keys()) self.building_choice = wx.Choice(pnl, choices=building_options) self.building_choice.SetSelection(3) self.Bind(wx.EVT_CHOICE, self.handle_building_choice_select, self.building_choice) front_faces_label = wx.StaticText(pnl, label='Front Faces') front_faces_option = [ 'North', 'North East', 'East', 'South East', 'South', 'South West', 'West', 'North West' ] self.front_faces_choice = wx.Choice(pnl, choices=front_faces_option) self.front_faces_choice.SetSelection(0) baseline_code_label = wx.StaticText(pnl, label='Baseline Code') baseline_code_option = [ '', ] self.baseline_code_choice = wx.Choice(pnl, choices=baseline_code_option) self.baseline_code_choice.SetSelection(0) building_hbox = wx.BoxSizer(wx.HORIZONTAL) building_hbox.Add(building_label, 0, wx.ALL, 10) building_hbox.Add(self.building_choice, 1, wx.ALL | wx.EXPAND, 10) building_hbox.Add(front_faces_label, 0, wx.ALL, 10) building_hbox.Add(self.front_faces_choice, 1, wx.ALL | wx.EXPAND, 10) building_hbox.Add(baseline_code_label, 0, wx.ALL, 10) building_hbox.Add(self.baseline_code_choice, 1, wx.ALL | wx.EXPAND, 10) #lot_boundaries_label = wx.StaticText(pnl, label='Lot Boundaries (feet)') #width_label = wx.StaticText(pnl, label='Width') #self.width_field = wx.TextCtrl(pnl, value="500") #depth_label = wx.StaticText(pnl, label='Depth') #self.depth_field = wx.TextCtrl(pnl, value="500") #lot_hbox = wx.BoxSizer(wx.HORIZONTAL) #lot_hbox.Add(lot_boundaries_label, 0, wx.ALL, 10) #lot_hbox.Add(width_label, 0, wx.ALL, 10) #lot_hbox.Add(self.width_field, 1, wx.ALL | wx.EXPAND, 10) #lot_hbox.Add(depth_label, 0, wx.ALL, 10) #lot_hbox.Add(self.depth_field, 1, wx.ALL | wx.EXPAND, 10) powerpoint_label = wx.StaticText(pnl, label='PowerPoint File', size=(90, -1)) self.powerpoint_filepick = wx.FilePickerCtrl( pnl, style=wx.FLP_DEFAULT_STYLE | wx.FLP_SMALL, message='Select the PowerPoint file', wildcard='PowerPoint files (*.pptx)|*.pptx') powerpoint_hbox = wx.BoxSizer(wx.HORIZONTAL) powerpoint_hbox.Add(powerpoint_label, 0, wx.ALL, 10) powerpoint_hbox.Add(self.powerpoint_filepick, 1, wx.ALL | wx.EXPAND, 10) excel_label = wx.StaticText(pnl, label='Excel File', size=(90, -1)) self.excel_filepick = wx.FilePickerCtrl( pnl, style=wx.FLP_DEFAULT_STYLE | wx.FLP_SMALL, message='Select the Excel file', wildcard='Excel files (*.xlsx)|*.xlsx') excel_hbox = wx.BoxSizer(wx.HORIZONTAL) excel_hbox.Add(excel_label, 0, wx.ALL, 10) excel_hbox.Add(self.excel_filepick, 1, wx.ALL | wx.EXPAND, 10) weather_label = wx.StaticText(pnl, label='Weather File', size=(90, -1)) self.weather_filepick = wx.FilePickerCtrl( pnl, style=wx.FLP_DEFAULT_STYLE | wx.FLP_SMALL, message='Select the EnergyPlus Weather file', wildcard='EnergyPlus Weather files (*.epw)|*.epw') weather_hbox = wx.BoxSizer(wx.HORIZONTAL) weather_hbox.Add(weather_label, 0, wx.ALL, 10) weather_hbox.Add(self.weather_filepick, 1, wx.ALL | wx.EXPAND, 10) occ_area_label = wx.StaticText(pnl, -1, "Occupancy Areas") sqft_label = wx.StaticText(pnl, -1, "(square feet)") occ_area_sizer = wx.FlexGridSizer(cols=2, vgap=5, hgap=5) occ_area_sizer.AddGrowableCol(0) occ_area_sizer.AddGrowableCol(1) occ_area_sizer.Add( occ_area_label, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, 5) occ_area_sizer.Add(sqft_label, 0, wx.TOP | wx.BOTTOM, 5) max_num_occ_areas = 10 for count in range(max_num_occ_areas): label = wx.StaticText(pnl, -1, 'xxxx', size=(150, -1)) text_control = wx.TextCtrl(pnl, -1, '0', size=(80, -1)) self.occ_areas_text_controls.append((label, text_control)) occ_area_sizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, 5) # wx.ALIGN_RIGHT | occ_area_sizer.Add(text_control, 0, wx.TOP, 5) occ_areas = { 'Quick Service Restaurant': 30000, 'Full Service Restaurant': 0, 'Retail Standalone': 0, 'junk': 0 } self.update_occ_areas(occ_areas) #call to initialize the screen self.handle_building_choice_select(wx.EVT_CHOICE) slides_label = wx.StaticText(pnl, label='Slides') slide_list_text = list(self.all_slide_details.keys()) slide_list_order = list(range(len(slide_list_text))) self.slide_list = wx.RearrangeCtrl(pnl, 1, size=wx.DefaultSize, items=slide_list_text, order=slide_list_order) slide_list_ctrl = self.slide_list.GetList() slide_list_ctrl.SetCheckedStrings([ slide_list_text[-1], ]) #set only the last slide (lighting power density) self.Bind(wx.EVT_LISTBOX, self.handle_slide_list_ctrl_click, slide_list_ctrl) slide_list_ctrl.SetSelection(0) slides_sizer = wx.BoxSizer(wx.VERTICAL) slides_sizer.Add(slides_label, 0, wx.ALL, 5) slides_sizer.Add(self.slide_list, 1, wx.ALL | wx.EXPAND, 5) self.slide_details_box = wx.StaticBox( pnl, -1, "Slide Details for: Aspect Ratio") top_border, other_border = self.slide_details_box.GetBordersForSizer() slide_details_sizer = wx.BoxSizer(wx.VERTICAL) slide_details_sizer.AddSpacer(top_border) select_mode_hbox = wx.BoxSizer(wx.HORIZONTAL) select_mode_label = wx.StaticText(self.slide_details_box, label='Selection Mode') select_mode_options = [ 'Automatic', 'Exclude Best Option', 'Exclude Two Best Options', 'Exclude Three Best Options', 'Select Option 1', 'Select Option 2', 'Select Option 3', 'Select Option 4', 'Select Option 5', 'Select Option 6', 'Select Option 7', 'Select Option 8' ] self.select_mode_choice = wx.Choice(self.slide_details_box, choices=select_mode_options) self.select_mode_choice.SetSelection(0) self.Bind(wx.EVT_CHOICE, self.handle_select_mode_choice_select, self.select_mode_choice) select_mode_hbox.Add(select_mode_label, 0, wx.ALL, 5) select_mode_hbox.Add(self.select_mode_choice, 1, wx.ALL, 5) slide_details_sizer.Add(select_mode_hbox, 0, wx.ALL, 5) slide_details_sizer.Hide(select_mode_hbox, recursive=True) option_simulated_label = wx.StaticText(self.slide_details_box, label="Options Simulated") slide_details_sizer.Add(option_simulated_label, 0, wx.ALL, 5) value_options = [ 'none', ] self.value_choice = wx.CheckListBox(self.slide_details_box, 1, size=wx.DefaultSize, choices=value_options) self.Bind(wx.EVT_CHECKLISTBOX, self.handle_value_choice_check, self.value_choice) slide_details_sizer.Add(self.value_choice, 1, wx.ALL | wx.EXPAND, 5) self.incremental_checkbox = wx.CheckBox( self.slide_details_box, label='Include in Incremental Improvements') selection_mode, include_incremental, options_list, osw_list = self.all_slide_details[ slide_list_ctrl.GetString((slide_list_ctrl.GetSelection()))] self.set_slide_details(selection_mode, include_incremental, options_list) self.Bind(wx.EVT_CHECKBOX, self.handle_incremental_checkbox_check, self.incremental_checkbox) slide_details_sizer.Add(self.incremental_checkbox, 0, wx.ALL, 5) self.incremental_checkbox.Hide( ) # hide portions of the GUI that are not yet implemented self.slide_details_box.SetSizer(slide_details_sizer) self.run_simulations_button = wx.Button(pnl, 1, "Run Simulations", size=(140, 30)) self.run_simulations_button.Bind(wx.EVT_BUTTON, self.handle_run_simulation_button) self.cancel_simulations_button = wx.Button(pnl, 1, "Cancel Simulations", size=(140, 30)) self.cancel_simulations_button.Bind( wx.EVT_BUTTON, self.handle_cancel_simulation_button) self.cancel_simulations_button.Disable() run_cancel_sizer = wx.BoxSizer(wx.HORIZONTAL) run_cancel_sizer.Add(self.run_simulations_button, 0, wx.ALL | wx.ALIGN_RIGHT, 5) run_cancel_sizer.Add(self.cancel_simulations_button, 0, wx.ALL | wx.ALIGN_RIGHT, 5) bottom_right_sizer = wx.BoxSizer(wx.VERTICAL) bottom_right_sizer.Add(self.slide_details_box, 1, wx.ALL | wx.ALIGN_TOP | wx.EXPAND, 5) bottom_right_sizer.Add( run_cancel_sizer, 0, wx.ALL | wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT | wx.EXPAND, 5) bottom_hbox = wx.BoxSizer(wx.HORIZONTAL) bottom_hbox.Add(occ_area_sizer, 1, wx.ALL | wx.EXPAND, 5) bottom_hbox.Add(slides_sizer, 2, wx.ALL | wx.EXPAND, 5) bottom_hbox.Add(bottom_right_sizer, 2, wx.ALL | wx.EXPAND, 5) main_vbox = wx.BoxSizer(wx.VERTICAL) main_vbox.Add(building_hbox, 0, wx.EXPAND | wx.LEFT, border=20) #main_vbox.Add(lot_hbox, 0, wx.EXPAND | wx.LEFT, border=20) main_vbox.Add(powerpoint_hbox, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, border=20) main_vbox.Add(excel_hbox, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, border=20) main_vbox.Add(weather_hbox, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, border=20) main_vbox.Add(bottom_hbox, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, border=20) main_vbox.Add(self.status_bar, 0) main_vbox.Hide( excel_hbox, recursive=True ) # hide portions of the GUI that are not yet implemented pnl.SetSizer(main_vbox) pnl.Fit()