Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
    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
Esempio n. 6
0
    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
Esempio n. 7
0
    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
Esempio n. 8
0
    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
Esempio n. 9
0
    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