Changes in / [f7bc948:51a4d78] in sasview


Ignore:
Location:
src/sas
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/dataloader/data_info.py

    r1b1a1c1 r7988501  
    2525import numpy 
    2626import math 
    27  
    28 class plottable_sesans1D(object): 
    29     """ 
    30     SESANS is a place holder for 1D SESANS plottables. 
    31  
    32     #TODO: This was directly copied from the plottables_1D. Modified Somewhat. 
    33     #Class has been updated. 
    34     """ 
    35     # The presence of these should be mutually 
    36     # exclusive with the presence of Qdev (dx) 
    37     x = None 
    38     y = None 
    39     lam = None 
    40     dx = None 
    41     dy = None 
    42     dlam = None 
    43     ## Slit smearing length 
    44     dxl = None 
    45     ## Slit smearing width 
    46     dxw = None 
    47  
    48     # Units 
    49     _xaxis = '' 
    50     _xunit = '' 
    51     _yaxis = '' 
    52     _yunit = '' 
    53  
    54     def __init__(self, x, y, lam, dx=None, dy=None, dlam=None): 
    55 #        print "SESANS plottable working" 
    56         self.x = numpy.asarray(x) 
    57         self.y = numpy.asarray(y) 
    58         self.lam = numpy.asarray(lam) 
    59         if dx is not None: 
    60             self.dx = numpy.asarray(dx) 
    61         if dy is not None: 
    62             self.dy = numpy.asarray(dy) 
    63         if dlam is not None: 
    64             self.dlam = numpy.asarray(dlam) 
    65  
    66     def xaxis(self, label, unit): 
    67         """ 
    68         set the x axis label and unit 
    69         """ 
    70         self._xaxis = label 
    71         self._xunit = unit 
    72  
    73     def yaxis(self, label, unit): 
    74         """ 
    75         set the y axis label and unit 
    76         """ 
    77         self._yaxis = label 
    78         self._yunit = unit 
    79  
    8027 
    8128class plottable_1D(object): 
     
    9441    dxw = None 
    9542 
     43    ## SESANS specific params (wavelengths for spin echo length calculation) 
     44 
     45    lam = None 
     46    dlam = None 
     47 
    9648    # Units 
    9749    _xaxis = '' 
     
    10052    _yunit = '' 
    10153 
    102     def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None): 
     54    def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None, lam=None, dlam=None): 
    10355        self.x = numpy.asarray(x) 
    10456        self.y = numpy.asarray(y) 
     
    11163        if dxw is not None: 
    11264            self.dxw = numpy.asarray(dxw) 
     65        if lam is not None: 
     66            self.lam = numpy.asarray(lam) 
     67        if dlam is not None: 
     68            self.dlam = numpy.asarray(dlam) 
    11369 
    11470    def xaxis(self, label, unit): 
     
    736692        return self._perform_union(other) 
    737693 
    738 class SESANSData1D(plottable_sesans1D, DataInfo): 
    739     """ 
    740     SESANS 1D data class 
    741     """ 
    742     x_unit = 'nm' 
    743     y_unit = 'pol' 
    744  
    745     def __init__(self, x=None, y=None, lam=None, dx=None, dy=None, dlam=None): 
     694class Data1D(plottable_1D, DataInfo): 
     695    """ 
     696    1D data class 
     697    """ 
     698    if plottable_1D.lam is None: # This means it's SANS data! 
     699        x_unit = '1/A' 
     700        y_unit = '1/cm' 
     701    elif plottable_1D.lam is not None: # This means it's SESANS data! 
     702        x_unit = 'A' 
     703        y_unit = 'pol' 
     704    else: # and if it's neither, you get punished! 
     705        raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 
     706 
     707    def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None): 
    746708        DataInfo.__init__(self) 
    747         plottable_sesans1D.__init__(self, x, y, lam, dx, dy, dlam) 
     709        plottable_1D.__init__(self, x, y, dx, dy,None, None, lam, dlam) 
     710        if self.lam is None: # This means the lam param was not detected in the data: it's SANS data! 
     711            x_unit = '1/A' 
     712            y_unit = '1/cm' 
     713        elif self.lam is not None: # This means lam was detected (should be an empty ndarray): it's SESANS data! 
     714            x_unit = 'A' 
     715            y_unit = 'pol' 
     716        else: # and if it's neither, you get punished! 
     717            raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 
    748718 
    749719    def __str__(self): 
     
    759729        return _str 
    760730 
    761     def clone_without_data(self, length=0, clone=None): 
    762         """ 
    763         Clone the current object, without copying the data (which 
    764         will be filled out by a subsequent operation). 
    765         The data arrays will be initialized to zero. 
    766  
    767         :param length: length of the data array to be initialized 
    768         :param clone: if provided, the data will be copied to clone 
    769         """ 
    770         from copy import deepcopy 
    771         if clone is None or not issubclass(clone.__class__, Data1D): 
    772             x = numpy.zeros(length) 
    773             dx = numpy.zeros(length) 
    774             y = numpy.zeros(length) 
    775             dy = numpy.zeros(length) 
    776             clone = Data1D(x, y, dx=dx, dy=dy) 
    777  
    778         clone.title = self.title 
    779         clone.run = self.run 
    780         clone.filename = self.filename 
    781         clone.instrument = self.instrument 
    782         clone.notes = deepcopy(self.notes) 
    783         clone.process = deepcopy(self.process) 
    784         clone.detector = deepcopy(self.detector) 
    785         clone.sample = deepcopy(self.sample) 
    786         clone.source = deepcopy(self.source) 
    787         clone.collimation = deepcopy(self.collimation) 
    788         clone.trans_spectrum = deepcopy(self.trans_spectrum) 
    789         clone.meta_data = deepcopy(self.meta_data) 
    790         clone.errors = deepcopy(self.errors) 
    791  
    792         return clone 
    793  
    794 class Data1D(plottable_1D, DataInfo): 
    795     """ 
    796     1D data class 
    797     """ 
    798     x_unit = '1/A' 
    799     y_unit = '1/cm' 
    800  
    801     def __init__(self, x, y, dx=None, dy=None): 
    802         DataInfo.__init__(self) 
    803         plottable_1D.__init__(self, x, y, dx, dy) 
    804  
    805     def __str__(self): 
    806         """ 
    807         Nice printout 
    808         """ 
    809         _str = "%s\n" % DataInfo.__str__(self) 
    810         _str += "Data:\n" 
    811         _str += "   Type:         %s\n" % self.__class__.__name__ 
    812         _str += "   X-axis:       %s\t[%s]\n" % (self._xaxis, self._xunit) 
    813         _str += "   Y-axis:       %s\t[%s]\n" % (self._yaxis, self._yunit) 
    814         _str += "   Length:       %g\n" % len(self.x) 
    815         return _str 
    816  
    817731    def is_slit_smeared(self): 
    818732        """ 
     
    843757            y = numpy.zeros(length) 
    844758            dy = numpy.zeros(length) 
    845             clone = Data1D(x, y, dx=dx, dy=dy) 
     759            lam = numpy.zeros(length) 
     760            dlam = numpy.zeros(length) 
     761            clone = Data1D(x, y, lam=lam, dx=dx, dy=dy, dlam=dlam ) 
    846762 
    847763        clone.title = self.title 
  • src/sas/sascalc/dataloader/readers/sesans_reader.py

    r1c0e3b0 r1b82623  
    88import numpy 
    99import os 
    10 from sas.sascalc.dataloader.data_info import SESANSData1D 
     10from sas.sascalc.dataloader.data_info import Data1D 
    1111 
    1212# Check whether we have a converter available 
     
    8484                tdx = numpy.zeros(0) 
    8585#                print "all good" 
    86                 output = SESANSData1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam) 
     86                output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam) 
    8787#                print output                 
    8888                self.filename = output.filename = basename 
  • src/sas/sascalc/fit/AbstractFitEngine.py

    rfc18690 r7988501  
    131131        a way to get residuals from data. 
    132132    """ 
    133     def __init__(self, x, y, dx=None, dy=None, smearer=None, data=None): 
     133    def __init__(self, x, y, dx=None, dy=None, smearer=None, data=None, lam=None, dlam=None): 
    134134        """ 
    135135            :param smearer: is an object of class QSmearer or SlitSmearer 
     
    152152                 
    153153        """ 
    154         Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy) 
     154        Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy, lam=lam,dlam=dlam) 
    155155        self.num_points = len(x) 
    156156        self.sas_data = data 
  • src/sas/sascalc/fit/BumpsFitting.py

    rb699768 r7988501  
    2626from bumps import parameter 
    2727from bumps.fitproblem import FitProblem 
    28  
    2928 
    3029from sas.sascalc.fit.AbstractFitEngine import FitEngine 
  • src/sas/sasgui/guiframe/dataFitting.py

    r9b6d62d r7988501  
    1717    """ 
    1818    """ 
    19     def __init__(self, x=None, y=None, dx=None, dy=None): 
     19    def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None): 
    2020        """ 
    2121        """ 
     
    2424        if y is None: 
    2525            y = [] 
    26         PlotData1D.__init__(self, x, y, dx, dy) 
    27         LoadData1D.__init__(self, x, y, dx, dy) 
     26        PlotData1D.__init__(self, x, y, lam, dx, dy, dlam) 
     27        LoadData1D.__init__(self, x, y, lam, dx, dy, dlam) 
    2828        self.id = None 
    2929        self.list_group_id = [] 
     
    6868        # First, check the data compatibility 
    6969        dy, dy_other = self._validity_check(other) 
    70         result = Data1D(x=[], y=[], dx=None, dy=None) 
     70        result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=None) 
    7171        result.clone_without_data(length=len(self.x), clone=self) 
    7272        result.copy_from_datainfo(data1d=self) 
     
    115115        # First, check the data compatibility 
    116116        self._validity_check_union(other) 
    117         result = Data1D(x=[], y=[], dx=None, dy=None) 
     117        result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=None) 
    118118        tot_length = len(self.x) + len(other.x) 
    119119        result = self.clone_without_data(length=tot_length, clone=result) 
     120        if self.dlam == None or other.dlam is None: 
     121            result.dlam = None 
     122        else: 
     123            result.dlam = numpy.zeros(tot_length) 
    120124        if self.dy == None or other.dy is None: 
    121125            result.dy = None 
     
    141145        result.y = numpy.append(self.y, other.y) 
    142146        result.y = result.y[ind] 
     147        result.lam = numpy.append(self.lam, other.lam) 
     148        result.lam = result.lam[ind] 
     149        if result.dlam != None: 
     150            result.dlam = numpy.append(self.dlam, other.dlam) 
     151            result.dlam = result.dlam[ind] 
    143152        if result.dy != None: 
    144153            result.dy = numpy.append(self.dy, other.dy) 
     
    260269        # First, check the data compatibility 
    261270        self._validity_check_union(other) 
    262         result = Data1D(x=[], y=[], dx=None, dy=None) 
     271        result = Data1D(x=[], y=[], lam=[], dx=None, dy=None, dlam=[]) 
    263272        tot_length = len(self.x)+len(other.x) 
    264273        result.clone_without_data(length=tot_length, clone=self) 
     274        if self.dlam == None or other.dlam is None: 
     275            result.dlam = None 
     276        else: 
     277            result.dlam = numpy.zeros(tot_length) 
    265278        if self.dy == None or other.dy is None: 
    266279            result.dy = None 
     
    285298        result.y = numpy.append(self.y, other.y) 
    286299        result.y = result.y[ind] 
     300        result.lam = numpy.append(self.lam, other.lam) 
     301        result.lam = result.lam[ind] 
    287302        if result.dy != None: 
    288303            result.dy = numpy.append(self.dy, other.dy) 
  • src/sas/sasgui/perspectives/fitting/basepage.py

    re28f34d r7988501  
    142142        self.theory_qmin_x = None 
    143143        self.theory_qmax_x = None 
     144        self.cb1 = None 
    144145        self.btEditMask = None 
    145146        self.btFit = None 
     
    280281                           num=self.npts_x, endpoint=True) 
    281282        self.data = Data1D(x=x) 
    282         self.data.xaxis('\\rm{Q}', "A^{-1}") 
    283         self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 
     283        #self.data.xaxis('\\rm{Q}', "A^{-1}") 
     284        self.data.xaxis('\\rm{X}', "") 
     285        #self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 
     286        self.data.yaxis('\\rm{Y}', "") 
    284287        self.data.is_data = False 
    285288        self.data.id = str(self.uid) + " data" 
     
    306309                           num=self.npts_x, endpoint=True, base=10.0) 
    307310        self.data = Data1D(x=x) 
    308         self.data.xaxis('\\rm{Q}', "A^{-1}") 
    309         self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 
     311        #self.data.xaxis('\\rm{Q}', "A^{-1}") 
     312        #self.data.yaxis('\\rm{Intensity}', "cm^{-1}") 
     313        self.data.xaxis('\\rm{X}', "") 
     314        self.data.yaxis('\\rm{Y}', "") 
    310315        self.data.is_data = False 
    311316        self.data.id = str(self.uid) + " data" 
     
    426431        self.sizer2 = wx.BoxSizer(wx.VERTICAL) 
    427432        self.sizer3 = wx.BoxSizer(wx.VERTICAL) 
     433        self.sizerTrafo = wx.BoxSizer(wx.VERTICAL) 
    428434        self.sizer4 = wx.BoxSizer(wx.VERTICAL) 
    429435        self.sizer5 = wx.BoxSizer(wx.VERTICAL) 
     
    434440        self.sizer2.SetMinSize((PANEL_WIDTH, -1)) 
    435441        self.sizer3.SetMinSize((PANEL_WIDTH, -1)) 
     442        self.sizerTrafo.SetMinSize((PANEL_WIDTH, -1)) 
    436443        self.sizer4.SetMinSize((PANEL_WIDTH, -1)) 
    437444        self.sizer5.SetMinSize((PANEL_WIDTH, -1)) 
     
    442449        self.vbox.Add(self.sizer2) 
    443450        self.vbox.Add(self.sizer3) 
     451        self.vbox.Add(self.sizerTrafo) 
    444452        self.vbox.Add(self.sizer4) 
    445453        self.vbox.Add(self.sizer5) 
     
    11131121        # set data, etc. from the state 
    11141122        # reset page between theory and fitting from bookmarking 
     1123        #if state.data == None: 
     1124        #    data = None 
     1125        #else: 
    11151126        data = state.data 
    11161127 
     
    11381149        self.disp_cb_dict = state.disp_cb_dict 
    11391150        self.disp_list = state.disp_list 
     1151 
     1152        ## set the state of the radio box 
     1153        #self.shape_rbutton.SetValue(state.shape_rbutton) 
     1154        #self.shape_indep_rbutton.SetValue(state.shape_indep_rbutton) 
     1155        #self.struct_rbutton.SetValue(state.struct_rbutton) 
     1156        #self.plugin_rbutton.SetValue(state.plugin_rbutton) 
    11401157 
    11411158        ## fill model combobox 
     
    11931210            else: 
    11941211                self.model_view.SetLabel("1D Mode") 
     1212 
     1213        ## set the select all check box to the a given state 
     1214        self.cb1.SetValue(state.cb1) 
    11951215 
    11961216        ## reset state of checkbox,textcrtl  and  regular parameters value 
     
    13231343                            logging.error(traceback.format_exc()) 
    13241344 
     1345        # Make sure the check box updated when all checked 
     1346        if self.cb1.GetValue(): 
     1347            self.select_all_param(None) 
     1348 
    13251349    def _selectDlg(self): 
    13261350        """ 
     
    14201444            else: 
    14211445                self.fitrange = False 
     1446 
     1447            if not self.data.is_data: 
     1448                is_modified = True 
    14221449 
    14231450            ## if any value is modify draw model with new value 
     
    14361463                self._draw_model() 
    14371464                self.Refresh() 
    1438  
    1439         logging.info("is_modified flag set to %g",is_modified) 
    14401465        return is_modified 
    14411466 
     
    24522477                        item[2].Enable() 
    24532478 
    2454             # Make sure the check box updated 
    2455             self.get_all_checked_params() 
     2479            # Make sure the check box updated when all checked 
     2480            if self.cb1.GetValue(): 
     2481                #self.select_all_param(None) 
     2482                self.get_all_checked_params() 
    24562483 
    24572484            # update params 
     
    35983625        call back for model selection if implemented 
    35993626        """ 
     3627    def select_all_param(self, event): 
     3628        """ 
     3629        set to true or false all checkBox if implemented 
     3630        """ 
    36003631    def get_weight_flag(self): 
    36013632        """ 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    r4c3be25 r7988501  
    5555        self.weightbt_string = None 
    5656        self.m_name = None 
     57        # transform implementation 
     58        self._fill_Trafo_sizer() 
     59       # self.Trafobt_string() 
    5760        # get smear info from data 
    5861        self._get_smear_info() 
     
    9295        self.parent.on_set_focus(event) 
    9396        self.on_tap_focus() 
     97 
     98    def onTrafo(self, event): 
     99        """ 
     100        On Trafo radio button event, sets the Trafobt_string 
     101        """ 
     102        self.Trafobt_string = event.GetEventObject().GetLabelText() 
     103        self._set_Trafo() 
     104 
     105    def _fill_Trafo_sizer(self): 
     106 
     107        title = "Transform" 
     108        box_description_trafo = wx.StaticBox(self, wx.ID_ANY, str(title)) 
     109        box_description_trafo.SetForegroundColour(wx.BLUE) 
     110        #boxsizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.VERTICAL) 
     111        boxsizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.HORIZONTAL) 
     112        #sizer_trafo = wx.StaticBoxSizer(box_description_trafo, wx.HORIZONTAL) 
     113        #weighting_set_box = wx.StaticBox(self, wx.ID_ANY, 
     114         #                              'Select the type of SESANS analysis') 
     115 
     116        #sizer_weighting = wx.BoxSizer(wx.HORIZONTAL) 
     117          #      weighting_box.SetMinSize((_DATA_BOX_WIDTH, 60)) 
     118 
     119        #For every radio button (each statement x3): 
     120        self.no_transform = wx.RadioButton(self, wx.ID_ANY, 
     121                                                  'None', style=wx.RB_GROUP) 
     122 
     123        #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 
     124         #                 id=self.no_transform.GetId()) 
     125        self.hankel = wx.RadioButton(self, wx.ID_ANY, 
     126                                                  'Hankel') 
     127        #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 
     128        #                  id=self.hankel.GetId()) 
     129        self.cosine = wx.RadioButton(self, wx.ID_ANY, 
     130                                                  'Cosine') 
     131        #self.Bind(wx.EVT_RADIOBUTTON, self.onTrafo, 
     132         #                 id=self.cosine.GetId()) 
     133 
     134        #Not sure about this (only once though) 
     135        self.no_transform.SetValue(True) 
     136 
     137        #For every radio button (each statement x3): 
     138        boxsizer_trafo.Add(self.no_transform, 0, wx.LEFT, 10) 
     139        boxsizer_trafo.Add((14, 10)) 
     140        boxsizer_trafo.Add(self.hankel) 
     141        boxsizer_trafo.Add((14, 10)) 
     142        boxsizer_trafo.Add(self.cosine) 
     143        boxsizer_trafo.Add((14, 10)) 
     144            #Default for weighting is False, but these need to be on by default! 
     145        self.no_transform.Enable(True) 
     146 
     147        #Not sure about this (only once though) 
     148        #weighting_box.Add(sizer_trafo) 
     149 
     150        self.sizerTrafo.Clear(True) 
     151        self.sizerTrafo.Add(boxsizer_trafo, 0, wx.EXPAND | wx.ALL, 10) 
     152        #self.sizerTrafo.Add(sizer_trafo, 0, wx.EXPAND | wx.ALL, 10) 
     153        self.sizerTrafo.Layout() 
    94154 
    95155    def _fill_data_sizer(self): 
     
    624684        ## fill a sizer with the combobox to select dispersion type 
    625685        model_disp = wx.StaticText(self, wx.ID_ANY, 'Function') 
    626         CHECK_STATE = False 
     686        CHECK_STATE = self.cb1.GetValue() 
    627687 
    628688        ix = 0 
     
    9691029        self.state.model = self.model.clone() 
    9701030        ## save state into 
     1031        self.state.cb1 = self.cb1.GetValue() 
    9711032        self._copy_parameters_state(self.parameters, self.state.parameters) 
    9721033        self._copy_parameters_state(self.orientation_params_disp, 
     
    9791040                     StatusEvent(status=" Selected Distribution: Gaussian")) 
    9801041        #Fill the list of fittable parameters 
     1042        #self.select_all_param(event=None) 
    9811043        self.get_all_checked_params() 
    9821044        self.Layout() 
     
    26932755        self._manager.set_param2fit(self.uid, param2fit) 
    26942756 
     2757    def select_all_param(self, event): 
     2758        """ 
     2759        set to true or false all checkBox given the main checkbox value cb1 
     2760        """ 
     2761        self.param_toFit = [] 
     2762        if  self.parameters != []: 
     2763            if  self.cb1.GetValue(): 
     2764                for item in self.parameters: 
     2765                    if item[0].IsShown(): 
     2766                        ## for data2D select all to fit 
     2767                        if self.data.__class__.__name__ == "Data2D" or \ 
     2768                                self.enable2D: 
     2769                            item[0].SetValue(True) 
     2770                            self.param_toFit.append(item) 
     2771                        else: 
     2772                            ## for 1D all parameters except orientation 
     2773                            if not item in self.orientation_params: 
     2774                                item[0].SetValue(True) 
     2775                                self.param_toFit.append(item) 
     2776                    else: 
     2777                        item[0].SetValue(False) 
     2778                #if len(self.fittable_param)>0: 
     2779                for item in self.fittable_param: 
     2780                    if item[0].IsShown(): 
     2781                        if self.data.__class__.__name__ == "Data2D" or \ 
     2782                                self.enable2D: 
     2783                            item[0].SetValue(True) 
     2784                            self.param_toFit.append(item) 
     2785                            try: 
     2786                                if len(self.values[item[1]]) > 0: 
     2787                                    item[0].SetValue(False) 
     2788                            except: 
     2789                                pass 
     2790 
     2791                        else: 
     2792                            ## for 1D all parameters except orientation 
     2793                            if not item in self.orientation_params_disp: 
     2794                                item[0].SetValue(True) 
     2795                                self.param_toFit.append(item) 
     2796                                try: 
     2797                                    if len(self.values[item[1]]) > 0: 
     2798                                        item[0].SetValue(False) 
     2799                                except: 
     2800                                    pass 
     2801                    else: 
     2802                        item[0].SetValue(False) 
     2803 
     2804            else: 
     2805                for item in self.parameters: 
     2806                    item[0].SetValue(False) 
     2807                for item in self.fittable_param: 
     2808                    item[0].SetValue(False) 
     2809                self.param_toFit = [] 
     2810 
     2811        self.save_current_state_fit() 
     2812 
     2813        if event != None: 
     2814            #self._undo.Enable(True) 
     2815            ## post state to fit panel 
     2816            event = PageInfoEvent(page=self) 
     2817            wx.PostEvent(self.parent, event) 
     2818        param2fit = [] 
     2819        for item in self.param_toFit: 
     2820            if item[0] and item[0].IsShown(): 
     2821                param2fit.append(item[1]) 
     2822        self.parent._manager.set_param2fit(self.uid, param2fit) 
     2823 
    26952824    def select_param(self, event): 
    26962825        """ 
     
    27392868        if len(self.fittable_param) > 0: 
    27402869            len_orient_para *= 2 
     2870        #Set the value of checkbox that selected every checkbox or not 
     2871        if len(self.parameters) + len(self.fittable_param) - len_orient_para \ 
     2872            == len(self.param_toFit): 
     2873            self.cb1.SetValue(True) 
     2874        else: 
     2875            self.cb1.SetValue(False) 
    27412876 
    27422877        self.save_current_state_fit() 
     
    28402975        iy = 0 
    28412976        ix = 0 
    2842         sizer.Add(wx.StaticText(self, wx.ID_ANY, 'Parameter'), 
    2843                   (iy, ix), (1, 1), wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     2977        select_text = "Select All" 
     2978        self.cb1 = wx.CheckBox(self, wx.ID_ANY, str(select_text), (10, 10)) 
     2979        wx.EVT_CHECKBOX(self, self.cb1.GetId(), self.select_all_param) 
     2980        self.cb1.SetToolTipString("To check/uncheck all the boxes below.") 
     2981        self.cb1.SetValue(True) 
     2982 
     2983        sizer.Add(self.cb1, (iy, ix), (1, 1), \ 
     2984                             wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 
    28442985        ix += 1 
    28452986        self.text2_2 = wx.StaticText(self, wx.ID_ANY, 'Value') 
     
    28683009        self.text2_4.Hide() 
    28693010 
    2870         CHECK_STATE = False 
     3011        CHECK_STATE = self.cb1.GetValue() 
    28713012        for item in keys: 
    28723013 
  • src/sas/sasgui/plottools/plottables.py

    r8abd96d r7988501  
    10221022    """ 
    10231023 
    1024     def __init__(self, x, y, dx=None, dy=None): 
     1024    def __init__(self, x, y, lam=None, dx=None, dy=None, dlam=None): 
    10251025        """ 
    10261026        Draw points specified by x[i],y[i] in the current color/symbol. 
     
    10361036        self.x = x 
    10371037        self.y = y 
     1038        self.lam = lam 
    10381039        self.dx = dx 
    10391040        self.dy = dy 
     1041        self.dlam = dlam 
    10401042        self.source = None 
    10411043        self.detector = None 
Note: See TracChangeset for help on using the changeset viewer.