Ignore:
Timestamp:
Feb 2, 2009 5:28:06 PM (15 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
ca88b2e
Parents:
2cf2b87
Message:

redesign the model1D and madel page

File:
1 moved

Legend:

Unmodified
Added
Removed
  • sansview/perspectives/fitting/old_modelpage.py

    rc80c06f r26bf293  
    44import numpy 
    55import copy 
    6  
    76 
    87from sans.guicomm.events import StatusEvent    
     
    2524        return "%-5.3g" % value 
    2625 
    27  
     26     
    2827class ModelPage(wx.ScrolledWindow): 
    2928    """ 
     
    4645        """ 
    4746        #self.scroll = wx.ScrolledWindow(self) 
    48          
    4947        self.manager = None 
    5048        self.parent  = parent 
    51         self.event_owner = None 
    52         # this panel does contain data .existing data allow a different drawing 
    53         #on set_model parameters 
    54         self.data=None 
     49        self.event_owner=None 
    5550        #panel interface 
    5651        self.vbox  = wx.BoxSizer(wx.VERTICAL) 
    57         self.sizer10 = wx.GridBagSizer(5,5) 
    58         self.sizer9 = wx.GridBagSizer(5,5) 
    59         self.sizer8 = wx.GridBagSizer(5,5) 
    60         self.sizer7 = wx.GridBagSizer(5,5) 
    61         self.sizer6 = wx.GridBagSizer(5,5) 
     52        self.sizer3 = wx.GridBagSizer(5,5) 
     53        self.sizer1 = wx.GridBagSizer(5,5) 
     54        self.sizer2 = wx.GridBagSizer(5,5) 
     55        self.sizer4 = wx.GridBagSizer(5,5) 
    6256        self.sizer5 = wx.GridBagSizer(5,5) 
    63         self.sizer4 = wx.GridBagSizer(5,5) 
    64         
    65         #model selection 
    66         self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 
     57        self.static_line_1 = wx.StaticLine(self, -1) 
     58        self.modelbox = wx.ComboBox(self, -1) 
     59        id = wx.NewId() 
     60        self.vbox.Add(self.sizer3) 
     61        self.vbox.Add(self.sizer1) 
     62        self.vbox.Add(self.sizer2) 
     63        self.vbox.Add(self.static_line_1, 0, wx.EXPAND, 0) 
     64        self.vbox.Add(self.sizer5) 
    6765        self.vbox.Add(self.sizer4) 
    68         #model paramaters layer 
    69         self.vbox.Add(self.sizer5) 
    70         #polydispersion selected 
    71         self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 
    72         self.vbox.Add(self.sizer6) 
    73         #combox box for type of dispersion 
    74         self.vbox.Add(self.sizer7) 
    75         #dispersion parameters layer 
    76         self.vbox.Add(self.sizer8) 
    77         # plotting range 
    78         self.vbox.Add(self.sizer9) 
    79         #close layer 
    80         self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 
    81         self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 
    82         self.vbox.Add(self.sizer10) 
    83          
    84        
    85         #------------------ sizer 4  draw------------------------    
    86         self.modelbox = wx.ComboBox(self, -1) 
    87          # preview selected model name 
    88         self.prevmodel_name=name 
    89         #print "model view prev_model",name 
    90         self.modelbox.SetValue(self.prevmodel_name) 
    91         #filling sizer2 
     66         
     67        id = wx.NewId() 
     68        self.btClose =wx.Button(self,id,'Close') 
     69        self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 
     70        self.btClose.SetToolTipString("Close page.") 
     71        ix = 1 
     72        iy = 1  
     73        self.sizer4.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ 
     74                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     75        ix += 1 
     76        self.sizer4.Add(wx.StaticText(self, -1, 'Max'),(iy, ix),(1,1),\ 
     77                            wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     78        ix += 1 
     79        self.sizer4.Add(wx.StaticText(self, -1, 'Npts'),(iy, ix),(1,1),\ 
     80                            wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    9281        ix = 0 
    93         iy = 1 
    94         self.sizer4.Add(wx.StaticText(self,-1,'Model'),(iy,ix),(1,1)\ 
    95                   , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    96         ix += 1 
    97         self.sizer4.Add(self.modelbox,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    98         ix += 1 
    99         id = wx.NewId() 
    100         self.model_view =wx.Button(self,id,'View 2D') 
    101         self.model_view.Bind(wx.EVT_BUTTON, self.onModel2D,id=id) 
    102         self.model_view.SetToolTipString("View model in 2D") 
    103         self.sizer4.Add(self.model_view,(iy,ix),(1,1),\ 
    104                    wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    105         self.model_view.SetFocus() 
    106         #----------sizer6------------------------------------------------- 
    107         self.disable_disp = wx.RadioButton(self, -1, 'No', (10, 10), style=wx.RB_GROUP) 
    108         self.enable_disp = wx.RadioButton(self, -1, 'Yes', (10, 30)) 
    109         self.Bind(wx.EVT_RADIOBUTTON, self.Set_DipersParam, id=self.disable_disp.GetId()) 
    110         self.Bind(wx.EVT_RADIOBUTTON, self.Set_DipersParam, id=self.enable_disp.GetId()) 
    111         ix= 0 
    112         iy=1 
    113         self.sizer6.Add(wx.StaticText(self,-1,'Polydispersity: '),(iy,ix),(1,1)\ 
    114                   , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    115         ix += 1 
    116         self.sizer6.Add(self.enable_disp ,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    117         ix += 1 
    118         self.sizer6.Add(self.disable_disp ,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    119         ix =0 
    120         iy+=1 
    121         self.sizer6.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)   
    122  
    123          
    124         #---------sizer 9 draw---------------------------------------- 
    125         
    126          ## Q range 
     82        iy += 1 
     83        self.sizer4.Add(wx.StaticText(self, -1, 'x range'),(iy, ix),(1,1),\ 
     84                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     85        ## Q range 
    12786        self.qmin= 0.001 
    12887        self.qmax= 0.1 
    12988        self.num_points= 100 
    13089         
    131          
     90        ix += 1 
    13291        self.xmin    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
    13392        self.xmin.SetValue(format_number(self.qmin)) 
     
    13594        self.xmin.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    13695        self.xmin.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    137         self.xmin.Disable() 
    138          
     96        self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     97         
     98        
     99        ix += 1 
    139100        self.xmax    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
    140101        self.xmax.SetValue(format_number(self.qmax)) 
     
    142103        self.xmax.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    143104        self.xmax.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    144         self.xmax.Disable() 
    145  
     105        self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     106        ix += 1 
    146107        self.npts    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
    147108        self.npts.SetValue(format_number(self.num_points)) 
     
    149110        self.npts.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    150111        self.npts.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    151         self.npts.Disable() 
    152         ix = 0 
    153         iy = 1  
    154         self.sizer9.Add(wx.StaticText(self, -1, 'Plotting Range'),(iy, ix),(1,1),\ 
    155                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    156         ix += 1  
    157         self.sizer9.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ 
    158                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    159         ix += 1 
    160         self.sizer9.Add(wx.StaticText(self, -1, 'Max'),(iy, ix),(1,1),\ 
    161                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    162         ix += 1 
    163         self.sizer9.Add(wx.StaticText(self, -1, 'Npts'),(iy, ix),(1,1),\ 
    164                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     112        
     113        self.sizer4.Add(self.npts,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    165114        ix = 0 
    166115        iy += 1 
    167         self.sizer9.Add(wx.StaticText(self, -1, 'x range'),(iy, ix),(1,1),\ 
    168                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    169         ix += 1 
    170         self.sizer9.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    171         ix += 1 
    172         self.sizer9.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    173         ix += 1 
    174         self.sizer9.Add(self.npts,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    175          
    176         ix =0 
    177         iy+=1  
    178         self.sizer9.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    179         #----------sizer 10 draw------------------------------------------------------ 
     116        self.sizer4.Add((20,20),(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     117        ix +=3 
     118        self.sizer4.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     119        ix = 0 
     120        iy = 1 
     121        self.sizer3.Add(wx.StaticText(self,-1,'Model'),(iy,ix),(1,1)\ 
     122                  , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     123        ix += 1 
     124        self.sizer3.Add(self.modelbox,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     125        #ix = 0 
     126        #iy += 1 
     127        ix += 1 
    180128        id = wx.NewId() 
    181         self.btClose =wx.Button(self,id,'Close') 
    182         self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 
    183         self.btClose.SetToolTipString("Close page.") 
    184          
    185         ix= 3 
    186         iy= 1 
    187         self.sizer10.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    188         ix +=1 
    189         self.sizer10.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    190         ix =0 
    191         iy+=1 
    192         self.sizer10.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    193         
     129        self.model_view =wx.Button(self,id,'View 2D') 
     130        self.model_view.Bind(wx.EVT_BUTTON, self.onModel2D,id=id) 
     131        self.model_view.SetToolTipString("View model in 2D") 
     132        self.sizer3.Add(self.model_view,(iy,ix),(1,1),\ 
     133                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    194134        # contains link between  model ,all its parameters, and panel organization 
    195135        self.parameters=[] 
    196         self.fixed_param=[] 
    197136        #contains link between a model and selected parameters to fit  
    198137        self.param_toFit=[] 
    199138        # model on which the fit would be performed 
    200         self.model=None 
     139        self.model=model 
     140        try: 
     141            #print"init modelpage",model.name 
     142            self.set_panel(model) 
     143        except: 
     144            raise 
     145        # preview selected model name 
     146        self.prevmodel_name=name 
     147        #print "model view prev_model",name 
     148        self.modelbox.SetValue(self.prevmodel_name) 
     149        # flag to check if the user has selected a new model in the combox box 
     150        self.model_hasChanged=False 
    201151        #dictionary of model name and model class 
    202152        self.model_list_box={} 
    203153        
    204         ## Q range 
    205         self.qmin= 0.001 
    206         self.qmax= 0.1 
    207         
     154        #enable model 2D draw 
     155        self.enable2D= False 
     156        # Data1D to make a deep comparison between 2 Data1D for checking data 
     157        #change 
    208158        self.vbox.Layout() 
    209159        self.vbox.Fit(self)  
     160         
    210161        self.SetSizer(self.vbox) 
    211162        self.SetScrollbars(20,20,55,40) 
    212163         
    213164        self.Centre() 
    214         self.Layout() 
    215         self.GrandParent.GetSizer().Layout() 
     165        
     166    def set_range(self, qmin, qmax, npts): 
     167        """ 
     168            Set the range for the plotted models 
     169            @param qmin: minimum Q 
     170            @param qmax: maximum Q 
     171            @param npts: number of Q bins 
     172        """ 
     173        # Set the data members 
     174        self.qmin = qmin 
     175        self.qmax = qmax 
     176        self.num_points = npts 
     177         
     178        # Set the controls 
     179        self.xmin.SetValue(format_number(self.qmin)) 
     180        self.xmax.SetValue(format_number(self.qmax)) 
     181        self.npts.SetValue(format_number(self.num_points)) 
     182         
     183    def onClose(self,event): 
     184        """ close the page associated with this panel""" 
     185        self.GrandParent.onClose() 
    216186         
    217187    def set_owner(self,owner): 
     
    228198             @param manager: instance of plugin fitting 
    229199        """ 
    230         self.manager = manager   
    231          
     200        self.manager = manager 
     201         
     202    def onModel2D(self, event): 
     203        """ 
     204         call manager to plot model in 2D 
     205        """ 
     206        # If the 2D display is not currently enabled, plot the model in 2D  
     207        # and set the enable2D flag. 
     208        if self.enable2D==False: 
     209            self.enable2D=True 
     210            self._draw_model() 
     211             
     212        else: 
     213            print "enable is true:",self.enable2D 
     214            #self.manager.parent. show_panel(147) 
     215            self.manager.show_panel2D( id=None ) 
     216            #self.manager.menu1.Append(event_id, new_panel.window_caption,  
     217            #             "Show %s plot panel" % new_panel.window_caption) 
     218             
    232219    def populate_box(self, dict): 
    233220        """ 
     
    243230                name = item.name 
    244231            list_name.append(name) 
    245         list_name.sort()  
    246           
     232        list_name.sort()    
    247233        for name in list_name: 
    248234            self.modelbox.Insert(name,int(id)) 
     
    250236        wx.EVT_COMBOBOX(self.modelbox,-1, self._on_select_model)  
    251237        return 0 
    252      
    253  
    254     def Set_DipersParam(self, event): 
    255         if self.enable_disp.GetValue(): 
    256             self.set_panel_dispers() 
    257         else: 
    258             self.sizer7.Clear(True) 
    259             self.sizer8.Clear(True) 
    260     
    261     def set_range(self, qmin, qmax, npts): 
    262         """ 
    263             Set the range for the plotted models 
    264             @param qmin: minimum Q 
    265             @param qmax: maximum Q 
    266             @param npts: number of Q bins 
    267         """ 
    268         # Set the data members 
    269         self.qmin = qmin 
    270         self.qmax = qmax 
    271         self.num_points = npts 
    272          
    273         # Set the controls 
    274         self.xmin.SetValue(format_number(self.qmin)) 
    275         self.xmax.SetValue(format_number(self.qmax)) 
    276         self.npts.SetValue(format_number(self.num_points)) 
    277     def checkFitRange(self): 
    278         """ 
    279             Check the validity of fitting range 
    280             @note: xmin should always be less than xmax or else each control box 
    281             background is colored in pink. 
    282         """ 
    283         
    284         flag = True 
    285         valueMin = self.xmin.GetValue() 
    286         valueMax = self.xmax.GetValue() 
    287         # Check for possible values entered 
    288         #print "fitpage: checkfitrange:",valueMin,valueMax 
    289         try: 
    290             if (float(valueMax)> float(valueMin)): 
    291                 self.xmax.SetBackgroundColour(wx.WHITE) 
    292                 self.xmin.SetBackgroundColour(wx.WHITE) 
    293             else: 
    294                 flag = False 
    295                 self.xmin.SetBackgroundColour("pink") 
    296                 self.xmax.SetBackgroundColour("pink")       
    297         except: 
    298             flag = False 
    299             self.xmin.SetBackgroundColour("pink") 
    300             self.xmax.SetBackgroundColour("pink") 
    301              
    302         self.xmin.Refresh() 
    303         self.xmax.Refresh() 
    304         return flag 
    305      
    306  
    307          
    308     def onClose(self,event): 
    309         """ close the page associated with this panel""" 
    310         self.GrandParent.onClose() 
    311          
    312    
    313          
    314     def onModel2D(self, event): 
    315         """ 
    316          call manager to plot model in 2D 
    317         """ 
    318         # If the 2D display is not currently enabled, plot the model in 2D  
    319         # and set the enable2D flag. 
    320         if self.enable2D==False: 
    321             self.enable2D=True 
    322             self._draw_model() 
    323              
    324         else: 
    325             print "enable is true:",self.enable2D 
    326             #self.manager.parent. show_panel(147) 
    327             self.manager.show_panel2D( id=None ) 
    328             #self.manager.menu1.Append(event_id, new_panel.window_caption,  
    329             #             "Show %s plot panel" % new_panel.window_caption) 
    330              
    331238     
    332239    def select_model(self, model, name): 
     
    353260            post an event to its owner to draw an appropriate theory 
    354261        """ 
    355         
     262        self.model_view.SetFocus() 
    356263        for item in self.model_list_box.itervalues(): 
    357264            name = item.__name__ 
     
    391298            @param model: the model selected in combo box for fitting purpose 
    392299        """ 
     300         
     301        self.sizer2.Clear(True) 
     302        self.sizer1.Clear(True) 
    393303        self.sizer5.Clear(True) 
    394304        self.parameters = [] 
     
    396306        self.model = model 
    397307        keys = self.model.getParamList() 
    398         #print "fitpage1D : dispersion list",self.model.getDispParamList() 
    399308        keys.sort() 
    400         ik=0 
    401         im=1 
    402          
     309        description=None 
     310        if hasattr(self.model,'description'): 
     311            description =model.description 
     312        disp_list=self.model.getDispParamList() 
     313        ip=0 
     314        iq=1 
     315        if len(disp_list)>0: 
     316            disp = wx.StaticText(self, -1, 'Dispersion') 
     317            self.sizer5.Add(disp,( iq, ip),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     318            ip += 1  
     319            values = wx.StaticText(self, -1, 'Values') 
     320            self.sizer5.Add(values,( iq, ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     321             
     322        disp_list.sort() 
     323        #print "went here",self.model.name,model.description 
    403324        iy = 1 
    404325        ix = 0 
    405         self.cb1 = wx.CheckBox(self, -1,"Select all", (10, 10)) 
    406         if self.data!=None: 
    407             wx.EVT_CHECKBOX(self, self.cb1.GetId(), self.select_all_param) 
    408             self.cb1.SetValue(False) 
    409         else: 
    410             self.cb1.Disable() 
    411             self.cb1.Hide() 
    412         
    413         self.sizer5.Add(self.cb1,(iy, ix),(1,1),\ 
     326        self.cb0 = wx.StaticText(self, -1,'Model Description:') 
     327        self.sizer1.Add(self.cb0,(iy, ix),(1,1),\ 
     328                          wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     329        iy += 1 
     330         
     331        self.cb01 = wx.StaticText(self, -1,str(description),style=wx.ALIGN_LEFT) 
     332        self.cb01.Wrap(400)  
     333        #self.cb01 = wx.StaticText(self, -1,str(description),(45, 25),style=wx.ALIGN_LEFT) 
     334         
     335        self.sizer1.Add(self.cb01,(iy, ix),(1,1),\ 
     336                          wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     337        ix = 0 
     338        iy = 1 
     339        self.cb1 = wx.StaticText(self, -1,'Parameters') 
     340        self.sizer2.Add(self.cb1,(iy, ix),(1,1),\ 
    414341                          wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    415342        ix +=1 
    416343        self.text2_2 = wx.StaticText(self, -1, 'Values') 
    417         self.sizer5.Add(self.text2_2,(iy, ix),(1,1),\ 
     344        self.sizer2.Add(self.text2_2,(iy, ix),(1,1),\ 
    418345                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
    419         ix +=2 
    420         self.text2_3 = wx.StaticText(self, -1, 'Errors') 
    421         self.sizer5.Add(self.text2_3,(iy, ix),(1,1),\ 
    422                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    423         self.text2_3.Hide()  
    424346        ix +=1 
    425347        self.text2_4 = wx.StaticText(self, -1, 'Units') 
    426         self.sizer5.Add(self.text2_4,(iy, ix),(1,1),\ 
     348        self.sizer2.Add(self.text2_4,(iy, ix),(1,1),\ 
    427349                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
    428350        self.text2_4.Hide() 
    429         disp_list=self.model.getDispParamList() 
    430351        for item in keys: 
    431352            if not item in disp_list: 
    432353                iy += 1 
    433354                ix = 0 
    434      
    435                 cb = wx.CheckBox(self, -1, item, (10, 10)) 
    436                 if self.data!=None: 
    437                     cb.SetValue(False) 
    438                     wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    439                 else: 
    440                     cb.Disable() 
    441                 self.sizer5.Add( cb,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    442                 
     355                cb=wx.StaticText(self, -1, item) 
     356                self.sizer2.Add( cb,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    443357                ix += 1 
    444358                value= self.model.getParam(item) 
     
    446360                ctl1.SetValue(str (format_number(value))) 
    447361                ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    448                 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 
    449                 self.sizer5.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 
     362                ctl1.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
     363                self.sizer2.Add(ctl1, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     364                ix +=1 
    450365                 
    451                 ix += 1 
    452                 text2=wx.StaticText(self, -1, '+/-') 
    453                 self.sizer5.Add(text2,(iy, ix),(1,1),\ 
    454                                 wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
    455                 text2.Hide()   
    456                 ix += 1 
    457                 ctl2 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 
    458                 self.sizer5.Add(ctl2, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    459                 ctl2.Hide() 
    460                 ix +=1 
    461366                # Units 
    462367                try: 
     
    464369                except: 
    465370                    units = wx.StaticText(self, -1, "", style=wx.ALIGN_LEFT) 
    466                 self.sizer5.Add(units, (iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    467             
    468             self.parameters.append([cb,ctl1,text2,ctl2]) 
     371                self.sizer2.Add(units, (iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     372            else: 
     373                ip = 0 
     374                iq += 1 
     375                cb=wx.StaticText(self, -1, item) 
     376                self.sizer5.Add( cb,( iq, ip),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     377                wx.EVT_CHECKBOX(self, cb.GetId(), self._on_select_model) 
    469378                 
     379                ip += 1 
     380                value= self.model.getParam(item) 
     381                ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 
     382                ctl1.SetValue(str (format_number(value))) 
     383                ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
     384                ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 
     385                self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     386            #save data 
     387            self.parameters.append([cb,ctl1]) 
    470388        iy+=1 
    471         self.sizer5.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     389        self.sizer2.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    472390         
    473391        #Display units text on panel 
     
    478396            else: 
    479397                self.text2_4.Hide() 
    480         #Disable or enable fit button 
    481          
    482         if not (len(self.param_toFit ) >0): 
    483             self.xmin.Disable() 
    484             self.xmax.Disable() 
    485         else: 
    486             self.xmin.Enable() 
    487             self.xmax.Enable() 
    488              
    489398        self.vbox.Layout() 
    490399        self.SetScrollbars(20,20,55,40) 
    491         self.Layout() 
     400         
    492401        self.GrandParent.GetSizer().Layout() 
    493          
    494402        
    495     def  set_panel_dispers(self): 
    496         self.sizer7.Clear(True) 
    497         self.sizer8.Clear(True) 
    498         disp_list=self.model.getDispParamList() 
    499         ix=0 
    500         iy=1 
    501         if len(disp_list)>0: 
    502             model_disp = wx.StaticText(self, -1, 'Model Disp') 
    503             self.sizer7.Add(model_disp,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    504             ix += 1  
    505             self.disp_box = wx.ComboBox(self, -1) 
    506             self.sizer7.Add(self.disp_box,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    507             ix = 0  
    508             iy = 1  
    509             disp = wx.StaticText(self, -1, 'Dispersion') 
    510             self.sizer8.Add(disp,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    511             ix += 1  
    512             values = wx.StaticText(self, -1, 'Values') 
    513             self.sizer8.Add(values,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    514             ix += 1  
    515             npts = wx.StaticText(self, -1, 'Npts') 
    516             self.sizer8.Add(npts,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    517             ix += 1  
    518             nsigmas = wx.StaticText(self, -1, 'Nsigmas') 
    519             self.sizer8.Add(nsigmas,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    520              
    521             disp_list.sort() 
    522             print disp_list,self.model.fixed 
    523             for item in disp_list: 
    524                 if item in self.model.fixed: 
    525                     ix = 0 
    526                     iy += 1 
    527                     cb = wx.CheckBox(self, -1, item, (10, 10)) 
    528                     if self.data !=None: 
    529                         cb.SetValue(False) 
    530                         wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    531                     else: 
    532                         cb.Disable() 
    533                     self.sizer7.Add( cb,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    534                      
    535                     
    536                     ix += 1 
    537                     value= self.model.getParam(item) 
    538                     ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 
    539                     ctl1.SetValue(str (format_number(value))) 
    540                     ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    541                     ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 
    542                     self.sizer7.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 
    543                      
    544                     self.parameters.append([cb,ctl1]) 
    545                 iy+= 1 
    546         self.vbox.Layout() 
    547         self.SetScrollbars(20,20,55,40) 
    548         self.Layout() 
    549         self.GrandParent.GetSizer().Layout() 
    550             
    551403         
    552404    def _onparamEnter(self,event): 
     
    600452        if name==None: 
    601453            name= self.model.name 
    602         self.manager.draw_model(self.model, name, data=self.data, 
     454        self.manager.draw_model(self.model, name,  
    603455                                qmin=self.qmin, qmax=self.qmax, 
    604456                                qstep= self.num_points, 
     
    610462                                    enable2D=self.enable2D) 
    611463        """ 
    612     def select_param(self,event): 
    613         pass 
    614     def select_all_param(self,event):  
    615         pass 
    616          
    617         
     464    
     465         
     466               
Note: See TracChangeset for help on using the changeset viewer.