def __init__(self, parent, plugin_manager, **kwargs): wx.Panel.__init__(self, parent, **kwargs) self.stage_choosers = [] for stage_name in stages.stages: stage_display_name = stages.get_stage_display_name(stage_name) method_names = plugin_manager.get_plugins_by_stage( stage_name).keys() self.stage_choosers.append(StageCtrl(self, stage_name, stage_display_name, sorted(method_names))) self.stage_choosers.append(AuxiliaryCtrl(self, 'auxiliary', stages.get_stage_display_name('auxiliary'))) # issued when user chooses a stage to adjust its parameters, not when # user clicks on results tab. pub.subscribe(self.select_stage, "STAGE_CHOSEN") sizer = wx.BoxSizer(orient=wx.VERTICAL) for stage_chooser in self.stage_choosers: sizer.Add(stage_chooser, flag=wx.EXPAND) self.SetSizer(sizer) pub.subscribe(self._results_notebook_page_changed, topic='RESULTS_NOTEBOOK_PAGE_CHANGED') self._current_stage = stages.stages[0]
def _stage_chosen(self, message): stage_name = message.data if stage_name == "auxiliary": for stage in self.control_panels.values(): for panel in stage.values(): panel.Show(False) for panel in self.auxiliary_control_panels.values(): panel.Show(panel.plugin.runs_with_stage == stage_name) self.run_stage_button.SetLabel(pt.RUN_AUXILIARY_PLUGINS) self.do_layout() else: for panel in self.auxiliary_control_panels.values(): panel.Show(panel.plugin.runs_with_stage == stage_name) method_name = self.get_current_methods_used()[stage_name] self._set_method(stage_name=stage_name, method_name=method_name) self.run_stage_button.SetLabel(pt.RUN_STAGE % stages.get_stage_display_name(stage_name)) self.do_layout()