Ignore:
Timestamp:
Sep 11, 2008 3:13:32 PM (16 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:
388309d
Parents:
b30f001
Message:

working on model window display

File:
1 edited

Legend:

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

    rb30f001 r49b7efa  
    55 
    66(ModelEvent, EVT_MODEL) = wx.lib.newevent.NewEvent() 
     7class ModelInfo(object): 
     8    def __init__(self,model,description=None): 
     9        self.model=model 
     10        self.description=description 
     11    def set_description(self, descrition): 
     12        self.description =str(description) 
     13    def get_description(self): 
     14        return self.description 
    715def log(message): 
    816    print message 
     
    5260    ## Dictionary of models 
    5361    model_list = {} 
     62    indep_model_list = {} 
    5463    model_list_box = {} 
    5564    custom_models={} 
    5665    plugins=[] 
     66    indep_model=[] 
    5767    ## Event owner 
    5868    event_owner = None 
     
    6878        self.model_list = {} 
    6979        self.model_list_box = {} 
     80        model_info="shape-based models" 
    7081        from sans.models.CylinderModel import CylinderModel 
    71         self.model_list[str(wx.NewId())] = CylinderModel  
     82        self.model_list[str(wx.NewId())] = ModelInfo(CylinderModel , model_info) 
    7283       
    7384        from sans.models.SphereModel import SphereModel 
    74         self.model_list[str(wx.NewId())] = SphereModel 
     85        self.model_list[str(wx.NewId())] =  ModelInfo(SphereModel , model_info) 
    7586    
    7687        from sans.guitools.LineModel import LineModel 
    77         self.model_list[str(wx.NewId())]  = LineModel 
    78         self.plugins =findModels() 
     88        self.model_list[str(wx.NewId())]  = ModelInfo(LineModel , model_info) 
     89        model_info="shape-independent models" 
     90        from sans.models.Lorentzian import Lorentzian 
     91        self.indep_model.append( ModelInfo(Lorentzian , model_info) ) 
    7992         
    80         print "models: plugings",self.plugins 
     93        #Looking for plugins 
     94        self.plugins = findModels() 
     95        
    8196        return 0 
    8297 
     
    91106            @return: the next free event ID following the new menu events 
    92107        """ 
    93          
    94108        self._getModelList() 
    95109        self.event_owner = event_owner 
     110         
    96111        shape_submenu= wx.Menu()  
    97112        indep_submenu = wx.Menu() 
    98113        added_models = wx.Menu() 
     114         
    99115        for id_str,value in self.model_list.iteritems(): 
    100116            item = self.model_list[id_str] 
    101              
    102             name = item.__name__ 
     117            name = item.model.__name__ 
    103118            if hasattr(item, "name"): 
    104                 name = item.name 
    105                  
    106             self.model_list_box[name] =value 
    107  
    108                 
     119                name = item.model.name 
     120            self.model_list_box[name] =value.model 
    109121            shape_submenu.Append(int(id_str), name, name) 
    110122            wx.EVT_MENU(event_owner, int(id_str), self._on_model) 
    111123        modelmenu.AppendMenu(wx.NewId(), "Shapes...", shape_submenu, "List of shape-based models") 
    112         modelmenu.AppendMenu(wx.NewId(), "Shape-independent...", indep_submenu, "List of shape-independent models") 
    113124         
    114125        id = wx.NewId() 
     126        if len(self.indep_model_list) == 0: 
     127            print "models: self.indep_model",self.indep_model 
     128            for item in self.indep_model: 
     129                if item not in self.indep_model_list.values(): 
     130                    self.indep_model_list[str(id)] = item 
     131                    self.model_list[str(id)]=item 
     132                    if hasattr(item, "name"): 
     133                        name = item.model.name 
     134                    else: 
     135                        name = item.model.__name__ 
     136                    indep_submenu.Append(id,name, name) 
     137                    self.model_list_box[name] =item.model 
     138                    wx.EVT_MENU(event_owner, int(id), self._on_model) 
     139                    id = wx.NewId()          
     140        modelmenu.AppendMenu(wx.NewId(), "Shape-independent...", indep_submenu, "List of shape-independent models") 
     141        model_info="additional models" 
     142        id = wx.NewId() 
    115143        if len(self.custom_models) == 0: 
    116             print self.plugins 
    117144            for item in self.plugins: 
    118                 if item not in self.custom_models.keys(): 
     145                if item not in self.custom_models.values(): 
    119146                    self.custom_models[str(id)] = item 
    120                     self.model_list[str(id)]=item 
    121                     added_models.Append(id, item.name, item.name) 
     147                     
     148                    self.model_list[str(id)]=ModelInfo(item,model_info) 
     149                    if hasattr(item, "name"): 
     150                        name = item.name 
     151                    else: 
     152                        name = item.__name__ 
     153                    added_models.Append(id, name, name) 
     154                    self.model_list_box[name] =item 
    122155                    wx.EVT_MENU(event_owner, int(id), self._on_model) 
    123156                    id = wx.NewId() 
    124         
    125             
    126157        modelmenu.AppendMenu(wx.NewId(),"Added models...", added_models, "List of additional models") 
    127          
    128158         
    129159         
     
    142172            #evt = ModelEvent(model=self.model_list[str(evt.GetId())]()) 
    143173            
    144             model = self.model_list[str(evt.GetId())]() 
    145             evt = ModelEvent(model=model) 
     174            model = self.model_list[str(evt.GetId())] 
     175            evt = ModelEvent(modelinfo=model) 
    146176            wx.PostEvent(self.event_owner, evt) 
    147177         
Note: See TracChangeset for help on using the changeset viewer.