示例#1
0
    def __init__(self,
                 parent=None,
                 state=None,
                 settings=None,
                 data_type=None,
                 data_proxy=None):
        super(DirectBeam, self).__init__(parent,
                                         state,
                                         settings,
                                         data_type,
                                         data_proxy=data_proxy)

        class DirectBeamFrame(QtGui.QGroupBox,
                              ui.sans.ui_trans_direct_beam.Ui_GroupBox):
            def __init__(self, parent=None):
                QtGui.QGroupBox.__init__(self, parent)
                self.setupUi(self)

        self._content = DirectBeamFrame(self)
        self._layout.addWidget(self._content)
        self.initialize_content()

        if state is not None:
            self.set_state(state)
        else:
            self.set_state(SampleData.DirectBeam())
示例#2
0
    def __init__(self,
                 parent=None,
                 state=None,
                 settings=None,
                 data_type=None,
                 data_proxy=None):
        super(DirectBeam, self).__init__(parent,
                                         state,
                                         settings,
                                         data_type,
                                         data_proxy=data_proxy)

        class DirectBeamFrame(QGroupBox):
            def __init__(self, parent=None):
                QGroupBox.__init__(self, parent)
                self.ui = load_ui(__file__,
                                  '../../../ui/sans/trans_direct_beam.ui',
                                  baseinstance=self)

        self._content = DirectBeamFrame(self)
        self._layout.addWidget(self._content)
        self.initialize_content()

        if state is not None:
            self.set_state(state)
        else:
            self.set_state(SampleData.DirectBeam())
示例#3
0
 def get_state(self):
     """
         Returns an object with the state of the interface
     """
     m = SampleData.DirectBeam()
     m.beam_radius = util._check_and_get_float_line_edit(self._content.beam_radius_edit)
     m.sample_file = unicode(self._content.sample_edit.text())
     m.direct_beam = unicode(self._content.direct_edit.text())
     self._settings.emit_key_value("TRANS_SAMPLE", str(self._content.sample_edit.text()))
     self._settings.emit_key_value("TRANS_DIRECT", str(self._content.direct_edit.text()))
     return m
示例#4
0
class SampleData(BaseSampleData):

    calculation_method = BaseSampleData.DirectBeam()
    # Option list
    option_list = [BaseSampleData.DirectBeam]
    # Option to fit the two frame separately when in frame-skipping mode
    combine_transmission_frames = False
    calculate_transmission = True

    def __init__(self):
        super(SampleData, self).__init__()
        self.reset()

    def reset(self):
        """
            Reset state
        """
        super(SampleData, self).reset()
        self.calculation_method.reset()
        self.combine_transmission_frames = SampleData.combine_transmission_frames
        self.calculate_transmission = SampleData.calculate_transmission

    def to_script(self, data_file=None):
        """
            Generate reduction script
            @param execute: if true, the script will be executed
        """
        script = super(SampleData, self).to_script(data_file)
        if self.calculate_transmission:
            script += "CombineTransmissionFits(%s)\n" % self.combine_transmission_frames
        return script

    def to_xml(self):
        """
            Create XML from the current data.
        """
        xml_str = super(SampleData, self).to_xml()
        return BaseScriptElement.addElementToSection(xml_str, "Transmission", "combine_transmission_frames",
                                                     str(self.combine_transmission_frames))

    def from_xml(self, xml_str):
        """
            Read in data from XML
            @param xml_str: text to read the data from
        """
        self.reset()
        super(SampleData, self).from_xml(xml_str)

        dom = xml.dom.minidom.parseString(xml_str)
        element_list = dom.getElementsByTagName("Transmission")
        if len(element_list)>0:
            instrument_dom = element_list[0]
            self.combine_transmission_frames = BaseScriptElement.getBoolElement(instrument_dom, "combine_transmission_frames",
                                                                                default = SampleData.combine_transmission_frames)

    def from_setup_info(self, xml_str):
        """
            Read in data from XML using the string representation of the setup algorithm used
            to prepare the reduction properties.
            @param xml_str: text to read the data from
        """
        self.reset()
        super(SampleData, self).from_setup_info(xml_str)

        (alg, _) = BaseScriptElement.getAlgorithmFromXML(xml_str)
        self.combine_transmission_frames = BaseScriptElement.getPropertyValue(alg, "FitFramesTogether",
                                                                              default=SampleData.combine_transmission_frames)