def __init__(self, parent, Diag_obj): wx.Panel.__init__(self, parent, wx.ID_ANY, style=wx.SUNKEN_BORDER) self.Diag = Diag_obj self.grid_sizer = wx.GridSizer(0, 4, 0, 0) self.art_data_beamline = 1 self.art_data_base_freq_140 = True self.art_data_pol_coeff_X = 1.0 self.art_data_pol_launch = 0.0 self.art_data_tor_launch = 0.0 self.widget_dict = {} self.selected_channel = 0 for attribute in Diag_obj.properties: if(Diag_obj.data_types_dict[attribute] != "bool"): scale = None if(attribute in Diag_obj.scale_dict): scale = Diag_obj.scale_dict[attribute] self.widget_dict[attribute] = simple_label_tc(self, Diag_obj.descriptions_dict[attribute], \ getattr(Diag_obj, attribute), \ Diag_obj.data_types_dict[attribute], \ scale=scale) else: self.widget_dict[attribute] = simple_label_cb(self, Diag_obj.descriptions_dict[attribute], \ getattr(Diag_obj, attribute)) self.grid_sizer.Add(self.widget_dict[attribute], 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.SetSizer(self.grid_sizer)
def __init__(self, parent, eq_data_3D, working_dir): wx.Dialog.__init__(self, parent, wx.ID_ANY) self.eq_data_3D = eq_data_3D.copy() self.working_dir = working_dir self.sizer = wx.BoxSizer(wx.VERTICAL) self.grid = wx.GridSizer(0,4,0,0) self.widgets = {} for key in eq_data_3D.keys(): if(type(eq_data_3D[key]) == bool): self.widgets[key] = simple_label_cb(self,key.replace("_", " "), eq_data_3D[key]) else: self.widgets[key] = simple_label_tc(self,key.replace("_", " "), eq_data_3D[key], None) self.grid.Add(self.widgets[key], 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) self.sizer.Add(self.grid, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.ButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self.FinishButton = wx.Button(self, wx.ID_ANY, 'Accept') self.Bind(wx.EVT_BUTTON, self.EvtAccept, self.FinishButton) self.DiscardButton = wx.Button(self, wx.ID_ANY, 'Discard') self.Bind(wx.EVT_BUTTON, self.EvtClose, self.DiscardButton) self.select_equ_file_button = wx.Button(self, wx.ID_ANY, "Select equilibrium file") self.select_equ_file_button.Bind(wx.EVT_BUTTON, self.OnSelectEquFile) self.sizer.Add(self.select_equ_file_button, 1, wx.EXPAND | wx.ALL, 5) self.select_vessel_file_button = wx.Button(self, wx.ID_ANY, "Select vessel file") self.select_vessel_file_button.Bind(wx.EVT_BUTTON, self.OnSelectVesselFile) self.sizer.Add(self.select_vessel_file_button, 1, wx.EXPAND | wx.ALL, 5) self.ButtonSizer.Add(self.DiscardButton, 0, wx.ALL | wx.ALIGN_BOTTOM, 5) self.ButtonSizer.Add(self.FinishButton, 0, wx.ALL | wx.ALIGN_BOTTOM, 5) self.sizer.Add(self.ButtonSizer, 0, wx.ALL | \ wx.ALIGN_CENTER_HORIZONTAL, 5) self.SetSizer(self.sizer) self.SetClientSize(self.GetEffectiveMinSize())
def __init__(self, parent, Scenario, working_dir): wx.Panel.__init__(self, parent, wx.ID_ANY) self.Bind(EVT_UPDATE_DATA, self.OnUpdate) self.Notebook = Diag_Notebook(self) self.diag_select_panel = wx.Panel(self, wx.ID_ANY, style=wx.SUNKEN_BORDER) self.diag_select_panel.sizer = wx.BoxSizer(wx.VERTICAL) self.diag_select_panel.SetSizer(self.diag_select_panel.sizer) self.diag_select_label = wx.StaticText(self.diag_select_panel, wx.ID_ANY, "Select diagnostics to model") self.diag_select_panel.sizer.Add(self.diag_select_label, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.grid = wx.GridSizer(0, 10, 0, 0) self.diag_cb_dict = od() self.working_dir = working_dir for Diagkey in Scenario["avail_diags_dict"]: self.diag_cb_dict.update({Diagkey :simple_label_cb(self.diag_select_panel, Diagkey, False)}) self.grid.Add(self.diag_cb_dict[Diagkey], 0, \ wx.TOP | wx.ALL, 5) for Diagkey in Scenario["used_diags_dict"]: if(Diagkey in self.diag_cb_dict): self.diag_cb_dict[Diagkey].SetValue(True) self.sizer = wx.BoxSizer(wx.HORIZONTAL) self.diag_config_sizer = wx.BoxSizer(wx.VERTICAL) self.diag_select_panel.sizer.Add(self.grid, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.load_launch_panel = wx.Panel(self, wx.ID_ANY, style=wx.SUNKEN_BORDER) self.load_launch_panel.sizer = wx.BoxSizer(wx.VERTICAL) self.load_from_old_button = wx.Button(self.load_launch_panel, wx.ID_ANY, "Load launch from ECRad result/scenario") self.load_from_old_button.Bind(wx.EVT_BUTTON, self.LoadLaunch) self.load_launch_panel.sizer.Add(self.load_from_old_button, 1, wx.ALL | wx.EXPAND, 5) self.load_from_omas_button = wx.Button(self.load_launch_panel, wx.ID_ANY, "Load launch from OMAS file") self.load_from_omas_button.Bind(wx.EVT_BUTTON, self.LoadFromOMAS) self.load_launch_panel.sizer.Add(self.load_from_omas_button, 1, wx.ALL | wx.EXPAND, 5) self.gen_ext_from_old_button = wx.Button(self.load_launch_panel, wx.ID_ANY, "Generate Ext launch from ECRad result") self.gen_ext_from_old_button.Bind(wx.EVT_BUTTON, self.GenExtFromOld) self.load_launch_panel.sizer.Add(self.gen_ext_from_old_button, 1, wx.ALL | wx.EXPAND, 5) self.gen_ext_from_raylaunch_button = wx.Button(self.load_launch_panel, wx.ID_ANY, "Import ray_launch as EXT") self.gen_ext_from_raylaunch_button.Bind(wx.EVT_BUTTON, self.GenExtFromRaylaunch) self.load_launch_panel.sizer.Add(self.gen_ext_from_raylaunch_button, 1, wx.ALL | wx.EXPAND, 5) self.diag_config_sizer.Add(self.diag_select_panel, 0, wx.ALL | wx.EXPAND, 5) self.load_launch_panel.SetSizer(self.load_launch_panel.sizer) self.Notebook.Spawn_Pages(Scenario["avail_diags_dict"]) self.diag_config_sizer.Add(self.Notebook, 0, wx.ALL | wx.LEFT, 5) self.sizer.Add(self.diag_config_sizer,0, wx.EXPAND | wx.ALL,5) self.sizer.Add(self.load_launch_panel,1, wx.TOP | wx.ALL,5) self.SetSizer(self.sizer) self.new_data_available = False
def __init__(self, parent, Diag_obj): wx.Panel.__init__(self, parent, wx.ID_ANY, style=wx.SUNKEN_BORDER) self.Diag = Diag_obj self.grid_sizer = wx.GridSizer(0, 4, 0, 0) self.art_data_beamline = 1 self.art_data_base_freq_140 = True self.art_data_pol_coeff_X = 1.0 self.art_data_pol_launch = 0.0 self.art_data_tor_launch = 0.0 self.widget_dict = {} self.selected_channel = 0 self.NewValues = False N_ch = getattr(Diag_obj, "N_ch") self.widget_dict["N_ch"] = simple_label_tc(self, Diag_obj.descriptions_dict["N_ch"], \ getattr(Diag_obj, "N_ch"), \ Diag_obj.data_types_dict["N_ch"]) self.grid_sizer.Add(self.widget_dict["N_ch"], 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.channel_ctrl_sizer = wx.BoxSizer(wx.VERTICAL) self.channel_select_ch = wx.Choice(self, wx.ID_ANY) self.channel_select_ch.AppendItems(np.array(range(1, N_ch + 1), dtype="|U3").tolist()) self.channel_select_ch.SetSelection(self.selected_channel) self.channel_select_ch.Bind(wx.EVT_CHOICE, self.OnNewChannelSelected) self.channel_ctrl_sizer.Add(self.channel_select_ch, 0, wx.EXPAND | wx.ALL, 5) self.update_N_ch_Button = wx.Button(self, label='Update Channel Number') self.update_N_ch_Button.Bind(wx.EVT_BUTTON, self.OnUpdateNch) self.channel_ctrl_sizer.Add(self.update_N_ch_Button, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 5) self.grid_sizer.Add(self.channel_ctrl_sizer, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) for attribute in Diag_obj.properties: if(attribute == "N_ch"): continue if(Diag_obj.data_types_dict[attribute] != "bool"): scale = None if(attribute in Diag_obj.scale_dict): scale = Diag_obj.scale_dict[attribute] self.widget_dict[attribute] = simple_label_tc(self, Diag_obj.descriptions_dict[attribute], \ getattr(Diag_obj, attribute)[self.selected_channel], \ Diag_obj.data_types_dict[attribute], \ scale=scale) else: self.widget_dict[attribute] = simple_label_cb(self, Diag_obj.descriptions_dict[attribute], \ getattr(Diag_obj, attribute)) self.grid_sizer.Add(self.widget_dict[attribute], 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.SetSizer(self.grid_sizer)
def __init__(self, parent, Config, border=1, maxwidth=max_var_in_row, \ parentmode=False, style=wx.TAB_TRAVERSAL | wx.NO_BORDER): wx.Panel.__init__(self, parent, wx.ID_ANY, style=style) self.Bind(EVT_UPDATE_CONFIG, self.OnConfigLoaded) self.name = "ECRad settings" columns = 8 self.sizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(self.sizer) self.grid_list = [] self.labels = [] self.lines = [] self.widgets = {} for key in Config.main_keys: self.lines.append(wx.StaticLine(self, wx.ID_ANY)) self.sizer.Add(self.lines[-1], 0, wx.ALL | wx.EXPAND, 5) self.labels.append( wx.StaticText(self, wx.ID_ANY, key + " Settings")) self.sizer.Add(self.labels[-1], 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.lines.append(wx.StaticLine(self, wx.ID_ANY)) self.sizer.Add(self.lines[-1], 0, wx.ALL | wx.EXPAND, 5) self.grid_list.append(wx.GridSizer(0, columns, 0, 0)) for sub_key in Config.sub_keys[key]: if (Config.types[sub_key] == "b"): self.widgets[sub_key] = simple_label_cb( self, Config.nice_labels[sub_key], Config[key][sub_key]) else: self.widgets[sub_key] = simple_label_tc( self, Config.nice_labels[sub_key], Config[key][sub_key], None) self.grid_list[-1].Add(self.widgets[sub_key], 0, wx.ALL | wx.LEFT | wx.TOP, 5) self.sizer.Add(self.grid_list[-1], 0, wx.ALL | wx.LEFT, 5) self.widgets["use_ext_rays"].SetToolTip( "Load ECRad results in the Scenario panel to enable") self.widgets["use_ext_rays"].Disable()
def __init__(self, parent): wx.Panel.__init__(self, parent, wx.ID_ANY) self.parent = parent self.sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(self.sizer) self.controlplotsizer = wx.BoxSizer(wx.VERTICAL) self.Results = None self.smoothing_time = 1.e-3 self.FigureControlPanel = FigureBook(self) self.Bind(EVT_UPDATE_DATA, self.OnUpdate) self.Bind(EVT_OTHER_RESULTS_LOADED, self.OnOtherResultsLoaded) self.controlgrid = wx.BoxSizer(wx.HORIZONTAL) self.controlgrid2 = wx.BoxSizer(wx.HORIZONTAL) self.lb_widgets = {} self.multiple = {} self.time_sizer = wx.BoxSizer(wx.VERTICAL) self.time_label = wx.StaticText(self, wx.ID_ANY, "time [s]") self.lb_widgets["time"] = wx.ListBox(self, wx.ID_ANY, size=(60, 100), style=wx.LB_MULTIPLE) self.time_sizer.Add(self.time_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.time_sizer.Add(self.lb_widgets["time"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.controlgrid.Add(self.time_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.multiple["time"] = True self.ch_sizer = wx.BoxSizer(wx.VERTICAL) self.ch_label = wx.StaticText(self, wx.ID_ANY, "ch. # | cold res. | warm .res") self.lb_widgets["ch"] = wx.ListBox(self, wx.ID_ANY, size=(120, 100), style=wx.LB_MULTIPLE) self.ch_sizer.Add(self.ch_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.ch_sizer.Add(self.lb_widgets["ch"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.controlgrid.Add(self.ch_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.multiple["ch"] = True self.mode_sizer = wx.BoxSizer(wx.VERTICAL) self.mode_label = wx.StaticText(self, wx.ID_ANY, "mode") self.lb_widgets["mode"] = wx.ListBox(self, wx.ID_ANY, size=(30, 100), style=wx.LB_MULTIPLE) self.mode_sizer.Add(self.mode_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.mode_sizer.Add(self.lb_widgets["mode"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.controlgrid.Add(self.mode_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.multiple["mode"] = True self.ray_sizer = wx.BoxSizer(wx.VERTICAL) self.ray_label = wx.StaticText(self, wx.ID_ANY, "ray #") self.lb_widgets["ray"] = wx.ListBox(self, wx.ID_ANY, size=(30, 100), style=wx.LB_MULTIPLE) self.ray_sizer.Add(self.ray_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.ray_sizer.Add(self.lb_widgets["ray"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.controlgrid.Add(self.ray_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.multiple["ray"] = True self.x_group_sizer = wx.BoxSizer(wx.VERTICAL) self.x_group_label = wx.StaticText(self, wx.ID_ANY, "x group") self.lb_widgets["x_group"] = wx.ListBox(self, wx.ID_ANY, size=(120, 100), style=wx.LB_SINGLE) self.x_group_sizer.Add(self.x_group_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.x_group_sizer.Add(self.lb_widgets["x_group"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.lb_widgets["x_group"].Bind(wx.EVT_LISTBOX, self.OnXGroupSelected) self.multiple["x_group"] = False self.controlgrid.Add(self.x_group_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.x_quant_sizer = wx.BoxSizer(wx.VERTICAL) self.x_quant_label = wx.StaticText(self, wx.ID_ANY, "x quantity") self.lb_widgets["x_quant"] = wx.ListBox(self, wx.ID_ANY, size=(120, 100), style=wx.LB_SINGLE) self.x_quant_sizer.Add(self.x_quant_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.x_quant_sizer.Add(self.lb_widgets["x_quant"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.controlgrid.Add(self.x_quant_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.multiple["x_quant"] = False self.y_group_sizer = wx.BoxSizer(wx.VERTICAL) self.y_group_label = wx.StaticText(self, wx.ID_ANY, "y group") self.lb_widgets["y_group"] = wx.ListBox(self, wx.ID_ANY, size=(120, 100), style=wx.LB_SINGLE) self.y_group_sizer.Add(self.y_group_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.y_group_sizer.Add(self.lb_widgets["y_group"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.lb_widgets["y_group"].Bind(wx.EVT_LISTBOX, self.OnYGroupSelected) self.multiple["y_group"] = False self.controlgrid.Add(self.y_group_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.y_quant_sizer = wx.BoxSizer(wx.VERTICAL) self.y_quant_label = wx.StaticText(self, wx.ID_ANY, "y quantity") self.lb_widgets["y_quant"] = wx.ListBox(self, wx.ID_ANY, size=(120, 100), style=wx.LB_MULTIPLE) self.y_quant_sizer.Add(self.y_quant_label, 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.y_quant_sizer.Add(self.lb_widgets["y_quant"], 0, wx.ALIGN_CENTRE_HORIZONTAL | wx.ALL, 5) self.lb_widgets["y_quant"].Bind(wx.EVT_LISTBOX, self.OnYQuantSelected) self.multiple["y_quant"] = True self.controlgrid.Add(self.y_quant_sizer, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.eq_aspect_ratio_cb = simple_label_cb(self, "Equal aspect ratio", False) self.figure_width_tc = simple_label_tc(self, "Figure width", 12.0, "real") self.figure_height_tc = simple_label_tc(self, "Figure height", 8.5, "real") self.AddPlotButton = wx.Button(self, wx.ID_ANY, 'Add plot') self.AddPlotButton.Bind(wx.EVT_BUTTON, self.OnPlot) self.ClearButton = wx.Button(self, wx.ID_ANY, 'Clear plots') self.Bind(wx.EVT_BUTTON, self.OnClear, self.ClearButton) self.controlgrid2.Add(self.eq_aspect_ratio_cb, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.controlgrid2.Add(self.figure_width_tc, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.controlgrid2.Add(self.figure_height_tc, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.controlgrid2.Add(self.AddPlotButton, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.controlgrid2.Add(self.ClearButton, 0, wx.ALIGN_BOTTOM | wx.ALL, 5) self.controlplotsizer.Add(self.controlgrid, 0, \ wx.LEFT | wx.ALL , 10) self.controlplotsizer.Add(self.controlgrid2, 0, \ wx.LEFT | wx.ALL , 10) self.controlplotsizer.Add(self.FigureControlPanel, 1, wx.ALL | wx.EXPAND, 10) self.aux_data_box_sizer = wx.BoxSizer(wx.VERTICAL) self.load_other_results_button = wx.Button(self, wx.ID_ANY, "Load other results") self.load_other_results_button.Bind(wx.EVT_BUTTON, self.OnLoadOtherResults) self.aux_data_box_sizer.Add(self.load_other_results_button, 0, wx.ALL | wx.EXPAND, 5) self.other_result_text = wx.StaticText( self, wx.ID_ANY, "Select result(s) for comparison") self.aux_data_box_sizer.Add(self.other_result_text, 0, wx.ALL | wx.TOP, 5) self.other_result_box = wx.ListBox(self, wx.ID_ANY, style=wx.LB_MULTIPLE, size=(100, 200)) self.aux_data_box_sizer.Add(self.other_result_box, 0, wx.ALL | wx.EXPAND, 5) self.clear_other_results_button = wx.Button(self, wx.ID_ANY, "Clear other results") self.clear_other_results_button.Bind(wx.EVT_BUTTON, self.OnClearOtherResults) self.aux_data_box_sizer.Add(self.clear_other_results_button, 0, wx.ALL | wx.EXPAND, 5) self.scenario_quant_text = wx.StaticText( self, wx.ID_ANY, "Add scenario quantity to plot") self.aux_data_box_sizer.Add(self.scenario_quant_text, 0, wx.ALL | wx.TOP, 5) self.scenario_quant_box = wx.ListBox(self, wx.ID_ANY, style=wx.LB_MULTIPLE, size=(100, 200)) self.aux_data_box_sizer.Add(self.scenario_quant_box, 0, wx.ALL | wx.EXPAND, 5) self.scenario_quant_box.Bind(wx.EVT_LISTBOX, self.OnScenarioQuantSelected) self.sizer.Add(self.controlplotsizer, 1, wx.ALL | wx.EXPAND, 10) self.sizer.Add(self.aux_data_box_sizer, 0, wx.ALL | wx.TOP, 10) self.FigureControlPanel.Show(True) self.cur_selected_index = 0 self.compare_data = {}