def get_phase_value(self, phase_value_list): """ Purpose: set the phase values to the input list. It is used for save_to_buffer the values of phase temporarily. if value is not set up, then it will ignored; Requirements: if the value is set, then it must be valid :param phase_value_list: :return: """ # Check requirements: assert isinstance(phase_value_list, list), 'Phase value list %s must be a list but not of type %s.' \ '' % (str(phase_value_list), type(phase_value_list)) assert len(phase_value_list ) == 5, 'Phase value list %s must be 5 elements.' % str( phase_value_list) # Set name phase_value_list[0] = str(self._lineEdit_name.text()).strip() # Set phase phase_value_list[1] = str(self._comboBox_type.currentText()).split()[0] # Set a, b and c a = GuiUtility.parse_float(self._lineEdit_a) phase_value_list[2] = a b = GuiUtility.parse_float(self._lineEdit_b) phase_value_list[3] = b c = GuiUtility.parse_float(self._lineEdit_c) phase_value_list[4] = c return
def do_save_quit(self): """ Save and quit with applying to parent :return: """ # Get parameter values from GUI start_time = gutil.parse_float(self.ui.lineEdit_minTime) stop_time = gutil.parse_float(self.ui.lineEdit_maxTime) min_log_value = gutil.parse_float(self.ui.lineEdit_minLogValue) max_log_value = gutil.parse_float(self.ui.lineEdit_maxLogValue) delta_value = gutil.parse_float(self.ui.lineEdit_logValueInterval) # FIXME - Treat 'comboBox_direction' if start_time < 0.: start_time = 0. self._myParent.get_controller().gen_data_slicer_sample_log( run_number=self._myRunNumber, sample_log_name=self._logName, start_time=start_time, end_time=stop_time, min_log_value=min_log_value, max_log_value=max_log_value, log_value_step=delta_value) # Update the state variables self._slicerIsSaved = True self._currSessionDiscardable = True # Quit self.close() return
def do_set_x_range(self): """ Set image X range from line edits :return: """ x_min = GuiUtility.parse_float(self.ui.lineEdit_xMin, True, 0.25) x_max = GuiUtility.parse_float(self.ui.lineEdit_xMax, True, 3.50) self.ui.graphicsView_mainPlot.setXYLimit(xmin=x_min, xmax=x_max) return
def do_set_y_range(self): """ Set image X range from line edits :return: """ y_min = GuiUtility.parse_float(self.ui.lineEdit_yMin, True, 0.) y_max = GuiUtility.parse_float(self.ui.lineEdit_yMax, True, None) if y_min >= y_max: GuiUtility.pop_dialog_error( self, 'Lower Y limit {} cannot be equal to or larger than upper Y limit {}' ''.format(y_min, y_max)) return self.ui.graphicsView_mainPlot.setXYLimit(ymin=y_min, ymax=y_max) return
def do_strip_vanadium_peaks(self): """ strip vanadium peaks :return: """ # collect the parameters from the UI try: peak_fwhm = GuiUtility.parse_integer(self.ui.lineEdit_vanPeakFWHM, allow_blank=False) fit_tolerance = GuiUtility.parse_float( self.ui.lineEdit_stripPeakTolerance, allow_blank=False) except RuntimeError: GuiUtility.pop_dialog_error( self, 'Both FWHM and Tolerance must be specified.') return # append the banks # bank_group = str(self.ui.comboBox_banks.currentText()) # if bank_group.count('East') > 0: # bank_group_index = 90 # elif bank_group.count('High') > 0: # bank_group_index = 150 # else: # raise NotImplementedError('Bank group {} is not supported.'.format(bank_group)) # bank_group_index = self._get_banks_group() background_type = str( self.ui.comboBox_vanPeakBackgroundType.currentText()) is_high_background = self.ui.checkBox_isHighBackground.isChecked() self.myStripPeakSignal.emit(1, peak_fwhm, fit_tolerance, background_type, is_high_background) return
def do_set_x_range(self): """ Set image X range from line edits :return: """ min_x = GuiUtility.parse_float(self.ui.lineEdit_xMin, True, 0.) max_x = GuiUtility.parse_float(self.ui.lineEdit_xMax, True, 3.5) if min_x >= max_x: GuiUtility.pop_dialog_error( self, 'Lower X limit {} cannot be equal to or larger than upper X limit {}' ''.format(min_x, max_x)) return self._x_min = min_x self._x_max = max_x self.ui.graphicsView_mainPlot.setXYLimit(xmin=self._x_min, xmax=self._x_max) return
def read_binning_parameters(self): """ parse and check binning parameters. :return: """ # parse binning parameter if self.user_interface.radioButton_binStandard.isChecked(): # will use default binning parameter bin_par = None elif self.user_interface.radioButton_binCustomized.isChecked(): # customized bin parameters bin_width = GuiUtility.parse_float(self.user_interface.lineEdit_binWidth) min_tof = GuiUtility.parse_float(self.user_interface.lineEdit_binMinTOF) max_tof = GuiUtility.parse_float(self.user_interface.lineEdit_binMaxTOF) bin_par = (min_tof, bin_width, max_tof) else: # violate requirements raise RuntimeError('It is impossible to have either standard binning or customized binning.' 'Will be implemented in #32.') return bin_par
def do_apply_change(self): """ Apply new set up for the slicer range :return: """ # Time min_time = gutil.parse_float(self.ui.lineEdit_minTime) self._move_time_boundary(self._horizontalIndicatorList[0], min_time) max_time = gutil.parse_float(self.ui.lineEdit_maxTime) self._move_time_boundary(self._horizontalIndicatorList[1], max_time) # Value min_log_value = gutil.parse_float(self.ui.lineEdit_minLogValue) max_log_value = gutil.parse_float(self.ui.lineEdit_maxLogValue) v_id_0 = self.ui.graphicsView_main.add_horizontal_indicator( min_log_value, 'blue') v_id_1 = self.ui.graphicsView_main.add_horizontal_indicator( max_log_value, 'blue') self._verticalIndicatorList[0] = v_id_0 self._verticalIndicatorList[1] = v_id_1 return
def do_set_width(self): """ Set peak width :return: """ peak_width = GuiUtility.parse_float(self.ui.lineEdit_peakWidth) if peak_width is None: GuiUtility.pop_dialog_error(self, 'Peak width is not set up!') return if peak_width <= 0.: GuiUtility.pop_dialog_error( self, 'Peak width %f cannot be 0 or negative!' % peak_width) return self._peakWidth = peak_width # Close self.close() return