Changeset ea5fa58 in sasview


Ignore:
Timestamp:
Sep 20, 2012 11:22:02 AM (12 years ago)
Author:
Jae Cho <jhjcho@…>
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:
bda809e
Parents:
b71a53b
Message:

category stuffs start working in interp. environment

Files:
17 edited

Legend:

Unmodified
Added
Removed
  • calculatorview/src/sans/perspectives/calculator/model_editor.py

    r8d0ec40 rea5fa58  
    785785            msg = "Successful!!!" 
    786786            msg += "  " + self._notes 
    787             msg += " Please look for it in the 'Customized Models' box." 
     787            msg += " Please look for it in the Customized Models." 
    788788            info = 'Info' 
    789789            color = 'blue' 
  • fittingview/src/sans/perspectives/fitting/basepage.py

    rdf7a7e3 rea5fa58  
    22Base Page for fitting 
    33""" 
    4  
    54import sys 
    65import os 
     
    2726from sans.perspectives.fitting.pagestate import PageState 
    2827from sans.guiframe.CategoryInstaller import CategoryInstaller 
    29  
    30  
    3128 
    3229(PageInfoEvent, EVT_PAGE_INFO) = wx.lib.newevent.NewEvent() 
     
    137134        self.sld_axes = None 
    138135        self.multi_factor = None 
    139         self.model_name = None 
    140         self.model_dict = {} 
    141136        
    142137        self.disp_cb_dict = {} 
     
    155150        self.formfactorbox = None 
    156151        self.structurebox = None 
     152        self.categorybox = None 
    157153        ##list of model parameters. each item must have same length 
    158154        ## each item related to a given parameters 
     
    170166        self.disp_list = [] 
    171167        self.disp_name = "" 
    172  
    173         ## category stuff 
    174         self.category_box = None 
    175         self.model_box = None 
    176168         
    177169        ## list of orientation parameters 
     
    226218        ## layout 
    227219        self.set_layout() 
    228  
    229  
    230220     
    231221    def set_index_model(self, index): 
     
    474464        self.model_list_box = page_info.model_list_box 
    475465        ## Data member to store the dispersion object created 
    476  
     466        self.populate_box(dict=self.model_list_box) 
    477467         
    478468    def onContextMenu(self, event): 
     
    577567        self.state.manager = manager 
    578568         
    579     def populate_box(self, m_dict): 
     569    def populate_box(self, dict): 
    580570        """ 
    581571        Store list of model 
     
    584574         
    585575        """ 
    586         self.model_list_box = m_dict 
    587         # self.state.model_list_box = self.model_list_box 
    588         # self.initialize_combox() 
     576        self.model_list_box = dict 
     577        self.state.model_list_box = self.model_list_box 
     578        self.initialize_combox() 
    589579         
    590580    def set_model_dictionary(self, model_dict): 
     
    603593        if self.model_list_box is None: 
    604594            return 
     595        if len(self.model_list_box) > 0: 
     596            self._populate_box(self.formfactorbox, 
     597                               self.model_list_box["Shapes"]) 
    605598        
    606599        if len(self.model_list_box) > 0: 
     
    901894                        self.state.structurecombobox = self.structurebox.\ 
    902895                        GetString(s_select) 
    903             # if self.formfactorbox != None: 
    904             #     f_select = self.formfactorbox.GetSelection() 
    905             #     if f_select > 0: 
    906             self.state.formfactorcombobox = \ 
    907                 self.model_box.GetStringSelection() 
    908                          
     896            if self.formfactorbox != None: 
     897                f_select = self.formfactorbox.GetSelection() 
     898                if f_select > 0: 
     899                        self.state.formfactorcombobox = self.formfactorbox.\ 
     900                        GetString(f_select) 
     901        if self.categorybox != None: 
     902                cb_select = self.categorybox.GetSelection() 
     903                if cb_select > 0: 
     904                        self.state.categorycombobox = self.categorybox.\ 
     905                        GetString(cb_select)                 
    909906        #save radiobutton state for model selection 
    910         # ILL 
    911         # self.state.shape_rbutton = self.shape_rbutton.GetValue() 
    912         # self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
    913         # self.state.struct_rbutton = self.struct_rbutton.GetValue() 
    914         # self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
     907        #self.state.shape_rbutton = self.shape_rbutton.GetValue() 
     908        #self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
     909        #self.state.struct_rbutton = self.struct_rbutton.GetValue() 
     910        #self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
    915911         
    916912        self.state.enable2D = copy.deepcopy(self.enable2D) 
     
    10611057        self.disp_list = state.disp_list 
    10621058       
     1059        ## set the state of the radio box 
     1060        #self.shape_rbutton.SetValue(state.shape_rbutton) 
     1061        #self.shape_indep_rbutton.SetValue(state.shape_indep_rbutton) 
     1062        #self.struct_rbutton.SetValue(state.struct_rbutton) 
     1063        #self.plugin_rbutton.SetValue(state.plugin_rbutton) 
     1064         
     1065        ## fill model combobox 
    10631066        self._show_combox_helper() 
    1064  
    1065         # select the model in the gui 
    1066         self._regenerate_model_dict() 
    1067         if(len(self.by_model_dict[state.formfactorcombobox]) == 0): 
    1068             self.category_box.SetStringSelection('Uncategorized') 
    1069             self.model_box.SetStringSelection(state.formfactorcombobox) 
    1070         else: 
    1071             self.category_box.SetStringSelection(\ 
    1072                 self.by_model_dict[state.formfactorcombobox][0] ) 
    1073             self.model_box.SetStringSelection(state.formfactorcombobox) 
    1074          
    1075  
     1067        #select the current model 
     1068        try: 
     1069            # to support older version 
     1070            category_pos = int(state.categorycombobox) 
     1071        except: 
     1072            category_pos = 0 
     1073            for ind_cat in range(self.categorybox.GetCount()): 
     1074                if self.categorycombobox.GetString(ind_form) == \ 
     1075                                        state.categorycombobox: 
     1076                    category_pos = int(ind_cat) 
     1077                    break 
     1078             
     1079        self.categorybox.Select(category_pos) 
     1080        try: 
     1081            # to support older version 
     1082            formfactor_pos = int(state.formfactorcombobox) 
     1083        except: 
     1084            formfactor_pos = 0 
     1085            for ind_form in range(self.formfactorbox.GetCount()): 
     1086                if self.formfactorbox.GetString(ind_form) == \ 
     1087                                        state.formfactorcombobox: 
     1088                    formfactor_pos = int(ind_form) 
     1089                    break 
     1090             
     1091        self.formfactorbox.Select(formfactor_pos) 
     1092         
    10761093        try: 
    10771094            # to support older version 
     
    11181135                                                    state.disp_cb_dict[item]) 
    11191136                        # Create the dispersion objects 
    1120                         from sans.models.dispersion_models \ 
    1121                             import ArrayDispersion 
     1137                        from sans.models.dispersion_models import ArrayDispersion 
    11221138                        disp_model = ArrayDispersion() 
    11231139                        if hasattr(state, "values") and \ 
     
    12181234        self.disp_list = state.disp_list 
    12191235       
     1236        ## set the state of the radio box 
     1237        #self.shape_rbutton.SetValue(state.shape_rbutton) 
     1238        #self.shape_indep_rbutton.SetValue(state.shape_indep_rbutton) 
     1239        #self.struct_rbutton.SetValue(state.struct_rbutton) 
     1240        #self.plugin_rbutton.SetValue(state.plugin_rbutton) 
    12201241         
    12211242        ## fill model combobox 
    12221243        self._show_combox_helper() 
    12231244        #select the current model 
    1224  
    1225  
    1226         self._regenerate_model_dict() 
    1227         if(len(self.by_model_dict[state.formfactorcombobox]) == 0): 
    1228             self.category_box.SetStringSelection('Uncategorized') 
    1229             self.model_box.SetStringSelection(state.formfactorcombobox) 
    1230         else: 
    1231             self.category_box.SetStringSelection(\ 
    1232                 self.by_model_dict[state.formfactorcombobox][0] ) 
    1233             self.model_box.SetStringSelection(state.formfactorcombobox) 
    1234  
     1245        try: 
     1246            # to support older version 
     1247            category_pos = int(state.categorycombobox) 
     1248        except: 
     1249            category_pos = 0 
     1250            for ind_cat in range(self.categorybox.GetCount()): 
     1251                if self.categorybox.GetString(ind_cat) == \ 
     1252                                        state.categorycombobox: 
     1253                    category_pos = int(ind_cat) 
     1254                    break 
     1255             
     1256        self.categorybox.Select(category_pos) 
     1257        self._show_combox(None) 
     1258        try: 
     1259            # to support older version 
     1260            formfactor_pos = int(state.formfactorcombobox) 
     1261        except: 
     1262            formfactor_pos = 0 
     1263            for ind_form in range(self.formfactorbox.GetCount()): 
     1264                if self.formfactorbox.GetString(ind_form) == \ 
     1265                                                    (state.formfactorcombobox): 
     1266                    formfactor_pos = int(ind_form) 
     1267                    break 
     1268             
     1269        self.formfactorbox.Select(formfactor_pos) 
     1270         
    12351271        try: 
    12361272            # to support older version 
     
    14321468        save radiobutton containing the type model that can be selected 
    14331469        """ 
    1434         # self.state.shape_rbutton = self.shape_rbutton.GetValue() 
    1435         # self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
    1436         # self.state.struct_rbutton = self.struct_rbutton.GetValue() 
    1437         # self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
     1470        #self.state.shape_rbutton = self.shape_rbutton.GetValue() 
     1471        #self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
     1472        #self.state.struct_rbutton = self.struct_rbutton.GetValue() 
     1473        #self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
    14381474        self.state.structurecombobox = self.structurebox.GetLabel() 
    1439         self.state.formfactorcombobox = self.model_box.GetStringSelection() 
     1475        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
     1476        self.state.categorycombobox = self.categorybox.GetLabel() 
    14401477        
    14411478        ## post state to fit panel 
     
    17721809            class_name = model.p_model.__class__ 
    17731810            name = model.p_model.name 
    1774 #            self.formfactorbox.Clear() 
     1811            self.formfactorbox.Clear() 
    17751812             
    17761813            for k, list in self.model_list_box.iteritems(): 
    17771814                if k in["P(Q)*S(Q)", "Shapes"] and \ 
    17781815                    class_name in self.model_list_box["Shapes"]: 
    1779 #                    self.shape_rbutton.SetValue(True) 
     1816                    self.shape_rbutton.SetValue(True) 
    17801817                    ## fill the form factor list with new model 
    1781                     # self._populate_box(self.formfactorbox, 
    1782                     #                    self.model_list_box["Shapes"]) 
    1783                     # items = self.formfactorbox.GetItems() 
    1784                     # ## set comboxbox to the selected item 
    1785                     # for i in range(len(items)): 
    1786                     #     if items[i] == str(name): 
    1787                     #         self.formfactorbox.SetSelection(i) 
    1788                     #         break 
     1818                    self._populate_box(self.formfactorbox, 
     1819                                       self.model_list_box["Shapes"]) 
     1820                    items = self.formfactorbox.GetItems() 
     1821                    ## set comboxbox to the selected item 
     1822                    for i in range(len(items)): 
     1823                        if items[i] == str(name): 
     1824                            self.formfactorbox.SetSelection(i) 
     1825                            break 
    17891826                    return 
    1790                 # elif k == "Shape-Independent": 
    1791                 #     self.shape_indep_rbutton.SetValue(True) 
    1792                 # elif k == "Structure Factors": 
    1793                 #     self.struct_rbutton.SetValue(True) 
    1794                 # elif k == "Multi-Functions": 
    1795                 #     continue 
    1796                 # else: 
    1797                 #     self.plugin_rbutton.SetValue(True) 
     1827                elif k == "Shape-Independent": 
     1828                    self.shape_indep_rbutton.SetValue(True) 
     1829                elif k == "Structure Factors": 
     1830                    self.struct_rbutton.SetValue(True) 
     1831                elif k == "Multi-Functions": 
     1832                    continue 
     1833                else: 
     1834                    self.plugin_rbutton.SetValue(True) 
    17981835                
    1799                 # if class_name in list: 
    1800                 #     # ## fill the form factor list with new model 
    1801                 #     # self._populate_box(self.formfactorbox, list) 
    1802                 #     # items = self.formfactorbox.GetItems() 
    1803                 #     # ## set comboxbox to the selected item 
    1804                 #     # for i in range(len(items)): 
    1805                 #     #     if items[i] == str(name): 
    1806                 #     #         self.formfactorbox.SetSelection(i) 
    1807                 #     #         break 
    1808                 #     # break 
    1809                 #     else: 
     1836                if class_name in list: 
     1837                    ## fill the form factor list with new model 
     1838                    self._populate_box(self.formfactorbox, list) 
     1839                    items = self.formfactorbox.GetItems() 
     1840                    ## set comboxbox to the selected item 
     1841                    for i in range(len(items)): 
     1842                        if items[i] == str(name): 
     1843                            self.formfactorbox.SetSelection(i) 
     1844                            break 
     1845                    break 
     1846        else: 
    18101847            ## Select the model from the menu 
    18111848            class_name = model.__class__ 
    18121849            name = model.name 
    1813 ##            self.formfactorbox.Clear() 
    1814 #            items = self.formfactorbox.GetItems() 
     1850            self.formfactorbox.Clear() 
     1851            items = self.formfactorbox.GetItems() 
    18151852     
    18161853            for k, list in self.model_list_box.iteritems(): 
     
    18301867                        self.text2.Disable() 
    18311868                         
    1832 #                    self.shape_rbutton.SetValue(True) 
     1869                    self.shape_rbutton.SetValue(True) 
    18331870                    ## fill the form factor list with new model 
    1834                     # self._populate_box(self.formfactorbox, 
    1835                     #                    self.model_list_box["Shapes"]) 
    1836                     # items = self.formfactorbox.GetItems() 
    1837                     # ## set comboxbox to the selected item 
    1838                     # for i in range(len(items)): 
    1839                     #     if items[i] == str(name): 
    1840                     #         self.formfactorbox.SetSelection(i) 
    1841                     #         break 
     1871                    self._populate_box(self.formfactorbox, 
     1872                                       self.model_list_box["Shapes"]) 
     1873                    items = self.formfactorbox.GetItems() 
     1874                    ## set comboxbox to the selected item 
     1875                    for i in range(len(items)): 
     1876                        if items[i] == str(name): 
     1877                            self.formfactorbox.SetSelection(i) 
     1878                            break 
    18421879                    return 
    1843                 # elif k == "Shape-Independent": 
    1844                 #     self.shape_indep_rbutton.SetValue(True) 
    1845                 # elif k == "Structure Factors": 
    1846                 #     self.struct_rbutton.SetValue(True) 
    1847                 # elif k == "Multi-Functions": 
    1848                 #     continue 
    1849                 # else: 
    1850                 #     self.plugin_rbutton.SetValue(True) 
     1880                elif k == "Shape-Independent": 
     1881                    self.shape_indep_rbutton.SetValue(True) 
     1882                elif k == "Structure Factors": 
     1883                    self.struct_rbutton.SetValue(True) 
     1884                elif k == "Multi-Functions": 
     1885                    continue 
     1886                else: 
     1887                    self.plugin_rbutton.SetValue(True) 
    18511888                if class_name in list: 
    18521889                    self.structurebox.SetSelection(0) 
     
    18541891                    self.text2.Disable() 
    18551892                    ## fill the form factor list with new model 
    1856                     # self._populate_box(self.formfactorbox, list) 
    1857                     # items = self.formfactorbox.GetItems() 
     1893                    self._populate_box(self.formfactorbox, list) 
     1894                    items = self.formfactorbox.GetItems() 
    18581895                    ## set comboxbox to the selected item 
    1859                     # for i in range(len(items)): 
    1860                     #     if items[i] == str(name): 
    1861                     #         self.formfactorbox.SetSelection(i) 
    1862                     #         break 
     1896                    for i in range(len(items)): 
     1897                        if items[i] == str(name): 
     1898                            self.formfactorbox.SetSelection(i) 
     1899                            break 
    18631900                    break 
    18641901                 
     
    19531990        if self.multifactorbox.IsShown(): 
    19541991            self.multifactorbox.Hide() 
    1955  
     1992     
     1993    def formfactor_combo_init(self): 
     1994        """ 
     1995        First time calls _show_combox_helper 
     1996        """ 
     1997        self._show_combox(None) 
     1998                 
    19561999    def _show_combox_helper(self): 
    19572000        """ 
    19582001        Fill panel's combo box according to the type of model selected 
    19592002        """ 
    1960 #         if self.shape_rbutton.GetValue(): 
    1961 #             ##fill the combobox with form factor list 
    1962 #             self.structurebox.SetSelection(0) 
    1963 #             self.structurebox.Disable() 
    1964 #             # self.formfactorbox.Clear() 
    1965 #             # self._populate_box(self.formfactorbox, 
    1966 #             #                    self.model_list_box["Shapes"]) 
    1967 #         if self.shape_indep_rbutton.GetValue(): 
    1968 #             ##fill the combobox with shape independent  factor list 
    1969 #             self.structurebox.SetSelection(0) 
    1970 #             self.structurebox.Disable() 
    1971 # #            self.formfactorbox.Clear() 
    1972 #             self._populate_box(self.formfactorbox, 
    1973 #                              self.model_list_box["Shape-Independent"]) 
    1974 #         if self.struct_rbutton.GetValue(): 
    1975 #             ##fill the combobox with structure factor list 
    1976 #             self.structurebox.SetSelection(0) 
    1977 #             self.structurebox.Disable() 
    1978 #  #           self.formfactorbox.Clear() 
    1979 #             self._populate_box(self.formfactorbox, 
    1980 #                                self.model_list_box["Structure Factors"]) 
    1981 #         if self.plugin_rbutton.GetValue(): 
    1982 #             ##fill the combobox with form factor list 
    1983 #             self.structurebox.Disable() 
    1984 #   #          self.formfactorbox.Clear() 
    1985 #             self._populate_box(self.formfactorbox, 
    1986 #                                self.model_list_box["Customized Models"]) 
     2003        custom_model = 'Customized Models' 
     2004        mod_cat = self.categorybox.GetStringSelection() 
     2005        self.structurebox.SetSelection(0) 
     2006        self.structurebox.Disable() 
     2007        self.formfactorbox.Clear() 
     2008        if mod_cat == None: 
     2009            return 
     2010        m_list = [] 
     2011        try: 
     2012            if mod_cat == custom_model: 
     2013                for model in self.model_list_box[mod_cat]: 
     2014                    str_m = str(model).split(".")[0] 
     2015                    #self.model_box.Append(str_m) 
     2016                    m_list.append(self.model_dict[str_m]) 
     2017            else: 
     2018                for (model, enabled) in self.master_category_dict[mod_cat]: 
     2019                    if enabled: 
     2020                        m_list.append(self.model_dict[model]) 
     2021                    else: 
     2022                        msg = "This model is diabled by Category Manager."  
     2023                        wx.PostEvent(self.parent.parent, 
     2024                                     StatusEvent(status=msg, info="error")) 
     2025        except: 
     2026            msg = "%s\n" % (sys.exc_value) 
     2027            wx.PostEvent(self.parent.parent, 
     2028                         StatusEvent(status=msg, info="error")) 
     2029        self._populate_box(self.formfactorbox, m_list) 
    19872030         
    19882031    def _show_combox(self, event=None): 
     
    20002043        self.Refresh() 
    20012044   
    2002     def _populate_box(self, combobox, model_list): 
     2045    def _populate_box(self, combobox, list): 
    20032046        """ 
    20042047        fill combox box with dict item 
     
    20082051        """ 
    20092052        mlist = [] 
    2010         for models in model_list: 
     2053        for models in list: 
    20112054            model = models() 
    20122055            name = model.__class__.__name__ 
     
    21392182        """ 
    21402183        ## reset dictionary containing reference to dispersion 
    2141         if self.model_name == None: 
    2142             return 
    2143  
    21442184        self._disp_obj_dict = {} 
    21452185        self.disp_cb_dict = {} 
    21462186        self.temp_multi_functional = False 
    2147  
    2148         form_factor = self.model_dict[self.model_name] 
     2187        f_id = self.formfactorbox.GetCurrentSelection() 
     2188        #For MAC 
     2189        form_factor = None 
     2190        if f_id >= 0: 
     2191            form_factor = self.formfactorbox.GetClientData(f_id) 
    21492192 
    21502193        if not form_factor in  self.model_list_box["multiplication"]: 
     
    21602203            self.text2.Enable() 
    21612204             
    2162  
    2163  
    21642205        if form_factor != None: 
    21652206            # set multifactor for Mutifunctional models 
     
    23392380        return flag 
    23402381     
    2341     def _check_value_enter(self, m_list, modified): 
    2342         """ 
    2343         :param m_list: model parameter and panel info 
    2344         :Note: each item of the m_list should be as follow: 
     2382    def _check_value_enter(self, list, modified): 
     2383        """ 
     2384        :param list: model parameter and panel info 
     2385        :Note: each item of the list should be as follow: 
    23452386            item=[check button state, parameter's name, 
    23462387                paramater's value, string="+/-", 
     
    23512392        """ 
    23522393        is_modified = modified 
    2353         if len(m_list) == 0: 
     2394        if len(list) == 0: 
    23542395            return is_modified 
    2355         for item in m_list: 
     2396        for item in list: 
    23562397            #skip angle parameters for 1D 
    23572398            if not self.enable2D: 
     
    29032944        if self.model == None: 
    29042945            name = 'FuncHelp' 
    2905  
     2946        else: 
     2947            name = self.formfactorbox.GetValue() 
    29062948        frame = HelpWindow(None, -1, pageToOpen=model_path) 
    2907         # If model name exists and model is not a custom model 
    2908         # if frame.rhelp.HasAnchor(name) and not self.plugin_rbutton.GetValue(): 
    2909         #     frame.Show(True) 
    2910         #     frame.rhelp.ScrollToAnchor(name) 
    2911         # else: 
    2912         #     if self.model != None: 
    2913         #         frame.Destroy() 
    2914         #         msg = 'Model description:\n' 
    2915         #         if str(self.model.description).rstrip().lstrip() == '': 
    2916         #             msg += "Sorry, no information is available for this model." 
    2917         #         else: 
    2918         #             msg += self.model.description + '\n' 
    2919         #         info = "Info" 
    2920         #         wx.MessageBox(msg, info) 
    2921         #     else: 
    2922         #         frame.Show(True) 
    2923      
     2949        if frame.rhelp.HasAnchor(name): 
     2950            frame.Show(True) 
     2951            frame.rhelp.ScrollToAnchor(name) 
     2952        else: 
     2953            if self.model != None: 
     2954                frame.Destroy() 
     2955                msg = 'Model description:\n' 
     2956                if str(self.model.description).rstrip().lstrip() == '': 
     2957                    msg += "Sorry, no information is available for this model." 
     2958                else: 
     2959                    msg += self.model.description + '\n' 
     2960                info = "Info" 
     2961                wx.MessageBox(msg, info) 
     2962            else: 
     2963                frame.Show(True) 
     2964 
     2965             
    29242966    def on_pd_help_clicked(self, event): 
    29252967        """ 
     
    32973339        return 
    32983340 
     3341 
     3342 
     3343 
    32993344    def _read_category_info(self): 
    33003345        """ 
     
    33073352        self.model_enabled_dict = defaultdict(bool) 
    33083353 
    3309         categorization_file = CategoryInstaller.get_user_file() 
    3310  
    3311  
    33123354        try: 
     3355            categorization_file = CategoryInstaller.get_user_file() 
     3356            if not os.path.isfile(categorization_file): 
     3357                categorization_file = CategoryInstaller.get_default_file() 
    33133358            cat_file = open(categorization_file, 'rb') 
    33143359                             
     
    33173362 
    33183363        except IOError: 
     3364            raise 
    33193365            print 'Problem reading in category file.' 
    33203366            print 'We even looked for it, made sure it was there.' 
     
    33303376        self.by_model_dict = defaultdict(list) 
    33313377        for category in self.master_category_dict: 
    3332             for (model,enabled) in self.master_category_dict[category]: 
     3378            for (model, enabled) in self.master_category_dict[category]: 
    33333379                self.by_model_dict[model].append(category) 
    33343380                self.model_enabled_dict[model] = enabled 
     
    33383384        fills out the category list box 
    33393385        """ 
     3386        uncat_str = 'Customized Models' 
    33403387        self._read_category_info() 
    33413388 
    3342         self.category_box.Clear() 
     3389        self.categorybox.Clear() 
    33433390        cat_list = sorted(self.master_category_dict.keys()) 
    3344         cat_list.append('Customized') 
    3345  
     3391        if not uncat_str in cat_list: 
     3392            cat_list.append(uncat_str) 
     3393         
    33463394        for category in cat_list: 
    33473395            if category != '': 
    3348                 self.category_box.Append(category) 
    3349  
    3350         if self.category_box.GetSelection() == wx.NOT_FOUND: 
    3351             self.category_box.SetSelection(0) 
     3396                self.categorybox.Append(category) 
     3397 
     3398        if self.categorybox.GetSelection() == wx.NOT_FOUND: 
     3399            self.categorybox.SetSelection(0) 
    33523400        else: 
    3353             self.category_box.SetSelection( \ 
    3354                 self.category_box.GetSelection()) 
    3355  
    3356         self._on_change_cat(None) 
     3401            self.categorybox.SetSelection( \ 
     3402                self.categorybox.GetSelection()) 
     3403 
     3404        #self._on_change_cat(None) 
    33573405 
    33583406 
     
    33623410        """ 
    33633411        self.model_name = None 
    3364         category = self.category_box.GetStringSelection() 
     3412        category = self.categorybox.GetStringSelection() 
    33653413        if category == None: 
    33663414            return 
    33673415        self.model_box.Clear() 
    33683416 
    3369         if category == 'Customized': 
    3370             for model in self.model_list_box["Customized Models"]: 
     3417        if category == 'Customized Models': 
     3418            for model in self.model_list_box[category]: 
    33713419                str_m = str(model).split(".")[0] 
    33723420                self.model_box.Append(str_m) 
     
    33793427                    self.model_box.Append(model) 
    33803428 
     3429 
     3430 
     3431 
    33813432    def _fill_model_sizer(self, sizer): 
    33823433        """ 
    33833434        fill sizer containing model info 
    33843435        """ 
    3385  
    33863436        ##Add model function Details button in fitpanel. 
    33873437        ##The following 3 lines are for Mac. Let JHC know before modifying... 
     
    33913441        self.mbox_description = wx.StaticBox(self, -1, str(title)) 
    33923442        boxsizer1 = wx.StaticBoxSizer(self.mbox_description, wx.VERTICAL) 
     3443        sizer_cat = wx.BoxSizer(wx.HORIZONTAL) 
    33933444        self.mbox_description.SetForegroundColour(wx.RED) 
    33943445        id = wx.NewId() 
     
    34013452        hint = "toggle view of model from 1D to 2D  or 2D to 1D" 
    34023453        self.model_view.SetToolTipString(hint) 
    3403  
    3404          
    3405         # ILL mod starts here - Aug 2012 
    3406  
    3407  
    3408         cat_text = wx.StaticText(self, -1, 'Category') 
    3409         mod_text = wx.StaticText(self, -1, 'Model') 
    3410          
    3411         id = wx.NewId() 
    3412         self.category_box = wx.ListBox(self, size=(150, 100)) 
    3413         self.category_box.Bind(wx.EVT_LISTBOX, self._on_change_cat) 
    3414         self.model_box = wx.ListBox(self, -1, size=(150, 100)) 
    3415         self.model_box.Bind(wx.EVT_LISTBOX, self._on_select_model) 
    3416  
    3417         sizer_radiobutton = wx.GridSizer(2, 3, 5, 5) 
    3418         hbox1 = wx.BoxSizer(wx.HORIZONTAL) 
    3419         hbox2 = wx.BoxSizer(wx.HORIZONTAL) 
    3420         vbox1 = wx.BoxSizer(wx.VERTICAL) 
    3421         vbox2 = wx.BoxSizer(wx.VERTICAL) 
    3422         vbox3 = wx.BoxSizer(wx.VERTICAL) 
    3423  
    3424         vbox1.Add(cat_text, border = 5, flag = wx.EXPAND | wx.ALL) 
    3425         vbox2.Add(mod_text, border=5, flag = wx.EXPAND | wx.ALL) 
    3426         vbox3.Add(self.model_view, flag= wx.ALL | wx.ALIGN_LEFT 
    3427                   , border =5) 
    3428         vbox1.Add(self.category_box, border = 5, flag = wx.EXPAND | wx.ALL) 
    3429         vbox2.Add(self.model_box, flag = wx.EXPAND | wx.ALL, border = 5) 
    3430         vbox3.Add(self.model_help, border = 5,  
    3431                   flag = wx.LEFT | wx.ALIGN_LEFT ) 
    3432  
    3433         hbox1.Add(vbox1, border = 5, flag = wx.EXPAND | wx.ALL) 
    3434         hbox1.Add(vbox2, border = 5, flag = wx.EXPAND | wx.ALL) 
    3435         hbox1.Add(vbox3, border = 5, flag = wx.EXPAND | wx.ALL) 
    3436  
     3454         
     3455        cat_set_box = wx.StaticBox(self, -1, 'Category') 
     3456        sizer_cat_box = wx.StaticBoxSizer(cat_set_box, wx.HORIZONTAL) 
     3457        sizer_cat_box.SetMinSize((200, 50)) 
     3458        self.categorybox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
     3459        self._populate_listbox() 
     3460        wx.EVT_COMBOBOX(self.categorybox, -1, self._show_combox) 
     3461        #self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', 
     3462        #                                     style=wx.RB_GROUP) 
     3463        #self.shape_indep_rbutton = wx.RadioButton(self, -1, 
     3464        #                                          "Shape-Independent") 
     3465        #self.struct_rbutton = wx.RadioButton(self, -1, "Structure Factor ") 
     3466        #self.plugin_rbutton = wx.RadioButton(self, -1, "Uncategorized") 
     3467                 
     3468        #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3469        #                   id=self.shape_rbutton.GetId()) 
     3470        #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3471        #                    id=self.shape_indep_rbutton.GetId()) 
     3472        #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3473        #                    id=self.struct_rbutton.GetId()) 
     3474        #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3475        #                    id=self.plugin_rbutton.GetId()) 
     3476        #MAC needs SetValue 
     3477        sizer_cat_box.Add(self.categorybox, 1, wx.LEFT|wx.RIGHT|wx.EXPAND, 2.5) 
     3478        #self.shape_rbutton.SetValue(True) 
     3479       
     3480        sizer_radiobutton = wx.GridSizer(2, 2, 5, 5) 
     3481 
     3482        #sizer_radiobutton.Add(self.shape_rbutton) 
     3483        #sizer_radiobutton.Add(self.shape_indep_rbutton) 
     3484        sizer_radiobutton.Add((5,5)) 
     3485        sizer_radiobutton.Add(self.model_view, 1, wx.RIGHT, 15) 
     3486        #sizer_radiobutton.Add(self.plugin_rbutton) 
     3487        #sizer_radiobutton.Add(self.struct_rbutton) 
     3488        sizer_radiobutton.Add((5,5)) 
     3489        sizer_radiobutton.Add(self.model_help, 1, wx.RIGHT, 15) 
     3490        sizer_cat.Add(sizer_cat_box, 1, wx.LEFT, 2.5) 
     3491        sizer_cat.Add(sizer_radiobutton) 
    34373492        sizer_selection = wx.BoxSizer(wx.HORIZONTAL) 
    34383493        mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL) 
    34393494         
    34403495        self.text1 = wx.StaticText(self, -1, "") 
    3441         self.text2 = wx.StaticText(self, -1, "P(Q)*S(Q) ") 
     3496        self.text2 = wx.StaticText(self, -1, "P(Q)*S(Q)") 
    34423497        self.mutifactor_text = wx.StaticText(self, -1, "No. of Shells: ") 
    34433498        self.mutifactor_text1 = wx.StaticText(self, -1, "") 
     
    34453500        self.show_sld_button.Bind(wx.EVT_BUTTON, self._on_show_sld) 
    34463501 
     3502        self.formfactorbox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
     3503        if self.model != None: 
     3504            self.formfactorbox.SetValue(self.model.name) 
    34473505        self.structurebox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
    34483506        self.multifactorbox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
    34493507        self.initialize_combox() 
     3508        wx.EVT_COMBOBOX(self.formfactorbox, -1, self._on_select_model) 
    34503509 
    34513510        wx.EVT_COMBOBOX(self.structurebox, -1, self._on_select_model) 
    34523511        wx.EVT_COMBOBOX(self.multifactorbox, -1, self._on_select_model) 
    34533512        ## check model type to show sizer 
    3454  
    3455         hbox2.Add(self.text2, border = 5, flag = wx.EXPAND | wx.ALL ) 
    3456         hbox2.Add(self.structurebox, border = 5, flag = wx.EXPAND | \ 
    3457                       wx.ALL ) 
    3458          
    34593513        if self.model != None: 
    3460             self._set_model_sizer_selection(self.model) 
    3461          
    3462         self._populate_listbox() 
    3463          
     3514            print "_set_model_sizer_selection: disabled." 
     3515            #self._set_model_sizer_selection(self.model) 
     3516         
     3517        sizer_selection.Add(self.text1) 
     3518        sizer_selection.Add((10, 5)) 
     3519        sizer_selection.Add(self.formfactorbox) 
     3520        sizer_selection.Add((5, 5)) 
     3521        sizer_selection.Add(self.text2) 
     3522        sizer_selection.Add((5, 5)) 
     3523        sizer_selection.Add(self.structurebox) 
    34643524        
    3465         mutifactor_selection.Add((10, 5)) 
     3525        mutifactor_selection.Add((13, 5)) 
    34663526        mutifactor_selection.Add(self.mutifactor_text) 
    34673527        mutifactor_selection.Add(self.multifactorbox) 
     
    34713531        mutifactor_selection.Add(self.show_sld_button) 
    34723532 
    3473         boxsizer1.Add(hbox1, flag = wx.EXPAND) 
    3474         boxsizer1.Add(hbox2, flag = wx.EXPAND) 
     3533        boxsizer1.Add(sizer_cat) 
    34753534        boxsizer1.Add((10, 10)) 
    3476  
     3535        boxsizer1.Add(sizer_selection) 
     3536        boxsizer1.Add((10, 10)) 
    34773537        boxsizer1.Add(mutifactor_selection) 
    34783538         
  • fittingview/src/sans/perspectives/fitting/fitpage.py

    rdf7a7e3 rea5fa58  
    3636    """ 
    3737 
    38     def __init__(self, parent, m_dict, color='rand'): 
     38    def __init__(self, parent, color='rand'): 
    3939        """ 
    4040        Initialization of the Panel 
    4141        """ 
    4242        BasicPage.__init__(self, parent, color=color) 
    43         self.populate_box(m_dict) 
    44  
     43         
    4544        ## draw sizer 
    4645        self._fill_data_sizer() 
     
    6867        #create a default data for an empty panel 
    6968        self.create_default_data() 
    70  
     69     
    7170    def enable_fit_button(self): 
    7271        """ 
     
    10881087        call back for model selection 
    10891088        """ 
    1090         # if we're just clearing the box then do nothing 
    1091         if self.model_box.GetCount() == 0 or \ 
    1092                 self.model_box.GetStringSelection() == '': 
    1093             return 
    1094  
    1095  
    10961089        self.Show(False) 
    10971090        copy_flag = False 
    10981091        is_poly_enabled = None 
    10991092        if event != None: 
    1100             # if (event.GetEventObject() == self.formfactorbox\ 
    1101             #             and self.structurebox.GetLabel() != 'None')\ 
    1102             #             or event.GetEventObject() == self.structurebox\ 
    1103             #             or event.GetEventObject() == self.multifactorbox: 
    1104             copy_flag = self.get_copy_params() 
    1105             is_poly_enabled = self.enable_disp.GetValue() 
    1106  
    1107         self.model_name = self.model_box.GetStringSelection() 
     1093            if (event.GetEventObject() == self.formfactorbox\ 
     1094                        and self.structurebox.GetLabel() != 'None')\ 
     1095                        or event.GetEventObject() == self.structurebox\ 
     1096                        or event.GetEventObject() == self.multifactorbox: 
     1097                copy_flag = self.get_copy_params() 
     1098                is_poly_enabled = self.enable_disp.GetValue() 
     1099 
    11081100        self._on_select_model_helper() 
    11091101        self.set_model_param_sizer(self.model) 
     
    11241116     
    11251117        self.state.structurecombobox = self.structurebox.GetLabel() 
    1126         self.state.formfactorcombobox = self.model_box.GetStringSelection() 
     1118        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    11271119        self.enable_fit_button() 
    11281120        if self.model != None: 
     
    11831175            wx.PostEvent(self.parent, new_event) 
    11841176            #update list of plugins if new plugin is available 
    1185             # if self.plugin_rbutton.GetValue(): 
    1186             #     temp = self.parent.update_model_list() 
    1187             #     if temp: 
    1188             #         self.model_list_box = temp 
    1189                     # current_val = self.formfactorbox.GetLabel() 
    1190                     # pos = self.formfactorbox.GetSelection() 
    1191                     # self._show_combox_helper() 
    1192                     # self.formfactorbox.SetSelection(pos) 
    1193                     # self.formfactorbox.SetValue(current_val) 
     1177            custom_model = 'Customized Models' 
     1178            mod_cat = self.categorybox.GetStringSelection() 
     1179            if mod_cat == custom_model: 
     1180                temp = self.parent.update_model_list() 
     1181                if temp: 
     1182                    self.model_list_box = temp 
     1183                    current_val = self.formfactorbox.GetLabel() 
     1184                    pos = self.formfactorbox.GetSelection() 
     1185                    self._show_combox_helper() 
     1186                    self.formfactorbox.SetSelection(pos) 
     1187                    self.formfactorbox.SetValue(current_val) 
    11941188            # when select a model only from guictr/button 
    11951189            if is_poly_enabled != None: 
     
    18221816            self.dI_idata.Enable(True) 
    18231817               
    1824 #            self.formfactorbox.Enable() 
     1818            self.formfactorbox.Enable() 
    18251819            self.structurebox.Enable() 
    18261820            data_name = self.data.name 
  • fittingview/src/sans/perspectives/fitting/fitpanel.py

    rdf7a7e3 rea5fa58  
    4848        self.menu_mng = models.ModelManager() 
    4949        self.model_list_box = self.menu_mng.get_model_list() 
     50        #pageClosedEvent = nb.EVT_FLATNOTEBOOK_PAGE_CLOSING 
    5051        self.model_dictionary = self.menu_mng.get_model_dictionary() 
    51         #pageClosedEvent = nb.EVT_FLATNOTEBOOK_PAGE_CLOSING 
    5252        self.pageClosedEvent = wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE 
    5353         
     
    305305                page.set_manager(self._manager) 
    306306 
    307     def set_model_list(self, m_dict): 
     307    def set_model_list(self, dict): 
    308308        """ 
    309309        copy a dictionary of model into its own dictionary 
     
    312312        as value 
    313313        """ 
    314         self.model_list_box = m_dict 
     314        self.model_list_box = dict 
    315315         
    316316    def set_model_dict(self, m_dict): 
     
    368368        else: 
    369369        """ 
    370  
    371370        from fitpage import FitPage 
    372         panel = FitPage(parent=self, m_dict = self.model_list_box) 
    373  
     371        panel = FitPage(parent=self) 
    374372        if self.batch_on: 
    375373            self.batch_page_index += 1 
     
    384382        panel._set_save_flag(not panel.batch_on) 
    385383        panel.set_model_dictionary(self.model_dictionary) 
     384        panel.populate_box(dict=self.model_list_box) 
     385        panel.formfactor_combo_init() 
    386386        panel.set_manager(self._manager) 
    387387        panel.window_caption = caption 
  • fittingview/src/sans/perspectives/fitting/fitting.py

    rdf7a7e3 rea5fa58  
    321321        Update custom model list in the fitpage combo box 
    322322        """ 
     323        custom_model = 'Customized Models' 
    323324        try: 
    324325            # Update edit menus 
     
    332333                        page.model_list_box = temp 
    333334                        current_val = page.formfactorbox.GetLabel() 
    334                         if page.plugin_rbutton.GetValue(): 
     335                        #if page.plugin_rbutton.GetValue(): 
     336                        mod_cat = page.categorybox.GetStringSelection() 
     337                        if mod_cat == custom_model: 
    335338                            #pos = page.formfactorbox.GetSelection() 
    336339                            page._show_combox_helper() 
  • fittingview/src/sans/perspectives/fitting/models.py

    rdf7a7e3 rea5fa58  
    679679        self.stored_plugins = self.findModels() 
    680680        self.plugins = self.stored_plugins.values() 
    681  
     681        for name, plug in self.stored_plugins.iteritems(): 
     682            self.model_dictionary[name] = plug 
     683             
    682684        self._get_multifunc_models() 
    683685        
     
    710712                    self.stored_plugins[name] = plug 
    711713                    self.plugins.append(plug) 
     714                    self.model_dictionary[name] = plug 
    712715            self.model_combobox.set_list("Customized Models", self.plugins) 
    713716            return self.model_combobox.get_list() 
     
    725728                if name == stored_name: 
    726729                    del self.stored_plugins[name] 
     730                    del self.model_dictionary[name] 
    727731                    break 
    728732            self.stored_plugins[name] = plug 
    729733            self.plugins.append(plug) 
     734            self.model_dictionary[name] = plug 
    730735 
    731736        self.model_combobox.reset_list("Customized Models", self.plugins) 
  • fittingview/src/sans/perspectives/fitting/pagestate.py

    r7c720e9 rea5fa58  
    4444                      ["qmax", "qmax", "float"], 
    4545                      ["npts", "npts", "float"], 
    46                       ["shape_rbutton", "shape_rbutton", "bool"], 
    47                       ["shape_indep_rbutton", "shape_indep_rbutton", "bool"], 
    48                       ["plugin_rbutton", "plugin_rbutton", "bool"], 
    49                       ["struct_rbutton", "struct_rbutton", "bool"], 
     46                      #["shape_rbutton", "shape_rbutton", "bool"], 
     47                      #["shape_indep_rbutton", "shape_indep_rbutton", "bool"], 
     48                      #["plugin_rbutton", "plugin_rbutton", "bool"], 
     49                      #["struct_rbutton", "struct_rbutton", "bool"], 
     50                      ["categorycombobox", "categorycombobox", "string"], 
    5051                      ["formfactorcombobox", "formfactorcombobox", "string"], 
    5152                      ["structurecombobox", "structurecombobox", "string"], 
     
    224225        ## save selection of combobox 
    225226        self.formfactorcombobox = None 
     227        self.categorycombobox = None 
    226228        self.structurecombobox = None 
    227229 
    228230        ## radio box to select type of model 
    229         self.shape_rbutton = False 
    230         self.shape_indep_rbutton = False 
    231         self.struct_rbutton = False 
    232         self.plugin_rbutton = False 
     231        #self.shape_rbutton = False 
     232        #self.shape_indep_rbutton = False 
     233        #self.struct_rbutton = False 
     234        #self.plugin_rbutton = False 
    233235        ## the indice of the current selection 
    234236        self.disp_box = 0 
     
    281283        obj.engine_type = copy.deepcopy(self.engine_type) 
    282284         
     285        obj.categorycombobox = self.categorycombobox 
    283286        obj.formfactorcombobox = self.formfactorcombobox 
    284287        obj.structurecombobox = self.structurecombobox 
    285288         
    286         obj.shape_rbutton = self.shape_rbutton 
    287         obj.shape_indep_rbutton = self.shape_indep_rbutton 
    288         obj.struct_rbutton = self.struct_rbutton 
    289         obj.plugin_rbutton = self.plugin_rbutton 
     289        #obj.shape_rbutton = self.shape_rbutton 
     290        #obj.shape_indep_rbutton = self.shape_indep_rbutton 
     291        #obj.struct_rbutton = self.struct_rbutton 
     292        #obj.plugin_rbutton = self.plugin_rbutton 
    290293         
    291294        obj.manager = self.manager 
     
    380383        else: 
    381384            rep += "model name : None\n" 
    382         rep += "model type (form factor) selected: %s\n" % self.shape_rbutton  
     385        #rep += "model type (form factor) selected: %s\n" % self.shape_rbutton  
    383386        rep += "multi_factor : %s\n" % str(self.multi_factor) 
    384         rep += "model type (shape independent) selected: %s\n" % self.shape_indep_rbutton 
    385         rep += "model type (structure factor) selected: %s\n" % self.struct_rbutton 
    386         rep += "model type (plug-in ) selected: %s\n" % self.plugin_rbutton 
     387        rep += "model type (Category) selected: %s\n" % self.categorycombobox 
     388        #rep += "model type (shape independent) selected: %s\n" % self.shape_indep_rbutton 
     389        #rep += "model type (structure factor) selected: %s\n" % self.struct_rbutton 
     390        #rep += "model type (plug-in ) selected: %s\n" % self.plugin_rbutton 
    387391        rep += "data : %s\n" % str(self.data) 
    388392        rep += "Plotting Range: min: %s, max: %s, steps: %s\n" % (str(self.qmin), 
  • sansguiframe/src/sans/guiframe/CategoryInstaller.py

    rdf7a7e3 rea5fa58  
    66 
    77@author kieranrcampbell@gmail.com 
    8  
     8@modified by NIST/MD sanview team 
    99""" 
    1010 
     
    1414from collections import defaultdict 
    1515 
    16 user_file = 'serialized_cat.p' 
     16USER_FILE = 'serialized_cat.p' 
    1717 
    1818class CategoryInstaller: 
     
    4747        returns the dir where default_cat.p should be 
    4848        """ 
    49         import sans.dataloader.readers 
    50         return sans.dataloader.readers.get_data_path() 
     49        from sans import sansview as sasview 
     50        app_path = os.path.dirname(sasview.__file__) 
     51        return app_path 
    5152 
    5253    @staticmethod 
     
    5556        returns the users sansview config dir 
    5657        """ 
    57         return os.path.join(os.path.expanduser("~"), 
    58                             ".sansview") 
     58        return os.path.join(os.path.expanduser("~"), ".sasview") 
    5959 
    6060    @staticmethod 
     
    9595    def get_user_file(): 
    9696        """ 
    97         returns the user data file, eg .sansview/serialized_cat.p 
     97        returns the user data file, eg .sasview/serialized_cat.p 
    9898        """ 
    9999        return os.path.join(CategoryInstaller._get_home_dir(), 
    100                             user_file) 
     100                            USER_FILE) 
    101101 
    102102    @staticmethod 
     
    107107        """ 
    108108        return os.path.join(\ 
    109             CategoryInstaller._get_default_cat_p_dir,  
    110             "default_categories.p") 
     109            CategoryInstaller._get_default_cat_p_dir(), "default_categories.p") 
    111110         
    112111    @staticmethod 
     
    128127            serialized_file = CategoryInstaller.get_user_file() 
    129128        else: 
    130             serialized_file = os.path.join(homedir, user_file) 
     129            serialized_file = os.path.join(homedir, USER_FILE) 
    131130 
    132131        if os.path.exists(serialized_file): 
  • sansguiframe/src/sans/guiframe/CategoryManager.py

    rdf7a7e3 rea5fa58  
    1616import wx 
    1717import sys 
     18import os 
    1819from wx.lib.mixins.listctrl import CheckListCtrlMixin, ListCtrlAutoWidthMixin 
    1920from collections import defaultdict 
     
    290291        cat_file = open(CategoryInstaller.get_user_file(), 'wb') 
    291292 
    292         pickle.dump( self.master_category_dict, 
    293                      cat_file ) 
     293        pickle.dump( self.master_category_dict, cat_file ) 
    294294 
    295295    
     
    299299        """ 
    300300        try: 
    301             cat_file = open(CategoryInstaller.get_user_file(), 
    302                             'rb') 
    303             self.master_category_dict = pickle.load(cat_file) 
    304      
     301                file = CategoryInstaller.get_user_file() 
     302                if os.path.isfile(file): 
     303                    cat_file = open(file, 'rb') 
     304                    self.master_category_dict = pickle.load(cat_file) 
     305                else: 
     306                        cat_file = open(CategoryInstaller.get_default_file(), 'rb') 
     307                        self.master_category_dict = pickle.load(cat_file) 
    305308        except IOError: 
    306309            print 'Problem reading in category file. Please review' 
     
    421424        vbox.Add(self.ok_button, flag = wx.ALL | wx.ALIGN_RIGHT,  
    422425                 border = 10) 
    423  
    424  
    425         self.current_categories.SetSelection(0) 
     426         
     427        if self.current_categories.GetCount() > 0: 
     428                self.current_categories.SetSelection(0) 
    426429        self.new_text.Disable() 
    427430        self.SetSizer(vbox) 
     
    494497        return ret 
    495498 
    496  
    497  
    498  
    499  
    500499if __name__ == '__main__': 
    501500         
     
    510509        app.MainLoop() 
    511510 
    512  
  • sansguiframe/src/sans/guiframe/__init__.py

    rdf7a7e3 rea5fa58  
    7070    for f in findall(path): 
    7171        data_files.append(('media/guiframe_media', [f])) 
    72     path = get_media_path(media="catdata") 
    73     for f in findall(path): 
    74         data_files.append(('.', [f])) 
    7572 
    7673    return data_files 
  • sansguiframe/src/sans/guiframe/customdir.py

    r94d6752 rea5fa58  
    33import os.path 
    44import shutil 
     5from sans.guiframe.CategoryInstaller import CategoryInstaller 
    56 
    67CONF_DIR = 'config'  
    78APPLICATION_NAME = 'sasview' 
     9 
     10def _find_usersasview_dir(): 
     11    """ 
     12    Find and return user/.sasview dir 
     13    """ 
     14    dir = os.path.join(os.path.expanduser("~"),  
     15                       ("." + APPLICATION_NAME)) 
     16    return dir 
    817 
    918def _find_customconf_dir(): 
     
    1221    The plugin directory is located in the user's home directory. 
    1322    """ 
    14     dir = os.path.join(os.path.expanduser("~"),  
    15                        ("." + APPLICATION_NAME), CONF_DIR) 
     23    u_dir = _find_usersasview_dir() 
     24    dir = os.path.join(u_dir, CONF_DIR) 
    1625     
    1726    return dir 
     
    1928def _setup_conf_dir(path): 
    2029    """ 
    21     Setup the custom config dir 
     30    Setup the custom config dir and cat file 
    2231    """ 
    2332    dir = _find_customconf_dir() 
     
    2635        os.makedirs(dir) 
    2736    file = os.path.join(dir, "custom_config.py") 
     37    u_dir = _find_usersasview_dir() 
     38    cat_file = os.path.join(u_dir, "serialized_cat.p") 
     39    # Place example user models as needed 
     40    if not os.path.isfile(cat_file): 
     41        try: 
     42            default_cat_file = CategoryInstaller.get_default_file() 
     43            if os.path.isfile(default_cat_file): 
     44                shutil.copyfile(default_cat_file, cat_file) 
     45            else: 
     46                print "Unable to find/copy default cat file" 
     47        except: 
     48            print "Unable to copy default cat file to the user dir." 
     49 
    2850    # Place example user models as needed 
    2951    try: 
  • sansmodels/default_categories.p

    rdf7a7e3 rea5fa58  
    66p2 
    77tRp3 
    8 S'Uncategorized' 
    9 p4 
    10 (lp5 
    11 (S'PearlNecklaceModel' 
    12 p6 
    13 I01 
    14 tp7 
    15 a(S'TwoPowerLawModel' 
    16 p8 
    17 I01 
    18 tp9 
    19 a(S'GelFitModel' 
    20 p10 
    21 I01 
    22 tp11 
    23 a(S'SquareWellStructure' 
    24 p12 
    25 I01 
    26 tp13 
    27 a(S'DABModel' 
    28 p14 
    29 I01 
    30 tp15 
    31 a(S'PowerLawAbsModel' 
    32 p16 
    33 I01 
    34 tp17 
    35 a(S'PorodModel' 
    36 p18 
    37 I01 
    38 tp19 
    39 a(S'GuinierModel' 
    40 p20 
    41 I01 
    42 tp21 
    43 a(S'CoreMultiShellModel' 
    44 p22 
    45 I01 
    46 tp23 
    47 a(S'FCCrystalModel' 
    48 p24 
    49 I01 
    50 tp25 
    51 a(S'ParallelepipedModel' 
    52 p26 
    53 I01 
    54 tp27 
    55 a(S'LineModel' 
    56 p28 
    57 I01 
    58 tp29 
    59 a(S'BEPolyelectrolyte' 
    60 p30 
    61 I01 
    62 tp31 
    63 a(S'SCCrystalModel' 
    64 p32 
    65 I01 
    66 tp33 
    67 a(S'FuzzySphereModel' 
    68 p34 
    69 I01 
    70 tp35 
    71 a(S'FlexCylEllipXModel' 
    72 p36 
    73 I01 
    74 tp37 
    75 a(S'UnifiedPowerRgModel' 
    76 p38 
    77 I01 
    78 tp39 
    79 a(S'SphericalSLDModel' 
    80 p40 
    81 I01 
    82 tp41 
    83 a(S'EllipticalCylinderModel' 
    84 p42 
    85 I01 
    86 tp43 
    87 a(S'MassSurfaceFractal' 
    88 p44 
    89 I01 
    90 tp45 
    91 a(S'GuinierPorodModel' 
    92 p46 
    93 I01 
    94 tp47 
    95 a(S'Core2ndMomentModel' 
    96 p48 
    97 I01 
    98 tp49 
    99 a(S'RPA10Model' 
    100 p50 
    101 I01 
    102 tp51 
    103 a(S'TwoLorentzianModel' 
    104 p52 
    105 I01 
    106 tp53 
    107 a(S'DebyeModel' 
    108 p54 
    109 I01 
    110 tp55 
    111 a(S'CSParallelepipedModel' 
    112 p56 
    113 I01 
    114 tp57 
    115 a(S'PolymerExclVolume' 
    116 p58 
    117 I01 
    118 tp59 
    119 a(S'OnionExpShellModel' 
    120 p60 
    121 I01 
    122 tp61 
    123 a(S'MultiShellModel' 
    124 p62 
    125 I01 
    126 tp63 
    127 a(S'LamellarPCrystalModel' 
    128 p64 
    129 I01 
    130 tp65 
    131 a(S'RaspBerryModel' 
    132 p66 
    133 I01 
    134 tp67 
    135 a(S'CoreShellEllipsoidModel' 
    136 p68 
    137 I01 
    138 tp69 
    139 a(S'MassFractalModel' 
    140 p70 
    141 I01 
    142 tp71 
    143 a(S'CappedCylinderModel' 
    144 p72 
    145 I01 
    146 tp73 
    147 a(S'TeubnerStreyModel' 
    148 p74 
    149 I01 
    150 tp75 
    151 a(S'BCCrystalModel' 
    152 p76 
    153 I01 
    154 tp77 
    155 a(S'Poly_GaussCoil' 
    156 p78 
    157 I01 
    158 tp79 
    159 a(S'HayterMSAStructure' 
    160 p80 
    161 I01 
    162 tp81 
    163 a(S'CorrLengthModel' 
    164 p82 
    165 I01 
    166 tp83 
    167 a(S'StackedDisksModel' 
    168 p84 
    169 I01 
    170 tp85 
    171 a(S'LamellarPSHGModel' 
    172 p86 
    173 I01 
    174 tp87 
    175 a(S'StarPolymer' 
    176 p88 
    177 I01 
    178 tp89 
    179 a(S'FractalModel' 
    180 p90 
    181 I01 
    182 tp91 
    183 a(S'CoreShellBicelleModel' 
    184 p92 
    185 I01 
    186 tp93 
    187 a(S'ReflectivityModel' 
    188 p94 
    189 I01 
    190 tp95 
    191 a(S'PeakLorentzModel' 
    192 p96 
    193 I01 
    194 tp97 
    195 a(S'HardsphereStructure' 
    196 p98 
    197 I01 
    198 tp99 
    199 a(S'LamellarPSModel' 
    200 p100 
    201 I01 
    202 tp101 
    203 a(S'EllipsoidModel' 
    204 p102 
    205 I01 
    206 tp103 
    207 a(S'BroadPeakModel' 
    208 p104 
    209 I01 
    210 tp105 
    211 a(S'SphereModel' 
    212 p106 
    213 I01 
    214 tp107 
    215 a(S'VesicleModel' 
    216 p108 
    217 I01 
    218 tp109 
    219 a(S'ReflectivityIIModel' 
    220 p110 
    221 I01 
    222 tp111 
    223 a(S'TriaxialEllipsoidModel' 
    224 p112 
    225 I01 
    226 tp113 
    227 a(S'LamellarModel' 
    228 p114 
    229 I01 
    230 tp115 
    231 a(S'PeakGaussModel' 
    232 p116 
    233 I01 
    234 tp117 
    235 a(S'FractalCoreShellModel' 
    236 p118 
    237 I01 
    238 tp119 
    239 a(S'CylinderModel' 
    240 p120 
    241 I01 
    242 tp121 
    243 a(S'BarBellModel' 
    244 p122 
    245 I01 
    246 tp123 
    247 a(S'CoreShellCylinderModel' 
    248 p124 
    249 I01 
    250 tp125 
    251 a(S'BinaryHSModel' 
    252 p126 
    253 I01 
    254 tp127 
    255 a(S'FlexibleCylinderModel' 
    256 p128 
    257 I01 
    258 tp129 
    259 a(S'HollowCylinderModel' 
    260 p130 
    261 I01 
    262 tp131 
    263 a(S'LamellarFFHGModel' 
    264 p132 
    265 I01 
    266 tp133 
    267 a(S'SurfaceFractalModel' 
    268 p134 
    269 I01 
    270 tp135 
    271 a(S'LinearPearlsModel' 
    272 p136 
    273 I01 
    274 tp137 
    275 a(S'FractalO_Z' 
    276 p138 
    277 I01 
    278 tp139 
    279 a(S'StickyHSStructure' 
    280 p140 
    281 I01 
    282 tp141 
    283 a(S'GaussLorentzGelModel' 
    284 p142 
    285 I01 
    286 tp143 
    287 a(S'CoreShellModel' 
    288 p144 
    289 I01 
    290 tp145 
    291 a(S'LorentzModel' 
    292 p146 
    293 I01 
    294 tp147 
    295 as. 
     8. 
  • sansview/default_categories.p

    rcb9f50d6 rea5fa58  
    66p2 
    77tRp3 
    8 S'Spherical Shapes' 
     8S'Shapes' 
    99p4 
    1010(lp5 
     
    1313I01 
    1414tp7 
    15 a(S'MassFractalModel' 
     15a(S'CoreShellCylinderModel' 
    1616p8 
    1717I01 
     
    2121I01 
    2222tp11 
     23a(S'LamellarFFHGModel' 
     24p12 
     25I01 
     26tp13 
     27a(S'FCCrystalModel' 
     28p14 
     29I01 
     30tp15 
    2331a(S'FuzzySphereModel' 
    24 p12 
    25 I01 
    26 tp13 
     32p16 
     33I01 
     34tp17 
     35a(S'FlexCylEllipXModel' 
     36p18 
     37I01 
     38tp19 
    2739a(S'BCCrystalModel' 
    28 p14 
    29 I01 
    30 tp15 
     40p20 
     41I01 
     42tp21 
     43a(S'EllipticalCylinderModel' 
     44p22 
     45I01 
     46tp23 
     47a(S'CSParallelepipedModel' 
     48p24 
     49I01 
     50tp25 
     51a(S'OnionExpShellModel' 
     52p26 
     53I01 
     54tp27 
     55a(S'VesicleModel' 
     56p28 
     57I01 
     58tp29 
     59a(S'MultiShellModel' 
     60p30 
     61I01 
     62tp31 
     63a(S'LamellarPCrystalModel' 
     64p32 
     65I01 
     66tp33 
     67a(S'RaspBerryModel' 
     68p34 
     69I01 
     70tp35 
     71a(S'CoreShellEllipsoidModel' 
     72p36 
     73I01 
     74tp37 
     75a(S'CappedCylinderModel' 
     76p38 
     77I01 
     78tp39 
     79a(S'SphericalSLDModel' 
     80p40 
     81I01 
     82tp41 
     83a(S'StackedDisksModel' 
     84p42 
     85I01 
     86tp43 
     87a(S'LamellarPSHGModel' 
     88p44 
     89I01 
     90tp45 
     91a(S'CoreShellBicelleModel' 
     92p46 
     93I01 
     94tp47 
     95a(S'LamellarPSModel' 
     96p48 
     97I01 
     98tp49 
     99a(S'EllipsoidModel' 
     100p50 
     101I01 
     102tp51 
     103a(S'SphereModel' 
     104p52 
     105I01 
     106tp53 
     107a(S'ParallelepipedModel' 
     108p54 
     109I01 
     110tp55 
     111a(S'TriaxialEllipsoidModel' 
     112p56 
     113I01 
     114tp57 
     115a(S'LamellarModel' 
     116p58 
     117I01 
     118tp59 
     119a(S'CylinderModel' 
     120p60 
     121I01 
     122tp61 
     123a(S'BarBellModel' 
     124p62 
     125I01 
     126tp63 
     127a(S'BinaryHSModel' 
     128p64 
     129I01 
     130tp65 
     131a(S'FlexibleCylinderModel' 
     132p66 
     133I01 
     134tp67 
     135a(S'HollowCylinderModel' 
     136p68 
     137I01 
     138tp69 
    31139a(S'SCCrystalModel' 
    32 p16 
    33 I01 
    34 tp17 
     140p70 
     141I01 
     142tp71 
     143a(S'LinearPearlsModel' 
     144p72 
     145I01 
     146tp73 
     147a(S'CoreShellModel' 
     148p74 
     149I01 
     150tp75 
     151asS'Structure Factor' 
     152p76 
     153(lp77 
     154(S'SquareWellStructure' 
     155p78 
     156I01 
     157tp79 
     158a(S'HayterMSAStructure' 
     159p80 
     160I01 
     161tp81 
     162a(S'HardsphereStructure' 
     163p82 
     164I01 
     165tp83 
     166a(S'StickyHSStructure' 
     167p84 
     168I01 
     169tp85 
     170asS'Shape-Independent' 
     171p86 
     172(lp87 
     173(S'TwoPowerLawModel' 
     174p88 
     175I01 
     176tp89 
     177a(S'GelFitModel' 
     178p90 
     179I01 
     180tp91 
     181a(S'PowerLawAbsModel' 
     182p92 
     183I01 
     184tp93 
     185a(S'PorodModel' 
     186p94 
     187I01 
     188tp95 
     189a(S'MassFractalModel' 
     190p96 
     191I01 
     192tp97 
     193a(S'TeubnerStreyModel' 
     194p98 
     195I01 
     196tp99 
     197a(S'BEPolyelectrolyte' 
     198p100 
     199I01 
     200tp101 
     201a(S'DebyeModel' 
     202p102 
     203I01 
     204tp103 
    35205a(S'MassSurfaceFractal' 
    36 p18 
    37 I01 
    38 tp19 
     206p104 
     207I01 
     208tp105 
     209a(S'Poly_GaussCoil' 
     210p106 
     211I01 
     212tp107 
    39213a(S'Core2ndMomentModel' 
    40 p20 
    41 I01 
    42 tp21 
    43 a(S'OnionExpShellModel' 
    44 p22 
    45 I01 
    46 tp23 
    47 a(S'MultiShellModel' 
    48 p24 
    49 I01 
    50 tp25 
    51 a(S'SphereModel' 
    52 p26 
    53 I01 
    54 tp27 
     214p108 
     215I01 
     216tp109 
     217a(S'RPA10Model' 
     218p110 
     219I01 
     220tp111 
     221a(S'TwoLorentzianModel' 
     222p112 
     223I01 
     224tp113 
     225a(S'UnifiedPowerRgModel' 
     226p114 
     227I01 
     228tp115 
     229a(S'PolymerExclVolume' 
     230p116 
     231I01 
     232tp117 
    55233a(S'GuinierModel' 
    56 p28 
    57 I01 
    58 tp29 
    59 a(S'SphericalSLDModel' 
    60 p30 
    61 I01 
    62 tp31 
     234p118 
     235I01 
     236tp119 
    63237a(S'GuinierPorodModel' 
    64 p32 
    65 I01 
    66 tp33 
     238p120 
     239I01 
     240tp121 
     241a(S'CorrLengthModel' 
     242p122 
     243I01 
     244tp123 
     245a(S'StarPolymer' 
     246p124 
     247I01 
     248tp125 
    67249a(S'FractalModel' 
    68 p34 
    69 I01 
    70 tp35 
    71 a(S'VesicleModel' 
    72 p36 
    73 I01 
    74 tp37 
     250p126 
     251I01 
     252tp127 
     253a(S'PeakLorentzModel' 
     254p128 
     255I01 
     256tp129 
     257a(S'BroadPeakModel' 
     258p130 
     259I01 
     260tp131 
     261a(S'PeakGaussModel' 
     262p132 
     263I01 
     264tp133 
    75265a(S'FractalCoreShellModel' 
    76 p38 
    77 I01 
    78 tp39 
    79 a(S'FCCrystalModel' 
    80 p40 
    81 I01 
    82 tp41 
    83 a(S'BinaryHSModel' 
    84 p42 
    85 I01 
    86 tp43 
     266p134 
     267I01 
     268tp135 
     269a(S'DABModel' 
     270p136 
     271I01 
     272tp137 
    87273a(S'SurfaceFractalModel' 
    88 p44 
    89 I01 
    90 tp45 
    91 a(S'LinearPearlsModel' 
    92 p46 
    93 I01 
    94 tp47 
    95 a(S'RaspBerryModel' 
    96 p48 
    97 I01 
    98 tp49 
    99 a(S'CoreShellModel' 
    100 p50 
    101 I01 
    102 tp51 
    103 asS'Gels' 
    104 p52 
    105 (lp53 
    106 (g6 
    107 I01 
    108 tp54 
    109 a(S'TwoPowerLawModel' 
    110 p55 
    111 I01 
    112 tp56 
    113 a(g8 
    114 I01 
    115 tp57 
    116 a(g18 
    117 I01 
    118 tp58 
    119 a(S'TwoLorentzianModel' 
    120 p59 
    121 I01 
    122 tp60 
    123 a(S'UnifiedPowerRgModel' 
    124 p61 
    125 I01 
    126 tp62 
    127 a(g32 
    128 I01 
    129 tp63 
    130 a(S'CorrLengthModel' 
    131 p64 
    132 I01 
    133 tp65 
    134 a(S'BroadPeakModel' 
    135 p66 
    136 I01 
    137 tp67 
    138 a(S'DABModel' 
    139 p68 
    140 I01 
    141 tp69 
    142 a(g44 
    143 I01 
    144 tp70 
    145 a(g46 
    146 I01 
    147 tp71 
     274p138 
     275I01 
     276tp139 
    148277a(S'GaussLorentzGelModel' 
    149 p72 
    150 I01 
    151 tp73 
    152 asS'Peaks' 
    153 p74 
    154 (lp75 
    155 (g6 
    156 I01 
    157 tp76 
    158 a(S'LamellarPCrystalModel' 
    159 p77 
    160 I01 
    161 tp78 
    162 a(g14 
    163 I01 
    164 tp79 
    165 a(g16 
    166 I01 
    167 tp80 
    168 a(g59 
    169 I01 
    170 tp81 
    171 a(g22 
    172 I01 
    173 tp82 
    174 a(g24 
    175 I01 
    176 tp83 
    177 a(S'StackedDisksModel' 
    178 p84 
    179 I01 
    180 tp85 
    181 a(S'LamellarPSHGModel' 
    182 p86 
    183 I01 
    184 tp87 
    185 a(S'PeakLorentzModel' 
    186 p88 
    187 I01 
    188 tp89 
    189 a(g66 
    190 I01 
    191 tp90 
    192 a(S'PeakGaussModel' 
    193 p91 
    194 I01 
    195 tp92 
    196 a(g40 
    197 I01 
    198 tp93 
     278p140 
     279I01 
     280tp141 
    199281a(S'LorentzModel' 
    200 p94 
    201 I01 
    202 tp95 
    203 asS'Two-Phase' 
    204 p96 
    205 (lp97 
    206 (S'PorodModel' 
    207 p98 
    208 I01 
    209 tp99 
    210 a(g8 
    211 I01 
    212 tp100 
    213 a(g18 
    214 I01 
    215 tp101 
    216 a(g64 
    217 I01 
    218 tp102 
    219 a(g34 
    220 I01 
    221 tp103 
    222 a(g66 
    223 I01 
    224 tp104 
    225 a(g38 
    226 I01 
    227 tp105 
    228 a(g68 
    229 I01 
    230 tp106 
    231 a(g44 
    232 I01 
    233 tp107 
    234 a(g72 
    235 I01 
    236 tp108 
    237 asS'Polymers' 
    238 p109 
    239 (lp110 
    240 (g6 
    241 I01 
    242 tp111 
    243 a(S'BEPolyelectrolyte' 
    244 p112 
    245 I01 
    246 tp113 
    247 a(g77 
    248 I01 
    249 tp114 
    250 a(S'DebyeModel' 
    251 p115 
    252 I01 
    253 tp116 
    254 a(g14 
    255 I01 
    256 tp117 
    257 a(g16 
    258 I01 
    259 tp118 
    260 a(S'RPA10Model' 
    261 p119 
    262 I01 
    263 tp120 
    264 a(S'FlexCylEllipXModel' 
    265 p121 
    266 I01 
    267 tp122 
    268 a(S'PolymerExclVolume' 
    269 p123 
    270 I01 
    271 tp124 
    272 a(g86 
    273 I01 
    274 tp125 
    275 a(S'LamellarPSModel' 
    276 p126 
    277 I01 
    278 tp127 
    279 a(S'LamellarModel' 
    280 p128 
    281 I01 
    282 tp129 
    283 a(S'Poly_GaussCoil' 
    284 p130 
    285 I01 
    286 tp131 
    287 a(S'FlexibleCylinderModel' 
    288 p132 
    289 I01 
    290 tp133 
    291 a(S'LamellarFFHGModel' 
    292 p134 
    293 I01 
    294 tp135 
    295 a(g46 
    296 I01 
    297 tp136 
    298 a(g72 
    299 I01 
    300 tp137 
    301 asS'Empirical' 
    302 p138 
    303 (lp139 
    304 (g55 
    305 I01 
    306 tp140 
    307 a(g98 
    308 I01 
    309 tp141 
    310 a(g61 
    311 I01 
    312 tp142 
    313 a(g28 
     282p142 
    314283I01 
    315284tp143 
    316 a(g32 
    317 I01 
    318 tp144 
    319 a(g64 
    320 I01 
    321 tp145 
    322 a(g66 
    323 I01 
    324 tp146 
    325 a(S'LineModel' 
    326 p147 
    327 I01 
    328 tp148 
    329 asS'Particles' 
    330 p149 
    331 (lp150 
    332 (g6 
     285asS'Uncategorized' 
     286p144 
     287(lp145 
     288(S'LineModel' 
     289p146 
     290I01 
     291tp147 
     292a(S'ReflectivityModel' 
     293p148 
     294I01 
     295tp149 
     296a(S'ReflectivityIIModel' 
     297p150 
    333298I01 
    334299tp151 
    335 a(S'HollowCylinderModel' 
    336 p152 
    337 I01 
    338 tp153 
    339 a(g8 
    340 I01 
    341 tp154 
    342 a(g10 
    343 I01 
    344 tp155 
    345 a(S'CSParallelepipedModel' 
    346 p156 
    347 I01 
    348 tp157 
    349 a(S'ParallelepipedModel' 
    350 p158 
    351 I01 
    352 tp159 
    353 a(g12 
    354 I01 
    355 tp160 
    356 a(g77 
    357 I01 
    358 tp161 
    359 a(S'EllipticalCylinderModel' 
    360 p162 
    361 I01 
    362 tp163 
    363 a(g14 
    364 I01 
    365 tp164 
    366 a(g16 
    367 I01 
    368 tp165 
    369 a(g18 
    370 I01 
    371 tp166 
    372 a(g20 
    373 I01 
    374 tp167 
    375 a(g121 
    376 I01 
    377 tp168 
    378 a(g22 
    379 I01 
    380 tp169 
    381 a(g24 
    382 I01 
    383 tp170 
    384 a(g26 
    385 I01 
    386 tp171 
    387 a(S'CoreShellEllipsoidModel' 
    388 p172 
    389 I01 
    390 tp173 
    391 a(g28 
    392 I01 
    393 tp174 
    394 a(S'CappedCylinderModel' 
    395 p175 
    396 I01 
    397 tp176 
    398 a(S'CylinderModel' 
    399 p177 
    400 I01 
    401 tp178 
    402 a(g30 
    403 I01 
    404 tp179 
    405 a(g32 
    406 I01 
    407 tp180 
    408 a(g84 
    409 I01 
    410 tp181 
    411 a(g86 
    412 I01 
    413 tp182 
    414 a(g34 
    415 I01 
    416 tp183 
    417 a(S'CoreShellBicelleModel' 
    418 p184 
    419 I01 
    420 tp185 
    421 a(g126 
    422 I01 
    423 tp186 
    424 a(S'EllipsoidModel' 
    425 p187 
    426 I01 
    427 tp188 
    428 a(g36 
    429 I01 
    430 tp189 
    431 a(S'TriaxialEllipsoidModel' 
    432 p190 
    433 I01 
    434 tp191 
    435 a(g128 
    436 I01 
    437 tp192 
    438 a(g38 
    439 I01 
    440 tp193 
    441 a(S'BarBellModel' 
    442 p194 
    443 I01 
    444 tp195 
    445 a(g40 
    446 I01 
    447 tp196 
    448 a(g42 
    449 I01 
    450 tp197 
    451 a(g132 
    452 I01 
    453 tp198 
    454 a(g134 
    455 I01 
    456 tp199 
    457 a(g44 
    458 I01 
    459 tp200 
    460 a(g46 
    461 I01 
    462 tp201 
    463 a(g48 
    464 I01 
    465 tp202 
    466 a(g50 
    467 I01 
    468 tp203 
    469 asS'Non-Spherical Shapes' 
    470 p204 
    471 (lp205 
    472 (g6 
    473 I01 
    474 tp206 
    475 a(g152 
    476 I01 
    477 tp207 
    478 a(g156 
    479 I01 
    480 tp208 
    481 a(g158 
    482 I01 
    483 tp209 
    484 a(g77 
    485 I01 
    486 tp210 
    487 a(g162 
    488 I01 
    489 tp211 
    490 a(g121 
    491 I01 
    492 tp212 
    493 a(g172 
    494 I01 
    495 tp213 
    496 a(g28 
    497 I01 
    498 tp214 
    499 a(g175 
    500 I01 
    501 tp215 
    502 a(g177 
    503 I01 
    504 tp216 
    505 a(g32 
    506 I01 
    507 tp217 
    508 a(g84 
    509 I01 
    510 tp218 
    511 a(g86 
    512 I01 
    513 tp219 
    514 a(g184 
    515 I01 
    516 tp220 
    517 a(g126 
    518 I01 
    519 tp221 
    520 a(g187 
    521 I01 
    522 tp222 
    523 a(g190 
    524 I01 
    525 tp223 
    526 a(g128 
    527 I01 
    528 tp224 
    529 a(g194 
    530 I01 
    531 tp225 
    532 a(g132 
    533 I01 
    534 tp226 
    535 a(g134 
    536 I01 
    537 tp227 
    538 a(g46 
    539 I01 
    540 tp228 
    541 asS'Uncategorized' 
    542 p229 
    543 (lp230 
    544 (S'GelFitModel' 
    545 p231 
    546 I01 
    547 tp232 
    548 a(S'CoreShellCylinderModel' 
    549 p233 
    550 I01 
    551 tp234 
    552 a(S'PowerLawAbsModel' 
    553 p235 
    554 I01 
    555 tp236 
    556 a(S'TeubnerStreyModel' 
    557 p237 
    558 I01 
    559 tp238 
    560 a(S'SquareWellStructure' 
    561 p239 
    562 I01 
    563 tp240 
    564 a(S'FractalO_Z' 
    565 p241 
    566 I01 
    567 tp242 
    568 a(S'HayterMSAStructure' 
    569 p243 
    570 I01 
    571 tp244 
    572 a(S'StarPolymer' 
    573 p245 
    574 I01 
    575 tp246 
    576 a(S'ReflectivityModel' 
    577 p247 
    578 I01 
    579 tp248 
    580 a(S'HardsphereStructure' 
    581 p249 
    582 I01 
    583 tp250 
    584 a(S'ReflectivityIIModel' 
    585 p251 
    586 I01 
    587 tp252 
    588 a(S'StickyHSStructure' 
    589 p253 
    590 I01 
    591 tp254 
    592300as. 
  • sansview/sansview.py

    rdf7a7e3 rea5fa58  
    1414logging.basicConfig(level=logging.INFO, 
    1515                    format='%(asctime)s %(levelname)s %(message)s', 
    16                     filename=os.path.join(os.path.expanduser("~"),'sasview.log')) 
     16                    filename=os.path.join(os.path.expanduser("~"), 
     17                                          'sasview.log')) 
    1718 
    1819import wx 
     
    103104            logging.error(sys.exc_value)   
    104105 
    105         # initialize category stuff 
    106         user_file = os.path.join(os.path.expanduser("~"), 
    107                                  'serialized_categories.p') 
    108106         
    109         if not os.path.isfile(user_file):  
    110             # either first time starting sansview or the 
    111             # user has deleted their category file 
    112             my_dir = os.path.dirname(os.path.abspath(__file__)) 
    113             default_file = os.path.join(my_dir, '..', 
    114                                         'sansmodels', 
    115                                         'default_categories.p' ) 
    116             copy(default_file, user_file) 
    117  
    118107             
    119108        # Add welcome page 
  • sansview/setup_exe.py

    rdf7a7e3 rea5fa58  
    3232        sys.argv.remove('--extrapath') 
    3333except: 
    34     print "Error processing extra python path needed to build SasView\n  %s" % sys.exc_value 
     34    print "Error processing extra python path needed to build SasView\n  %s" % \ 
     35                sys.exc_value 
    3536 
    3637from distutils.core import setup 
     
    259260if os.path.isfile(f): 
    260261    data_files.append(('.', [f])) 
     262 
     263f = 'default_categories.p' 
     264if os.path.isfile(f): 
     265    data_files.append(('.', [f])) 
    261266     
    262267if os.path.isfile("BUILD_NUMBER"): 
  • sansview/setup_mac.py

    rdf7a7e3 rea5fa58  
    5454 
    5555APP = ['sansview.py'] 
    56 DATA_FILES += ['images','test','media', 'custom_config.py', 'local_config.py'] 
     56DATA_FILES += ['images','test','media', 'custom_config.py', 'local_config.py', 
     57               'default_categories.p'] 
    5758if os.path.isfile("BUILD_NUMBER"): 
    5859    DATA_FILES.append("BUILD_NUMBER") 
     
    9293 
    9394EXTENSIONS_LIST = find_extension() 
    94  
    95 #initialize category stuff 
    96 from sans.guiframe.CategoryInstaller import CategoryInstaller 
    97 CategoryInstaller.check_install() 
    98  
    9995 
    10096  
  • setup.py

    rdf7a7e3 rea5fa58  
    99from setuptools import setup, Extension, find_packages 
    1010from distutils.command.build_ext import build_ext 
    11  
    12  
    13  
    1411 
    1512try: 
     
    4946if os.path.isdir(sans_dir): 
    5047    f_path = os.path.join(sans_dir, "sasview.log") 
     48    if os.path.isfile(f_path): 
     49        os.remove(f_path) 
     50    f_path = os.path.join(sans_dir, "serialized_cat.p") 
    5151    if os.path.isfile(f_path): 
    5252        os.remove(f_path) 
     
    116116package_dir["sans.guiframe.local_perspectives"] = os.path.join(guiframe_path,  
    117117                                                        "local_perspectives") 
    118 package_data["sans.guiframe"] = ['images/*',  
    119                                  'media/*',  
    120                                  'default_categories.p'] 
    121  
     118package_data["sans.guiframe"] = ['images/*', 'media/*'] 
    122119packages.extend(["sans.guiframe", "sans.guiframe.local_perspectives"]) 
    123120# build local plugin 
     
    275272package_dir["sans.models"] = model_dir 
    276273 
    277 package_dir["sans.models.sans_extension"] = os.path.join("sansmodels", "src", "sans", "models", "sans_extension") 
     274package_dir["sans.models.sans_extension"] = os.path.join("sansmodels", "src",  
     275                                            "sans", "models", "sans_extension") 
    278276             
    279277package_data['sans.models'] = [os.path.join('media', "*.*")] 
     
    317315 
    318316package_dir["sans.sansview"] = "sansview" 
    319 package_data['sans.sansview'] = ['images/*', 'media/*', 'test/*'] 
     317package_data['sans.sansview'] = ['images/*', 'media/*', 'test/*',  
     318                                 'default_categories.p'] 
    320319packages.append("sans.sansview") 
    321320 
     
    329328else: 
    330329    required.extend(['pil']) 
    331  
    332 # sys.path.append(os.path.join('sansguiframe', 
    333 #                              'src', 
    334 #                              'sans', 
    335 #                              'guiframe')) 
    336  
    337 #install category stuff 
    338 cat_install_path = os.path.join('sansguiframe', 'src', 
    339                                 'sans','guiframe','CategoryInstaller.py') 
    340 shutil.copy(cat_install_path, os.getcwd()) 
    341  
    342 from CategoryInstaller import CategoryInstaller 
    343 CategoryInstaller.check_install(defaultfile = \ 
    344                                     os.path.join('sansguiframe', 
    345                                                  'src', 
    346                                                  'sans', 
    347                                                  'guiframe', 
    348                                                  'default_categories.p'), 
    349                                 modelsdir = \ 
    350                                     os.path.join('fittingview', 
    351                                                  'src', 
    352                                                  'sans', 
    353                                                  'perspectives', 
    354                                                  'fitting'),  
    355                                 installed_models_dir = \ 
    356                                     os.path.join('sansdataloader', 
    357                                                  'src', 
    358                                                  'sans', 
    359                                                  'dataloader', 
    360                                                  'readers') ) 
    361  
    362330    
    363331 # Set up SasView     
Note: See TracChangeset for help on using the changeset viewer.