def __init__(self, view, model, context): self.view = view self.model = model self.context = context self._selected_data = [] self._start_x = [self.view.start_time] self._end_x = [self.view.end_time] self._fit_status = [None] self._fit_chi_squared = [0.0] self._fit_function = [None] self._tf_asymmetry_mode = False self._fit_function_cache = [None] self._number_of_fits_cached = 0 self._multi_domain_function = None self.manual_selection_made = False self.automatically_update_fit_name = True self.thread_success = True self.update_selected_workspace_guess() self.gui_context_observer = GenericObserverWithArgPassing( self.handle_gui_changes_made) self.selected_group_pair_observer = GenericObserver( self.handle_selected_group_pair_changed) self.selected_plot_type_observer = GenericObserver( self.handle_selected_plot_type_changed) self.input_workspace_observer = GenericObserver( self.handle_new_data_loaded) self.disable_tab_observer = GenericObserver( lambda: self.view.setEnabled(False)) self.enable_tab_observer = GenericObserver( lambda: self.view.setEnabled(True)) self.update_view_from_model_observer = GenericObserverWithArgPassing( self.update_view_from_model)
def __init__(self, view, model, context, figure_presenter): super().__init__(view, model, context, figure_presenter) # view set up self._data_type = [FREQ_X_LABEL, FIELD_X_LABEL] self._sort_by = ["Maxent + Groups/detectors"] self.update_view() self._view.enable_plot_type_combo() self._view.hide_plot_diff() self._view.enable_tile_plotting_options() self._view.hide_plot_raw() self._view.disable_tile_plotting_options() self._view.set_is_tiled_plot(True) self._view.set_slot_for_selection_changed(self.update_selection) # sync view and model self._model.set_selection(self.view.get_selection_for_plot) # private memeber self._maxent_ws_name = None # connections self.method_changed = GenericObserverWithArgPassing( self.change_time_plot) self.period_changed = GenericObserverWithArgPassing(self.change_period) self.new_data_observer = GenericObserverWithArgPassing( self.handle_maxent_data_updated) self.reconstructed_data_observer = GenericObserverWithArgPassing( self.handle_reconstructed_data_updated) self.instrument_observer = GenericObserver(self.clear) self.update_freq_units = GenericObservable() self.update_x_label_observer = GenericObserver(self._update_pane)
def __init__(self, view, model, context): """ :param view: A reference to the QWidget object for plotting :param model: A reference to a model which contains the plotting logic :param context: A reference to the Muon context object """ self._view = view self._model = model self.context = context self.workspace_finder = WorkspaceFinder(self.context) self._view.on_rebin_options_changed( self.handle_use_raw_workspaces_changed) self._view.on_plot_type_changed(self.handle_plot_type_changed) self._view.on_tiled_by_type_changed( self.handle_tiled_by_changed_on_view) self._view.on_plot_tiled_changed(self.handle_plot_tiled_changed) self.input_workspace_observer = GenericObserver( self.handle_data_updated) self.added_group_or_pair_observer = GenericObserverWithArgPassing( self.handle_added_or_removed_group_or_pair_to_plot) self.fit_observer = GenericObserverWithArgPassing( self.handle_fit_completed) self.fit_removed_observer = GenericObserverWithArgPassing( self.handle_fit_removed) self.removed_group_pair_observer = GenericObserver( self.handle_removed_group_or_pair_to_plot) self.rebin_options_set_observer = GenericObserver( self.handle_rebin_options_set) self.plot_guess_observer = GenericObserver( self.handle_plot_guess_changed) self.workspace_deleted_from_ads_observer = GenericObserverWithArgPassing( self.handle_workspace_deleted_from_ads) self.workspace_replaced_in_ads_observer = GenericObserverWithArgPassing( self.handle_workspace_replaced_in_ads) self.plot_type_changed_notifier = GenericObservable() self.connect_xlim_changed_in_figure_view( self.handle_x_axis_limits_changed_in_figure_view) self.connect_ylim_changed_in_figure_view( self.handle_y_axis_limits_changed_in_figure_view) self._view.plot_options.connect_errors_changed( self.handle_error_selection_changed) self._view.plot_options.connect_x_range_changed( self.handle_xlim_changed_in_options_view) self._view.plot_options.connect_y_range_changed( self.handle_ylim_changed_in_options_view) self._view.plot_options.connect_autoscale_changed( self.handle_autoscale_requested_in_view) self._view.plot_options.connect_plot_selection( self.handle_subplot_changed_in_options) if self.context._frequency_context: for ext in FREQUENCY_EXTENSIONS.keys(): self._view.addItem(FREQ_PLOT_TYPE + FREQUENCY_EXTENSIONS[ext]) self._view.addItem(FREQ_PLOT_TYPE + "All") self.instrument_observer = GenericObserver( self.handle_instrument_changed)
def __init__(self, view, model): self._view = view self._model = model self.load_run_widget = None self.load_file_widget = None self.view.on_subwidget_loading_started(self.disable_loading) self.view.on_subwidget_loading_finished(self.enable_loading) self.view.on_file_widget_data_changed( self.handle_file_widget_data_changed) self.view.on_run_widget_data_changed( self.handle_run_widget_data_changed) self.view.on_clear_button_clicked(self.clear_data_and_view) self._view.on_multiple_load_type_changed( self.handle_multiple_runs_option_changed) self._use_threading = True self.loadNotifier = Observable() self.disable_observer = GenericObserver(self.disable_loading) self.enable_observer = GenericObserver(self.enable_loading) self.update_view_from_model_observer = GenericObserver(self.update_view_from_model)
def __init__(self, context, fft_widget, maxent_widget, parent=None): super(TransformWidget, self).__init__(parent) self._fft = fft_widget(load=context, parent=self) self._maxent = maxent_widget(context=context, parent=self) self._selector = TransformSelectionWidget(parent=self) self.load_observer = LoadObserver(self) self.context = context self.instrumentObserver = instrumentObserver(self) self.GroupPairObserver = GenericObserver(self.handle_new_group_pair) self.enable_observer = EnableObserver(self) self.disable_observer = DisableObserver(self) self.phase_quad_observer = PhaseQuadObserver(self) groupedViews = self.getViews() self._view = TransformView(self._selector.widget, groupedViews, parent) self._selector.setSelectionConnection(self.updateDisplay) self.updateDisplay('FFT') self.update_view_from_model_observer = GenericObserver( self.update_view_from_model) self.disable_view() # to make it compatable with the old GUI try: self.context.update_view_from_model_notifier.add_subscriber( self.update_view_from_model_observer) except: pass
def __init__(self, view, model, grouping_table_widget=None, pairing_table_widget=None, diff_table=None, parent=None): self._view = view self._model = model self.grouping_table_widget = grouping_table_widget self.pairing_table_widget = pairing_table_widget self.diff_table = diff_table self.period_info_widget = MuonPeriodInfo() self._view.set_description_text('') self._view.on_add_pair_requested(self.add_pair_from_grouping_table) self._view.on_clear_grouping_button_clicked(self.on_clear_requested) self._view.on_load_grouping_button_clicked( self.handle_load_grouping_from_file) self._view.on_save_grouping_button_clicked( self.handle_save_grouping_file) self._view.on_default_grouping_button_clicked( self.handle_default_grouping_button_clicked) self._view.on_period_information_button_clicked( self.handle_period_information_button_clicked) # monitors for loaded data changing self.loadObserver = GroupingTabPresenter.LoadObserver(self) self.instrumentObserver = GroupingTabPresenter.InstrumentObserver(self) # notifiers self.groupingNotifier = GroupingTabPresenter.GroupingNotifier(self) self.grouping_table_widget.on_data_changed(self.group_table_changed) self.diff_table.on_data_changed(self.diff_table_changed) self.pairing_table_widget.on_data_changed(self.pair_table_changed) self.enable_editing_notifier = GroupingTabPresenter.EnableEditingNotifier( self) self.disable_editing_notifier = GroupingTabPresenter.DisableEditingNotifier( self) self.counts_calculation_finished_notifier = GenericObservable() self.guessAlphaObserver = GroupingTabPresenter.GuessAlphaObserver(self) self.pairing_table_widget.guessAlphaNotifier.add_subscriber( self.guessAlphaObserver) self.message_observer = GroupingTabPresenter.MessageObserver(self) self.gui_variables_observer = GroupingTabPresenter.GuiVariablesChangedObserver( self) self.enable_observer = GroupingTabPresenter.EnableObserver(self) self.disable_observer = GroupingTabPresenter.DisableObserver(self) self.disable_tab_observer = GenericObserver( self.disable_editing_without_notifying_subscribers) self.enable_tab_observer = GenericObserver( self.enable_editing_without_notifying_subscribers) self.update_view_from_model_observer = GenericObserver( self.update_view_from_model)
def _setup_autoscale_observer(self): self.uncheck_autoscale_observer = GenericObserver(self.uncheck_autoscale) self._view.add_uncheck_autoscale_subscriber(self.uncheck_autoscale_observer) self.enable_autoscale_observer = GenericObserver(self.enable_autoscale) self._view.add_enable_autoscale_subscriber(self.enable_autoscale_observer) self.disable_autoscale_observer = GenericObserver(self.disable_autoscale) self._view.add_disable_autoscale_subscriber(self.disable_autoscale_observer)
def __init__(self, view, model): super(ResultsTabPresenter, self).__init__() self.view = view self.model = model self.new_fit_performed_observer = GenericObserver( self.on_new_fit_performed) self.update_view_from_model_observer = GenericObserver(self.update_view_from_model) self._init_view()
def _setup_gui_observers(self): """"Setup GUI observers, e.g fit observers""" self.workspace_deleted_from_ads_observer = GenericObserverWithArgPassing(self.handle_workspace_deleted_from_ads) self.workspace_replaced_in_ads_observer = GenericObserverWithArgPassing(self.handle_workspace_replaced_in_ads) self.added_group_or_pair_observer = GenericObserverWithArgPassing( self.handle_added_or_removed_group_or_pair_to_plot) self.instrument_observer = GenericObserver(self.handle_instrument_changed) self.plot_selected_fit_observer = GenericObserverWithArgPassing(self.handle_plot_selected_fits) self.plot_guess_observer = GenericObserver(self.handle_plot_guess_changed) self.rebin_options_set_observer = GenericObserver(self.handle_rebin_options_changed) self.plot_type_changed_notifier = GenericObservable()
def __init__(self, view, model, context): self.view = view self.model = model self.context = context self._selected_data = [] self._start_x = [self.view.start_time] self._end_x = [self.view.end_time] self._grppair_index = {} self._fit_status = [None] self._fit_chi_squared = [0.0] self._fit_function = [None] self._tf_asymmetry_mode = False self._fit_function_cache = [None] self._plot_type = None self._number_of_fits_cached = 0 self._multi_domain_function = None self.manual_selection_made = False self.automatically_update_fit_name = True self.thread_success = True self.fitting_calculation_model = None self.update_selected_workspace_list_for_fit() self.fit_function_changed_notifier = GenericObservable() self.fit_parameter_changed_notifier = GenericObservable() self.fit_type_changed_notifier = GenericObservable() self.selected_single_fit_notifier = GenericObservable() self.gui_context_observer = GenericObserverWithArgPassing( self.handle_gui_changes_made) self.selected_group_pair_observer = GenericObserver( self.handle_selected_group_pair_changed) self.selected_plot_type_observer = GenericObserverWithArgPassing( self.handle_selected_plot_type_changed) self.input_workspace_observer = GenericObserver( self.handle_new_data_loaded) self.disable_tab_observer = GenericObserver(self.disable_view) self.enable_tab_observer = GenericObserver(self.enable_view) self.instrument_changed_observer = GenericObserver( self.instrument_changed) self.update_view_from_model_observer = GenericObserverWithArgPassing( self.update_view_from_model) self.initialise_model_options() self.double_pulse_observer = GenericObserverWithArgPassing( self.handle_double_pulse_set) self.model.context.gui_context.add_non_calc_subscriber( self.double_pulse_observer) self.view.setEnabled(False) self.enable_editing_notifier = GenericObservable() self.disable_editing_notifier = GenericObservable()
def _setup_view_connections(self): # tile plots self._view.on_tiled_by_type_changed(self.handle_tiled_by_type_changed) self._view.on_plot_tiled_checkbox_changed( self.handle_plot_tiled_state_changed) # external plot self._view.on_external_plot_pressed( self.handle_external_plot_requested) self._view.on_plot_type_changed(self.handle_data_type_changed) # rebin self.rebin_options_set_observer = GenericObserver( self.handle_rebin_options_changed) # data changed self.data_changed_observer = GenericObserver(self.handle_data_updated)
def __init__(self, view, model, grouping_table_widget=None): self._view = view self._model = model self.grouping_table_widget = grouping_table_widget self._view.set_description_text(self.text_for_description()) # monitors for loaded data changing self.loadObserver = GenericObserver(self.handle_new_data_loaded) self.instrumentObserver = GenericObserver(self.on_clear_requested) # notifiers self.groupingNotifier = GenericObservable() self.enable_editing_notifier = GenericObservable() self.disable_editing_notifier = GenericObservable() self.calculation_finished_notifier = GenericObservable() self.message_observer = GenericObserverWithArgPassing( self._view.display_warning_box) self.gui_variables_observer = GenericObserver( self.handle_update_all_clicked) self.enable_observer = GenericObserver(self.enable_editing) self.disable_observer = GenericObserver(self.disable_editing) self.disable_tab_observer = GenericObserver( self.disable_editing_without_notifying_subscribers) self.enable_tab_observer = GenericObserver( self.enable_editing_without_notifying_subscribers) self.update_view_from_model_observer = GenericObserver( self.update_view_from_model)
def __init__(self, view, model): super(ResultsTabPresenter, self).__init__() self.view = view self.model = model self.new_fit_performed_observer = GenericObserver( self.on_new_fit_performed) self.update_view_from_model_observer = GenericObserver( self.update_view_from_model) self._init_view() self.disable_tab_observer = GenericObserver( lambda: self.view.setEnabled(False)) self.enable_tab_observer = GenericObserver( lambda: self.view.setEnabled(True))
def __init__(self, view: ModelFittingView, model: ModelFittingModel): """Initialize the ModelFittingPresenter. Sets up the slots and event observers.""" super(ModelFittingPresenter, self).__init__(view, model) self.parameter_combination_thread_success = True self.update_override_tick_labels_notifier = GenericObservable() self.update_plot_x_range_notifier = GenericObservable() self.results_table_created_observer = GenericObserverWithArgPassing( self.handle_new_results_table_created) self.instrument_changed_notifier = GenericObserver( self.handle_instrument_changed) self.view.set_slot_for_results_table_changed( self.handle_results_table_changed) self.view.set_slot_for_selected_x_changed( self.handle_selected_x_changed) self.view.set_slot_for_selected_y_changed( self.handle_selected_y_changed) self.clear_observer = GenericObserverWithArgPassing(self.clear) self.remove_observer = GenericObserverWithArgPassing(self.remove) self.replace_observer = GenericObserverWithArgPassing(self.replaced)
def __init__(self, view, context): self.view = view self.context = context self.thread = None self._optional_output_names = {} # set data self.getWorkspaceNames() self.view.set_methods([USEGROUPS, USEDETECTORS]) # connect self.view.maxEntButtonSignal.connect(self.handleMaxEntButton) self.view.method_changed_slot(self.update_phase_table_options) self.view.method_changed_slot(self.notify_method_changed) self.view.period_changed_slot(self.notify_period_changed) self.view.cancelSignal.connect(self.cancel) self.view.run_changed_slot(self._load_periods) self.phase_table_observer = GenericObserver( self.update_phase_table_options) self.calculation_finished_notifier = GenericObservable() self.calculation_started_notifier = GenericObservable() self.new_phase_table = GenericObservable() self.update_phase_table_options() self.method_changed = Observable() self.period_changed = Observable() self.new_reconstructed_data = Observable()
def __init__(self, view, model, context, figure_presenter, external_plotting_view=None, external_plotting_model=None): self._name = model.name self._data_type = [""] self._sort_by = [""] self._view = view self._model = model self.context = context self._figure_presenter = figure_presenter self._x_data_range = context.plot_panes_context[ self._name].default_xlims self._external_plotting_view = external_plotting_view if external_plotting_view else ExternalPlottingView( ) self._external_plotting_model = external_plotting_model if external_plotting_model else ExternalPlottingModel( ) self.add_or_remove_plot_observer = GenericObserverWithArgPassing( self.handle_added_or_removed_plot) self._view.on_rebin_options_changed( self.handle_use_raw_workspaces_changed) self.workspace_replaced_in_ads_observer = GenericObserverWithArgPassing( self.handle_workspace_replaced_in_ads) self.workspace_deleted_from_ads_observer = GenericObserverWithArgPassing( self.handle_workspace_deleted_from_ads) self.clear_plot_observer = GenericObserver(self.create_empty_plot) self._setup_view_connections()
def setup_observers(self): self.find_peaks_observer = GenericObserver(self.run_find_peak_algorithms) self.show_peaks_table_observer = GenericObserver( lambda: self.show_table(self.view.show_peaks_table_combobox.currentText())) self.show_matches_table_observer = GenericObserver( lambda: self.show_table(self.view.show_matches_table_combobox.currentText())) self.clear_matches_table_observer = GenericObserver(self.clear_match_table) self.update_match_table_observer = GenericObserver(self.update_match_table) self.update_view_observer = GenericObserver(self.update_view) self.enable_tab_observer = GenericObserver(self.enable_tab) self.disable_tab_observer = GenericObserver(self.disable_tab) self.group_change_observer = GenericObserver(self.update_view)
def __init__(self, parent: QWidget = None): """Initialize the BasicFittingView and create the FitControlsView and a FitFunctionOptionsView.""" super(BasicFittingView, self).__init__(parent) self.setupUi(self) self.fit_controls = FitControlsView(self) self.workspace_selector = CyclicDataSelectorView(self) self.fit_function_options = FitFunctionOptionsView(self) self.fit_controls_layout.addWidget(self.fit_controls) self.workspace_selector_layout.addWidget(self.workspace_selector) self.fit_function_options_layout.addWidget(self.fit_function_options) self.disable_tab_observer = GenericObserver(self.disable_view) self.enable_tab_observer = GenericObserver(self.enable_view) self.disable_view()
def __init__(self, view, model, context): self.view = view self.model = model self.context = context self.fit_function = None self.selected_rows = [] self.calculation_thread = None self.fitting_calculation_model = None # Observers self.selected_workspaces_observer = GenericObserver(self.handle_selected_workspaces_changed) self.fit_type_changed_observer = GenericObserver(self.handle_selected_workspaces_changed) self.fit_function_updated_observer = GenericObserver(self.handle_fit_function_updated) self.fit_parameter_updated_observer = GenericObserver(self.handle_fit_function_parameter_changed) self.fit_parameter_changed_in_view = GenericObserverWithArgPassing(self.handle_updated_fit_parameter_in_table) self.selected_sequential_fit_notifier = GenericObservable()
def __init__(self, view, context): self.view = view self.context = context self.current_alg = None self._phasequad_obj = None self._new_table_name = "" self.group_change_observer = GenericObserver( self.update_current_groups_list) self.run_change_observer = GenericObserver( self.update_current_run_list) self.instrument_changed_observer = GenericObserver( self.update_current_phase_tables) self.phase_table_calculation_complete_notifier = Observable() self.phase_table_observer = GenericObserver( self.update_current_phase_tables) self.phasequad_calculation_complete_notifier = Observable() self.enable_editing_notifier = Observable() self.disable_editing_notifier = Observable() self.disable_tab_observer = GenericObserver(self.view.disable_widget) self.enable_tab_observer = GenericObserver(self.view.enable_widget) self.selected_phasequad_changed_notifier = GenericObservable() self.calculation_finished_notifier = GenericObservable() self.update_view_from_model_observer = GenericObserver( self.update_view_from_model) self.update_current_phase_tables() self.view.on_first_good_data_changed( self.handle_first_good_data_changed) self.view.on_last_good_data_changed(self.handle_last_good_data_changed) self.view.on_phasequad_table_data_changed( self.handle_phasequad_table_data_changed)
def __init__(self, view, model, context): """ :param view: A reference to the QWidget object for plotting :param model: A refence to a model which contains the plotting logic :param context: A reference to the Muon context object """ self._view = view self._model = model self.context = context self._view.on_plot_button_clicked(self.handle_data_updated) self._view.on_rebin_options_changed(self.handle_use_raw_workspaces_changed) self._view.on_plot_type_changed(self.handle_plot_type_changed) self.input_workspace_observer = GenericObserver(self.handle_data_updated) self.fit_observer = GenericObserver(self.handle_fit_completed) self.group_pair_observer = GenericObserver(self.handle_group_pair_to_plot_changed) self.plot_type_observer = GenericObserver(self.handle_group_pair_to_plot_changed) self.rebin_options_set_observer = GenericObserver(self.handle_rebin_options_set) self.plot_guess_observer = GenericObserver(self.handle_plot_guess_changed) self.plot_type_changed_notifier = GenericObservable() self._force_redraw = False if self.context._frequency_context: for ext in FREQUENCY_EXTENSIONS.keys(): self._view.addItem(FREQ_PLOT_TYPE+FREQUENCY_EXTENSIONS[ext]) self._view.addItem(FREQ_PLOT_TYPE+"All") self.instrument_observer = GenericObserver(self.handle_instrument_changed) self.keep = False
def _setup_quick_edit_widget(self): self._options_presenter.connect_errors_changed(self.handle_error_selection_changed) self._options_presenter.connect_x_range_changed(self._handle_xlim_changed_in_quick_edit_options) self._options_presenter.connect_y_range_changed(self._handle_ylim_changed_in_quick_edit_options) self._options_presenter.connect_autoscale_changed(self._handle_autoscale_y_axes) self._options_presenter.connect_plot_selection(self._handle_subplot_changed_in_quick_edit_widget) self.range_changed_observer = GenericObserver(self.update_range) self._view.add_range_changed_subscriber(self.range_changed_observer) self.set_quickedit_from_context()
def __init__(self, view, model, context, fitting_context, figure_presenter): """ Initializes the PlotFitPanePresenter. The fitting_context is a FittingContext that corresponds to this specific fit pane. For instance it is a ModelFittingContext for the Model Fitting pane, and is a TFAsymmetryFittingContext for the tf asymmetry Fitting pane. """ super().__init__(view, model, context, figure_presenter) self._fitting_context = fitting_context self._data_type = ["Asymmetry"] self._sort_by = ["Group/Pair", "Run"] self.update_view() self._current_fit_info = None self._view.enable_tile_plotting_options() self._view.on_plot_diff_checkbox_changed(self.plot_diff_changed) self.plot_selected_fit_observer = GenericObserverWithArgPassing(self.handle_plot_selected_fits) self.remove_plot_guess_observer = GenericObserver(self.handle_remove_plot_guess) self.update_plot_guess_observer = GenericObserver(self.handle_update_plot_guess)
def __init__(self, view, model, grouping_table_widget=None, pairing_table_widget=None): self._view = view self._model = model self.grouping_table_widget = grouping_table_widget self.pairing_table_widget = pairing_table_widget # Synchronize the two tables self._view.on_grouping_table_changed( self.pairing_table_widget.update_view_from_model) self._view.on_pairing_table_changed( self.grouping_table_widget.update_view_from_model) self._view.set_description_text(self.text_for_description()) self._view.on_add_pair_requested(self.add_pair_from_grouping_table) self._view.on_clear_grouping_button_clicked(self.on_clear_requested) self._view.on_load_grouping_button_clicked( self.handle_load_grouping_from_file) self._view.on_save_grouping_button_clicked( self.handle_save_grouping_file) self._view.on_default_grouping_button_clicked( self.handle_default_grouping_button_clicked) # multi period self._view.on_summed_periods_changed(self.handle_periods_changed) self._view.on_subtracted_periods_changed(self.handle_periods_changed) # monitors for loaded data changing self.loadObserver = GroupingTabPresenter.LoadObserver(self) self.instrumentObserver = GroupingTabPresenter.InstrumentObserver(self) # notifiers self.groupingNotifier = GroupingTabPresenter.GroupingNotifier(self) self.grouping_table_widget.on_data_changed(self.group_table_changed) self.pairing_table_widget.on_data_changed(self.pair_table_changed) self.enable_editing_notifier = GroupingTabPresenter.EnableEditingNotifier( self) self.disable_editing_notifier = GroupingTabPresenter.DisableEditingNotifier( self) self.calculation_finished_notifier = GenericObservable() self.guessAlphaObserver = GroupingTabPresenter.GuessAlphaObserver(self) self.pairing_table_widget.guessAlphaNotifier.add_subscriber( self.guessAlphaObserver) self.message_observer = GroupingTabPresenter.MessageObserver(self) self.gui_variables_observer = GroupingTabPresenter.GuiVariablesChangedObserver( self) self.enable_observer = GroupingTabPresenter.EnableObserver(self) self.disable_observer = GroupingTabPresenter.DisableObserver(self) self.update_view_from_model_observer = GenericObserver( self.update_view_from_model)
def __init__(self, view, model, context, fitting_context, figure_presenter): super().__init__(view, model, context, fitting_context, figure_presenter) self._data_type = [FREQ, FIELD] self.context.frequency_context.x_label = FREQ self._sort_by = [""] self.update_view() self._view.hide_plot_raw() self._view.hide_tiled_by() self.update_freq_units = GenericObservable() self.update_maxent_plot = GenericObservable() self.update_fit_pane_observer = GenericObserver(self._update_fit_pane)
def __init__(self, parent=None): super(EAGroupingTableView, self).__init__(parent) self.grouping_table = QtWidgets.QTableWidget(self) self.set_up_table() self.setup_interface_layout() self.grouping_table.cellChanged.connect(self.on_cell_changed) self._validate_group_name_entry = lambda text: True self._on_table_data_changed = lambda: 0 # whether the table is updating and therefore we shouldn't respond to signals self._updating = False # whether the interface should be disabled self._disabled = False self.change_once = False self.disable_table_observer = GenericObserver(self.disable_editing) self.enable_table_observer = GenericObserver(self.enable_editing)
def __init__(self, view, model): super(ResultsTabPresenter, self).__init__() self.view = view self.model = model self.new_fit_performed_observer = GenericObserverWithArgPassing( self.on_new_fit_performed) self.update_view_from_model_observer = GenericObserver( self.update_view_from_model) self._init_view() self.disable_tab_observer = GenericObserver( lambda: self.view.setEnabled(False)) self.enable_tab_observer = GenericObserver( lambda: self.view.setEnabled(True)) self.results_table_created_notifier = GenericObservable() self.view.set_output_results_button_no_warning()
def __init__(self, parent: QWidget = None): """Initializes the CorrectionsView.""" super(CorrectionsView, self).__init__(parent) self.setupUi(self) self.parent = parent self.run_selector = CyclicDataSelectorView(self) self.run_selector.set_data_combo_box_label("Runs :") self.run_selector.set_data_combo_box_label_width(50) self.corrections_layout.addWidget(self.run_selector, 1) self.dead_time_corrections_view = DeadTimeCorrectionsView(self) self.corrections_layout.addWidget(self.dead_time_corrections_view, 1) self.background_corrections_view = BackgroundCorrectionsView(self) self.corrections_layout.addWidget(self.background_corrections_view, 10) self.disable_tab_observer = GenericObserver(self.disable_view) self.enable_tab_observer = GenericObserver(self.enable_view) self.disable_view()
def __init__(self, view, model, context): self.view = view self.model = model self.context = context self.fit_function = None self.selected_rows = [] self.calculation_thread = None self.fitting_calculation_model = None self.view.set_data_type_options( self.context.data_type_options_for_sequential()) self.fit_parameter_changed_notifier = GenericObservable() self.sequential_fit_finished_notifier = GenericObservable() self.view.set_slot_for_display_data_type_changed( self.handle_selected_workspaces_changed) # Observers self.selected_workspaces_observer = GenericObserver( self.handle_selected_workspaces_changed) self.fit_type_changed_observer = GenericObserver( self.handle_selected_workspaces_changed) self.fit_function_updated_observer = GenericObserver( self.handle_fit_function_updated) self.fit_parameter_updated_observer = GenericObserver( self.handle_fit_function_parameter_changed) self.fit_parameter_changed_in_view = GenericObserverWithArgPassing( self.handle_updated_fit_parameter_in_table) self.selected_sequential_fit_notifier = GenericObservable() self.disable_tab_observer = GenericObserver( lambda: self.view.setEnabled(False)) self.enable_tab_observer = GenericObserver( lambda: self.view.setEnabled(self.model.number_of_datasets > 0))
def __init__(self, view, load): self.view = view self.load = load self.thread = None # set data self.getWorkspaceNames() # connect self.view.maxEntButtonSignal.connect(self.handleMaxEntButton) self.view.cancelSignal.connect(self.cancel) self.phase_table_observer = GenericObserver(self.update_phase_table_options) self.calculation_finished_notifier = GenericObservable() self.calculation_started_notifier = GenericObservable()